8673-8673.js.map 4.1 MB

1
  1. {"version":3,"file":"8673-8673.js?v=a29dbc0a64374019ece2","mappings":"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","sources":["webpack:///nextcloud/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/dist/index.js","webpack:///nextcloud/node_modules/@nextcloud/calendar-js/dist/index.umd.js","webpack:///nextcloud/node_modules/@nextcloud/l10n/dist/gettext.js","webpack:///nextcloud/node_modules/@skjnldsv/sanitize-svg/dist/index.js","webpack:///nextcloud/node_modules/@skjnldsv/sanitize-svg/node_modules/is-svg/index.js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=7d732267&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=283ca89e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=69227eb0&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=528aec8a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=d960cabe&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=1852ea78&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=46881615&prod&lang=scss","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=4fb884d4&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=05b67dc8&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=1669cfd6&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/fast-xml-parser/src/fxp.js","webpack:///nextcloud/node_modules/hammerjs/hammer.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/emoji-mart-vue-fast/dist/emoji-mart.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/is-buffer/index.js","webpack:///nextcloud/node_modules/splitpanes/dist/splitpanes.umd.js","webpack:///nextcloud/node_modules/url-search-params-polyfill/index.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/index.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/md5.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/native.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/nil.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/parse.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/regex.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/rng.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/sha1.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/stringify.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/v1.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/v3.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/v35.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/v4.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/v5.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/validate.js","webpack:///nextcloud/node_modules/uuid/dist/commonjs-browser/version.js","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?0ae8","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/@nextcloud/vue/dist/index.module.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/dist/index.mjs","webpack:///nextcloud/apps/files_sharing/src/services/ConfigService.js","webpack:///nextcloud/apps/files_sharing/src/models/Share.js","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareTypes.js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?6c02","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?9588","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?cb12","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?0c02","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?23b6","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?4c20","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?65df","webpack:///nextcloud/apps/files_sharing/src/utils/GeneratePassword.js","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareRequests.js","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareDetails.js","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?89e6","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?3d7c","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?45a6","webpack:///nextcloud/apps/files_sharing/src/lib/SharePermissionsToolBox.js","webpack:///nextcloud/apps/files_sharing/src/mixins/SharesMixin.js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?c7aa","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?0e5a","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?77d5","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?5bad","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?1677","webpack://nextcloud/./apps/files_sharing/src/views/SharingLinkList.vue?de0b","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Tune.vue?7202","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue?vue&type=template&id=7a5ea180","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/TriangleSmallDown.vue?8651","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=template&id=031da428","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?4d9f","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?4441","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?0b36","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue","webpack://nextcloud/./apps/files_sharing/src/components/ExternalShareAction.vue?9bf3","webpack://nextcloud/./apps/files_sharing/src/components/ExternalShareAction.vue?82b4","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?e806","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?af90","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?64e9","webpack://nextcloud/./apps/files_sharing/src/views/SharingLinkList.vue?a70b","webpack://nextcloud/./apps/files_sharing/src/views/SharingList.vue?e340","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?2155","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?10a7","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?f8d7","webpack://nextcloud/./apps/files_sharing/src/views/SharingList.vue?9f9c","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?7f2e","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CircleOutline.vue?68bc","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=template&id=ba929d5a","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Email.vue?3953","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=a8309a32","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ShareCircle.vue?a1b2","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=template&id=34fe9a74","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountCircleOutline.vue?a068","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=template&id=a376f27a","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?126c","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?10fc","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue","webpack:///nextcloud/apps/files_sharing/src/utils/SharedWithMe.js","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?a6b0","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?6997","webpack:///nextcloud/node_modules/vue-material-design-icons/Alert.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Alert.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Alert.vue?251c","webpack:///nextcloud/node_modules/vue-material-design-icons/Alert.vue?vue&type=template&id=89056902","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertDecagram.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertDecagram.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AlertDecagram.vue?14d3","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertDecagram.vue?vue&type=template&id=137d8918","webpack://nextcloud/./node_modules/vue-material-design-icons/ArrowLeft.vue?f857","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CalendarBlank.vue?3d12","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue?vue&type=template&id=042fd602","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckboxBlankOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckboxBlankOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CheckboxBlankOutline.vue?01b3","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckboxBlankOutline.vue?vue&type=template&id=fb5828cc","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckboxMarked.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckboxMarked.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CheckboxMarked.vue?9cba","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckboxMarked.vue?vue&type=template&id=66a59ab7","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckboxMarkedCircle.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckboxMarkedCircle.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CheckboxMarkedCircle.vue?561f","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckboxMarkedCircle.vue?vue&type=template&id=b94c09be","webpack://nextcloud/./node_modules/vue-material-design-icons/ChevronDown.vue?e2b2","webpack:///nextcloud/node_modules/vue-material-design-icons/ChevronLeft.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ChevronLeft.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ChevronLeft.vue?e7bb","webpack:///nextcloud/node_modules/vue-material-design-icons/ChevronLeft.vue?vue&type=template&id=09d94b5a","webpack://nextcloud/./node_modules/vue-material-design-icons/ChevronRight.vue?621b","webpack:///nextcloud/node_modules/vue-material-design-icons/ChevronRight.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ChevronUp.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ChevronUp.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ChevronUp.vue?58f8","webpack:///nextcloud/node_modules/vue-material-design-icons/ChevronUp.vue?vue&type=template&id=431f415e","webpack://nextcloud/./node_modules/vue-material-design-icons/Close.vue?c1a9","webpack://nextcloud/./node_modules/vue-material-design-icons/Cog.vue?4d6d","webpack://nextcloud/./node_modules/vue-material-design-icons/DotsHorizontal.vue?c5a1","webpack:///nextcloud/node_modules/vue-material-design-icons/DotsHorizontal.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Eye.vue?157b","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=beccbcf6","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOff.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOff.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/EyeOff.vue?708a","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOff.vue?vue&type=template&id=0fb59bd2","webpack://nextcloud/./node_modules/vue-material-design-icons/Folder.vue?b60e","webpack:///nextcloud/node_modules/vue-material-design-icons/HelpCircle.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/HelpCircle.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/HelpCircle.vue?c343","webpack:///nextcloud/node_modules/vue-material-design-icons/HelpCircle.vue?vue&type=template&id=4dac44fa","webpack:///nextcloud/node_modules/vue-material-design-icons/LinkVariant.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/LinkVariant.vue?7418","webpack:///nextcloud/node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=3834522c","webpack:///nextcloud/node_modules/vue-material-design-icons/Menu.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Menu.vue?1ea1","webpack:///nextcloud/node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=b3763850","webpack:///nextcloud/node_modules/vue-material-design-icons/MenuOpen.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/MenuOpen.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/MenuOpen.vue?2332","webpack:///nextcloud/node_modules/vue-material-design-icons/MenuOpen.vue?vue&type=template&id=179c83d7","webpack:///nextcloud/node_modules/vue-material-design-icons/MinusBox.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/MinusBox.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/MinusBox.vue?bbf8","webpack:///nextcloud/node_modules/vue-material-design-icons/MinusBox.vue?vue&type=template&id=d90829ce","webpack:///nextcloud/node_modules/vue-material-design-icons/Pause.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Pause.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Pause.vue?888e","webpack:///nextcloud/node_modules/vue-material-design-icons/Pause.vue?vue&type=template&id=713ddbb4","webpack:///nextcloud/node_modules/vue-material-design-icons/Play.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Play.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Play.vue?6342","webpack:///nextcloud/node_modules/vue-material-design-icons/Play.vue?vue&type=template&id=40a96fba","webpack:///nextcloud/node_modules/vue-material-design-icons/RadioboxBlank.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/RadioboxBlank.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/RadioboxBlank.vue?f46c","webpack:///nextcloud/node_modules/vue-material-design-icons/RadioboxBlank.vue?vue&type=template&id=0bb006bd","webpack:///nextcloud/node_modules/vue-material-design-icons/RadioboxMarked.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/RadioboxMarked.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/RadioboxMarked.vue?410f","webpack:///nextcloud/node_modules/vue-material-design-icons/RadioboxMarked.vue?vue&type=template&id=3ebe8680","webpack://nextcloud/./node_modules/vue-material-design-icons/Star.vue?35ed","webpack://nextcloud/./node_modules/vue-material-design-icons/StarOutline.vue?9e0e","webpack:///nextcloud/node_modules/vue-material-design-icons/ToggleSwitch.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ToggleSwitch.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ToggleSwitch.vue?83e3","webpack:///nextcloud/node_modules/vue-material-design-icons/ToggleSwitch.vue?vue&type=template&id=286211c1","webpack:///nextcloud/node_modules/vue-material-design-icons/ToggleSwitchOff.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ToggleSwitchOff.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ToggleSwitchOff.vue?fbc4","webpack:///nextcloud/node_modules/vue-material-design-icons/ToggleSwitchOff.vue?vue&type=template&id=134175c4","webpack://nextcloud/./node_modules/vue-material-design-icons/Undo.vue?d998","webpack:///nextcloud/node_modules/vue-material-design-icons/Undo.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/UndoVariant.vue?2557","webpack:///nextcloud/node_modules/vue-material-design-icons/UndoVariant.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ChevronRight.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Undo.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/UndoVariant.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=187c55d7","webpack:///nextcloud/node_modules/vue-material-design-icons/ChevronRight.vue?vue&type=template&id=750bcc07","webpack:///nextcloud/node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=6950b9a6","webpack:///nextcloud/node_modules/vue-material-design-icons/Undo.vue?vue&type=template&id=bc8e3c2a","webpack:///nextcloud/node_modules/vue-material-design-icons/UndoVariant.vue?vue&type=template&id=3b13fe6c","webpack:///nextcloud/node_modules/vue-multiselect/dist/vue-multiselect.min.js","webpack:///nextcloud/node_modules/@nextcloud/axios/dist/index.cjs","webpack:///nextcloud/node_modules/@vueuse/components/index.cjs","webpack:///nextcloud/node_modules/@vueuse/components/node_modules/vue-demi/lib/index.cjs","webpack:///nextcloud/node_modules/@vueuse/core/index.cjs","webpack:///nextcloud/node_modules/@vueuse/core/node_modules/vue-demi/lib/index.cjs","webpack:///nextcloud/node_modules/@vueuse/shared/index.cjs","webpack:///nextcloud/node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.cjs","webpack:///nextcloud/node_modules/axios/dist/browser/axios.cjs","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-util-character/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-find-and-replace/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/escape-string-regexp/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-newline-to-break/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/remark-breaks/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-string/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-util-chunked/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-util-combine-extensions/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-factory-space/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark/lib/initialize/content.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark/lib/initialize/document.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/blank-line.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-util-subtokenize/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/content.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark/lib/initialize/flow.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark/lib/initialize/text.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-util-resolve-all/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark/lib/create-tokenizer.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/thematic-break.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/list.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/block-quote.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-factory-destination/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-factory-label/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-factory-title/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-factory-whitespace/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-util-normalize-identifier/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/definition.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/code-indented.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/heading-atx.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/setext-underline.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-util-html-tag-name/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/html-flow.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/code-fenced.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/character-reference.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/character-escape.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/line-ending.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/label-end.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-util-classify-character/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/attention.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark/lib/constructs.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/label-start-image.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/autolink.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/html-text.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/label-start-link.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/hard-break-escape.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-core-commonmark/lib/code-text.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark/lib/preprocess.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-util-decode-numeric-character-reference/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-util-decode-string/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-from-markdown/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark/lib/postprocess.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark/lib/parse.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/remark-parse/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/micromark-util-sanitize-uri/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/revert.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/unist-util-position/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/break.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/code.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/delete.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/footnote.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/heading.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/html.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/image.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/link.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/list.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/root.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/strong.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/table.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/text.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","webpack:///nextcloud/node_modules/mdast-util-definitions/node_modules/unist-util-is/lib/index.js","webpack:///nextcloud/node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents/lib/index.js","webpack:///nextcloud/node_modules/mdast-util-definitions/node_modules/unist-util-visit/lib/index.js","webpack:///nextcloud/node_modules/mdast-util-definitions/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/state.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/index.js","webpack:///nextcloud/node_modules/unist-util-generated/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/mdast-util-to-hast/lib/footer.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/remark-rehype/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/is-plain-obj/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/vfile-message/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/vfile/lib/minpath.browser.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/vfile/lib/minproc.browser.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/vfile/lib/minurl.shared.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/vfile/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/vfile/lib/minurl.browser.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/unified/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/unist-builder/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/unist-util-is/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/unist-util-stringify-position/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/unist-util-visit-parents/lib/index.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/unist-util-visit/lib/index.js"],"sourcesContent":["import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { autoUpdate, computePosition, platform };\n","\"use strict\";\n\nrequire(\"core-js/modules/es.object.define-property.js\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clearAll = clearAll;\nexports.clearNonPersistent = clearNonPersistent;\nexports.getBuilder = getBuilder;\nrequire(\"core-js/modules/es.array.map.js\");\nrequire(\"core-js/modules/es.array.filter.js\");\nrequire(\"core-js/modules/es.object.to-string.js\");\nrequire(\"core-js/modules/es.object.keys.js\");\nrequire(\"core-js/modules/es.string.starts-with.js\");\nvar _storagebuilder = _interopRequireDefault(require(\"./storagebuilder\"));\nvar _scopedstorage = _interopRequireDefault(require(\"./scopedstorage\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction getBuilder(appId) {\n return new _storagebuilder.default(appId);\n}\nfunction clearStorage(storage, pred) {\n Object.keys(storage).filter(function (k) {\n return pred ? pred(k) : true;\n }).map(storage.removeItem.bind(storage));\n}\nfunction clearAll() {\n var storages = [window.sessionStorage, window.localStorage];\n storages.map(function (s) {\n return clearStorage(s);\n });\n}\nfunction clearNonPersistent() {\n var storages = [window.sessionStorage, window.localStorage];\n storages.map(function (s) {\n return clearStorage(s, function (k) {\n return !k.startsWith(_scopedstorage.default.GLOBAL_SCOPE_PERSISTENT);\n });\n });\n}\n//# sourceMappingURL=index.js.map","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('ical.js'), require('uuid')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'ical.js', 'uuid'], factory) :\n\t(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global[\"@nextcloud/calendar-js\"] = {}, global.ICAL, global.uuid));\n})(this, (function (exports, ICAL, uuid) { 'use strict';\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class AbstractParser\n\t * @classdesc\n\t */\n\tclass AbstractParser {\n\t /**\n\t * @class\n\t *\n\t * @param {object=} options Object of options\n\t * @param {boolean=} options.extractGlobalProperties Whether or not to preserve properties from the VCALENDAR component (defaults to false)\n\t * @param {boolean=} options.removeRSVPForAttendees Whether or not to remove RSVP from attendees (defaults to false)\n\t * @param {boolean=} options.includeTimezones Whether or not to include timezones (defaults to false)\n\t * @param {boolean=} options.preserveMethod Whether or not to preserve the iCalendar method (defaults to false)\n\t * @param {boolean=} options.processFreeBusy Whether or not to process VFreeBusy components (defaults to false)\n\t */\n\t constructor(options = {}) {\n\t if (new.target === AbstractParser) {\n\t throw new TypeError('Cannot instantiate abstract class AbstractParser');\n\t }\n\n\t /**\n\t * Options for the parser\n\t *\n\t * @type {{removeRSVPForAttendees: boolean}}\n\t * @private\n\t */\n\t this._options = Object.assign({}, options);\n\n\t /**\n\t * A name extracted from the calendar-data\n\t *\n\t * @type {string | null}\n\t * @protected\n\t */\n\t this._name = null;\n\n\t /**\n\t * A color extracted from the calendar-data\n\t *\n\t * @type {string | null}\n\t * @protected\n\t */\n\t this._color = null;\n\n\t /**\n\t * Gets the url that this icalendar file can be updated from\n\t *\n\t * @type {string}\n\t * @protected\n\t */\n\t this._sourceURL = null;\n\n\t /**\n\t * Gets the update interval if this icalendar file can be updated from a source\n\t *\n\t * @type {string}\n\t * @protected\n\t */\n\t this._refreshInterval = null;\n\n\t /**\n\t * Gets the default timezone of this calendar\n\t *\n\t * @type {string}\n\t * @protected\n\t */\n\t this._calendarTimezone = null;\n\n\t /**\n\t * Error count during parsing\n\t *\n\t * @type {Array}\n\t * @protected\n\t */\n\t this._errors = [];\n\t }\n\n\t /**\n\t * Gets the name extracted from the calendar-data\n\t *\n\t * @return {string | null}\n\t */\n\t getName() {\n\t return this._name;\n\t }\n\n\t /**\n\t * Gets the color extracted from the calendar-data\n\t *\n\t * @return {string | null}\n\t */\n\t getColor() {\n\t return this._color;\n\t }\n\n\t /**\n\t * Gets whether this import can be converted into a webcal subscription\n\t *\n\t * @return {boolean}\n\t */\n\t offersWebcalFeed() {\n\t return this._sourceURL !== null;\n\t }\n\n\t /**\n\t * Gets the url pointing to the webcal source\n\t *\n\t * @return {string | null}\n\t */\n\t getSourceURL() {\n\t return this._sourceURL;\n\t }\n\n\t /**\n\t * Gets the recommended refresh rate to update this subscription\n\t *\n\t * @return {string | null}\n\t */\n\t getRefreshInterval() {\n\t return this._refreshInterval;\n\t }\n\n\t /**\n\t * Gets the default timezone of this calendar\n\t *\n\t * @return {string}\n\t */\n\t getCalendarTimezone() {\n\t return this._calendarTimezone;\n\t }\n\n\t /**\n\t * {String|Object} data\n\t *\n\t * @param {any} data The data to parse\n\t * @throws TypeError\n\t */\n\t parse(data) {\n\t throw new TypeError('Abstract method not implemented by subclass');\n\t }\n\n\t /**\n\t * Returns one CalendarComponent at a time\n\t */\n\t *getItemIterator() {\n\t // eslint-disable-line require-yield\n\t throw new TypeError('Abstract method not implemented by subclass');\n\t }\n\n\t /**\n\t * Get an array of all items\n\t *\n\t * @return {CalendarComponent[]}\n\t */\n\t getAllItems() {\n\t return Array.from(this.getItemIterator());\n\t }\n\n\t /**\n\t * Returns a boolean whether or not the parsed data contains vevents\n\t *\n\t * @return {boolean}\n\t */\n\t containsVEvents() {\n\t return false;\n\t }\n\n\t /**\n\t * Returns a boolean whether or not the parsed data contains vjournals\n\t *\n\t * @return {boolean}\n\t */\n\t containsVJournals() {\n\t return false;\n\t }\n\n\t /**\n\t * Returns a boolean whether or not the parsed data contains vtodos\n\t *\n\t * @return {boolean}\n\t */\n\t containsVTodos() {\n\t return false;\n\t }\n\n\t /**\n\t * Returns a boolean whether or not the parsed data contains vfreebusys\n\t *\n\t * @return {boolean}\n\t */\n\t containsVFreeBusy() {\n\t return false;\n\t }\n\n\t /**\n\t * Returns a boolean whether\n\t *\n\t * @return {boolean}\n\t */\n\t hasErrors() {\n\t return this._errors.length !== 0;\n\t }\n\n\t /**\n\t * Get a list of all errors that occurred\n\t *\n\t * @return {*[]}\n\t */\n\t getErrorList() {\n\t return this._errors.slice();\n\t }\n\n\t /**\n\t * Returns the number of calendar-objects in parser\n\t *\n\t * @return {number}\n\t */\n\t getItemCount() {\n\t return 0;\n\t }\n\n\t /**\n\t * Gets an option provided\n\t *\n\t * @param {string} name The name of the option to get\n\t * @param {*} defaultValue The default value to return if option not provided\n\t * @return {any}\n\t * @protected\n\t */\n\t _getOption(name, defaultValue) {\n\t return Object.prototype.hasOwnProperty.call(this._options, name) ? this._options[name] : defaultValue;\n\t }\n\n\t /**\n\t * Return list of supported mime types\n\t *\n\t * @static\n\t */\n\t static getMimeTypes() {\n\t throw new TypeError('Abstract method not implemented by subclass');\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\tclass ModificationNotAllowedError extends Error {}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t *\n\t * @param baseClass\n\t */\n\tfunction lockableTrait(baseClass) {\n\t /**\n\t * @class LockableTrait\n\t */\n\t return class extends baseClass {\n\t /**\n\t * Constructor\n\t *\n\t * @param {...any} args\n\t */\n\t constructor(...args) {\n\t super(...args);\n\n\t /**\n\t * Indicator whether this value was locked for changes\n\t *\n\t * @type {boolean}\n\t * @private\n\t */\n\t this._mutable = true;\n\t }\n\n\t /**\n\t * Returns whether or not this object is locked\n\t *\n\t * @return {boolean}\n\t */\n\t isLocked() {\n\t return !this._mutable;\n\t }\n\n\t /**\n\t * Marks this object is immutable\n\t * locks it against further modification\n\t */\n\t lock() {\n\t this._mutable = false;\n\t }\n\n\t /**\n\t * Marks this object as mutable\n\t * allowing further modification\n\t */\n\t unlock() {\n\t this._mutable = true;\n\t }\n\n\t /**\n\t * Check if modifications are allowed\n\t *\n\t * @throws {ModificationNotAllowedError} if this object is locked for modification\n\t * @protected\n\t */\n\t _modify() {\n\t if (!this._mutable) {\n\t throw new ModificationNotAllowedError();\n\t }\n\t }\n\n\t /**\n\t * Check if modification of content is allowed\n\t *\n\t * @throws {ModificationNotAllowedError} if this object is locked for modification\n\t * @protected\n\t */\n\t _modifyContent() {\n\t this._modify();\n\t }\n\t };\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\tclass ExpectedICalJSError extends Error {}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * Turns the entire string lowercase\n\t *\n\t * @param {string} str The string to turn lowercase\n\t * @return {string}\n\t */\n\tfunction lc(str) {\n\t return str.toLowerCase();\n\t}\n\n\t/**\n\t * Turns the entire string uppercase\n\t *\n\t * @param {string} str The string to turn uppercase\n\t * @return {string}\n\t */\n\tfunction uc(str) {\n\t return str.toUpperCase();\n\t}\n\n\t/**\n\t * Capitalizes the string\n\t *\n\t * @param {string} str The string of which the first character will be turned uppercase\n\t * @return {string}\n\t */\n\tfunction ucFirst(str) {\n\t return str.charAt(0).toUpperCase() + str.slice(1);\n\t}\n\n\t/**\n\t * Makes sure that a string starts with a certain other string\n\t * This is mostly used in the attendeeProperty to assure the uri starts with mailto:\n\t *\n\t * @param {string} str The string to check for the prefix and prepend if necessary\n\t * @param {string} startWith The prefix to be added if necessary\n\t * @return {string}\n\t */\n\tfunction startStringWith(str, startWith) {\n\t if (!str.startsWith(startWith)) {\n\t str = startWith + str;\n\t }\n\t return str;\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @type {Map<string, *>}\n\t */\n\tconst GLOBAL_CONFIG = new Map();\n\n\t/**\n\t * Sets a new config key\n\t *\n\t * @param {string} key The config-key to set\n\t * @param {*} value The value to set for given config-key\n\t */\n\tfunction setConfig(key, value) {\n\t GLOBAL_CONFIG.set(key, value);\n\t}\n\n\t/**\n\t * gets value of a config key\n\t *\n\t * @param {string} key The config-key to get\n\t * @param {*} defaultValue Default value of config does not exist\n\t * @return {*}\n\t */\n\tfunction getConfig(key, defaultValue) {\n\t return GLOBAL_CONFIG.get(key) || defaultValue;\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\n\t/**\n\t * creates a new ICAL.Component object\n\t *\n\t * @param {string} componentName The name of the component to create\n\t * @return {ICAL.Component}\n\t */\n\tfunction createComponent(componentName) {\n\t return new ICAL.Component(lc(componentName));\n\t}\n\n\t/**\n\t * creates a new ICAL.Property object\n\t *\n\t * @param {string} propertyName The name of the property to create\n\t * @return {ICAL.Property}\n\t */\n\tfunction createProperty(propertyName) {\n\t return new ICAL.Property(lc(propertyName));\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t *\n\t * @param baseClass\n\t */\n\tfunction observerTrait(baseClass) {\n\t /**\n\t * @class ObserverTrait\n\t */\n\t return class extends baseClass {\n\t /**\n\t * Constructor\n\t *\n\t * @param {...any} args\n\t */\n\t constructor(...args) {\n\t super(...args);\n\n\t /**\n\t * List of subscribers\n\t *\n\t * @type {Function[]}\n\t * @private\n\t */\n\t this._subscribers = [];\n\t }\n\n\t /**\n\t * Adds a new subscriber\n\t *\n\t * @param {Function} handler - Handler to be called when modification happens\n\t */\n\t subscribe(handler) {\n\t this._subscribers.push(handler);\n\t }\n\n\t /**\n\t * Removes a subscriber\n\t *\n\t * @param {Function} handler - Handler to be no longer called when modification happens\n\t */\n\t unsubscribe(handler) {\n\t const index = this._subscribers.indexOf(handler);\n\t if (index === -1) {\n\t return;\n\t }\n\t this._subscribers.splice(index, 1);\n\t }\n\n\t /**\n\t * Notify all subscribed handlers\n\t *\n\t * @param {...any} args\n\t * @protected\n\t */\n\t _notifySubscribers(...args) {\n\t for (const handler of this._subscribers) {\n\t handler(...args);\n\t }\n\t }\n\t };\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\n\t/**\n\t * @class Parameter\n\t * @classdesc This class represents a property parameters as defined in RFC 5545 Section 3.2\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.2\n\t * @url\n\t */\n\tclass Parameter extends observerTrait(lockableTrait(class {})) {\n\t /**\n\t * Constructor\n\t *\n\t * @param {string} name The name of the parameter\n\t * @param {string|Array|null} value The value of the parameter\n\t */\n\t constructor(name, value = null) {\n\t super();\n\n\t /**\n\t * Name of the parameter\n\t *\n\t * @type {string}\n\t * @private\n\t */\n\t this._name = uc(name);\n\n\t /**\n\t * Value of the parameter\n\t *\n\t * @type {string|Array|null}\n\t * @private\n\t */\n\t this._value = value;\n\t }\n\n\t /**\n\t * Get parameter name\n\t *\n\t * @readonly\n\t * @return {string}\n\t */\n\t get name() {\n\t return this._name;\n\t }\n\n\t /**\n\t * Get parameter value\n\t *\n\t * @return {string | Array}\n\t */\n\t get value() {\n\t return this._value;\n\t }\n\n\t /**\n\t * Set new parameter value\n\t *\n\t * @throws {ModificationNotAllowedError} if parameter is locked for modification\n\t * @param {string | Array} value The new value to set\n\t */\n\t set value(value) {\n\t this._modifyContent();\n\t this._value = value;\n\t }\n\n\t /**\n\t * Gets the first value of this parameter\n\t *\n\t * @return {string | null}\n\t */\n\t getFirstValue() {\n\t if (!this.isMultiValue()) {\n\t return this.value;\n\t } else {\n\t if (this.value.length > 0) {\n\t return this.value[0];\n\t }\n\t }\n\t return null;\n\t }\n\n\t /**\n\t * Gets an iterator for all values\n\t */\n\t *getValueIterator() {\n\t if (this.isMultiValue()) {\n\t yield* this.value.slice()[Symbol.iterator]();\n\t } else {\n\t yield this.value;\n\t }\n\t }\n\n\t /**\n\t * Returns whether or not the value is a multivalue\n\t *\n\t * @return {boolean}\n\t */\n\t isMultiValue() {\n\t return Array.isArray(this._value);\n\t }\n\n\t /**\n\t * Creates a copy of this parameter\n\t *\n\t * @return {Parameter}\n\t */\n\t clone() {\n\t const parameter = new this.constructor(this._name);\n\t if (this.isMultiValue()) {\n\t // only copy array values, don't copy array reference\n\t parameter.value = this._value.slice();\n\t } else {\n\t parameter.value = this._value;\n\t }\n\n\t // cloned parameters are always mutable\n\t return parameter;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t _modifyContent() {\n\t super._modifyContent();\n\t this._notifySubscribers();\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class AbstractValue\n\t * @classdesc BaseClass for all values\n\t */\n\tclass AbstractValue extends observerTrait(lockableTrait(class {})) {\n\t /**\n\t * Constructor\n\t *\n\t * @param {ICAL.Binary|ICAL.Duration|ICAL.Period|ICAL.Recur|ICAL.Time|ICAL.UtcOffset} icalValue The ICAL.JS object to wrap\n\t */\n\t constructor(icalValue) {\n\t if (new.target === AbstractValue) {\n\t throw new TypeError('Cannot instantiate abstract class AbstractValue');\n\t }\n\t super();\n\n\t /**\n\t * Wrapped ICAL.js value\n\t *\n\t * @type {ICAL.Binary|ICAL.Duration|ICAL.Period|ICAL.Recur|ICAL.Time|ICAL.UtcOffset}\n\t */\n\t this._innerValue = icalValue;\n\t }\n\n\t /**\n\t * Gets wrapped ICAL.JS object\n\t *\n\t * @return {*}\n\t */\n\t toICALJs() {\n\t return this._innerValue;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t _modifyContent() {\n\t super._modifyContent();\n\t this._notifySubscribers();\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class BinaryValue\n\t * @classdesc Wrapper for ICAL.Binary\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.1.3\n\t * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/binary.js\n\t */\n\tclass BinaryValue extends AbstractValue {\n\t /**\n\t * Sets the raw b64 encoded value\n\t *\n\t * @return {string}\n\t */\n\t get rawValue() {\n\t return this._innerValue.value;\n\t }\n\n\t /**\n\t * Gets the raw b64 encoded value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {string} value - The new raw value\n\t */\n\t set rawValue(value) {\n\t this._modifyContent();\n\t this._innerValue.value = value;\n\t }\n\n\t /**\n\t * Gets the decoded value\n\t *\n\t * @return {string}\n\t */\n\t get value() {\n\t return this._innerValue.decodeValue();\n\t }\n\n\t /**\n\t * Sets the decoded Value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {string} decodedValue - The new encoded value\n\t */\n\t set value(decodedValue) {\n\t this._modifyContent();\n\t this._innerValue.setEncodedValue(decodedValue);\n\t }\n\n\t /**\n\t * clones this value\n\t *\n\t * @return {BinaryValue}\n\t */\n\t clone() {\n\t return BinaryValue.fromRawValue(this._innerValue.value);\n\t }\n\n\t /**\n\t * Create a new BinaryValue object from an ICAL.Binary object\n\t *\n\t * @param {ICAL.Binary} icalValue - The ICAL.Binary object\n\t * @return {BinaryValue}\n\t */\n\t static fromICALJs(icalValue) {\n\t return new BinaryValue(icalValue);\n\t }\n\n\t /**\n\t * Create a new BinaryValue object from a raw b64 encoded value\n\t *\n\t * @param {string} rawValue - The raw value\n\t * @return {BinaryValue}\n\t */\n\t static fromRawValue(rawValue) {\n\t const icalBinary = new ICAL.Binary(rawValue);\n\t return BinaryValue.fromICALJs(icalBinary);\n\t }\n\n\t /**\n\t * Create a new BinaryValue object from decoded value\n\t *\n\t * @param {string} decodedValue - The encoded value\n\t * @return {BinaryValue}\n\t */\n\t static fromDecodedValue(decodedValue) {\n\t const icalBinary = new ICAL.Binary();\n\t icalBinary.setEncodedValue(decodedValue);\n\t return BinaryValue.fromICALJs(icalBinary);\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class DurationValue\n\t * @classdesc Wrapper for ICAL.Duration\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.3.6\n\t * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/duration.js\n\t */\n\tclass DurationValue extends AbstractValue {\n\t /**\n\t * Gets the weeks of the stored duration-value\n\t *\n\t * @return {number}\n\t */\n\t get weeks() {\n\t return this._innerValue.weeks;\n\t }\n\n\t /**\n\t * Sets the weeks of the stored duration-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @throws {TypeError} if value is negative\n\t * @param {number} weeks Amount of weeks\n\t */\n\t set weeks(weeks) {\n\t this._modifyContent();\n\t if (weeks < 0) {\n\t throw new TypeError('Weeks cannot be negative, use isNegative instead');\n\t }\n\t this._innerValue.weeks = weeks;\n\t }\n\n\t /**\n\t * Gets the days of the stored duration-value\n\t *\n\t * @return {number}\n\t */\n\t get days() {\n\t return this._innerValue.days;\n\t }\n\n\t /**\n\t * Sets the days of the stored duration-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @throws {TypeError} if value is negative\n\t * @param {number} days Amount of days\n\t */\n\t set days(days) {\n\t this._modifyContent();\n\t if (days < 0) {\n\t throw new TypeError('Days cannot be negative, use isNegative instead');\n\t }\n\t this._innerValue.days = days;\n\t }\n\n\t /**\n\t * Gets the hours of the stored duration-value\n\t *\n\t * @return {number}\n\t */\n\t get hours() {\n\t return this._innerValue.hours;\n\t }\n\n\t /**\n\t * Sets the weeks of the stored duration-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @throws {TypeError} if value is negative\n\t * @param {number} hours Amount of hours\n\t */\n\t set hours(hours) {\n\t this._modifyContent();\n\t if (hours < 0) {\n\t throw new TypeError('Hours cannot be negative, use isNegative instead');\n\t }\n\t this._innerValue.hours = hours;\n\t }\n\n\t /**\n\t * Gets the minutes of the stored duration-value\n\t *\n\t * @return {number}\n\t */\n\t get minutes() {\n\t return this._innerValue.minutes;\n\t }\n\n\t /**\n\t * Sets the minutes of the stored duration-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @throws {TypeError} if value is negative\n\t * @param {number} minutes Amount of minutes\n\t */\n\t set minutes(minutes) {\n\t this._modifyContent();\n\t if (minutes < 0) {\n\t throw new TypeError('Minutes cannot be negative, use isNegative instead');\n\t }\n\t this._innerValue.minutes = minutes;\n\t }\n\n\t /**\n\t * Gets the seconds of the stored duration-value\n\t *\n\t * @return {number}\n\t */\n\t get seconds() {\n\t return this._innerValue.seconds;\n\t }\n\n\t /**\n\t * Sets the seconds of the stored duration-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @throws {TypeError} if value is negative\n\t * @param {number} seconds Amount of seconds\n\t */\n\t set seconds(seconds) {\n\t this._modifyContent();\n\t if (seconds < 0) {\n\t throw new TypeError('Seconds cannot be negative, use isNegative instead');\n\t }\n\t this._innerValue.seconds = seconds;\n\t }\n\n\t /**\n\t * Gets the negative-indicator of the stored duration-value\n\t *\n\t * @return {boolean}\n\t */\n\t get isNegative() {\n\t return this._innerValue.isNegative;\n\t }\n\n\t /**\n\t * Gets the negative-indicator of the stored duration-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {boolean} isNegative Whether or not the duration is negative\n\t */\n\t set isNegative(isNegative) {\n\t this._modifyContent();\n\t this._innerValue.isNegative = !!isNegative;\n\t }\n\n\t /**\n\t * Gets the amount of total seconds of the stored duration-value\n\t *\n\t * @return {* | number}\n\t */\n\t get totalSeconds() {\n\t return this._innerValue.toSeconds();\n\t }\n\n\t /**\n\t * Sets the amount of total seconds of the stored duration-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {number} totalSeconds The total amounts of seconds to set\n\t */\n\t set totalSeconds(totalSeconds) {\n\t this._modifyContent();\n\t this._innerValue.fromSeconds(totalSeconds);\n\t }\n\n\t /**\n\t * Compares this duration to another one\n\t *\n\t * @param {DurationValue} otherDuration The duration to compare to\n\t * @return {number} -1, 0 or 1 for less/equal/greater\n\t */\n\t compare(otherDuration) {\n\t return this._innerValue.compare(otherDuration.toICALJs());\n\t }\n\n\t /**\n\t * Adds the value of another duration to this one\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {DurationValue} otherDuration The duration to add\n\t */\n\t addDuration(otherDuration) {\n\t this._modifyContent();\n\t this.totalSeconds += otherDuration.totalSeconds;\n\t this._innerValue.normalize();\n\t }\n\n\t /**\n\t * Subtract the value of another duration from this one\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {DurationValue} otherDuration The duration to subtract\n\t */\n\t subtractDuration(otherDuration) {\n\t this._modifyContent();\n\t this.totalSeconds -= otherDuration.totalSeconds;\n\t this._innerValue.normalize();\n\t }\n\n\t /**\n\t * clones this value\n\t *\n\t * @return {DurationValue}\n\t */\n\t clone() {\n\t return DurationValue.fromICALJs(this._innerValue.clone());\n\t }\n\n\t /**\n\t * Create a new DurationValue object from an ICAL.Duration object\n\t *\n\t * @param {ICAL.Duration} icalValue The ical.js duration value\n\t * @return {DurationValue}\n\t */\n\t static fromICALJs(icalValue) {\n\t return new DurationValue(icalValue);\n\t }\n\n\t /**\n\t * Create a new DurationValue object from a number of seconds\n\t *\n\t * @param {number} seconds Total amount of seconds\n\t * @return {DurationValue}\n\t */\n\t static fromSeconds(seconds) {\n\t const icalDuration = ICAL.Duration.fromSeconds(seconds);\n\t return new DurationValue(icalDuration);\n\t }\n\n\t /**\n\t * Create a new DurationValue object from data\n\t *\n\t * @param {object} data The destructuring object\n\t * @param {number=} data.weeks Number of weeks to set\n\t * @param {number=} data.days Number of days to set\n\t * @param {number=} data.hours Number of hours to set\n\t * @param {number=} data.minutes Number of minutes to set\n\t * @param {number=} data.seconds Number of seconds to set\n\t * @param {boolean=} data.isNegative Whether or not duration is negative\n\t * @return {DurationValue}\n\t */\n\t static fromData(data) {\n\t const icalDuration = ICAL.Duration.fromData(data);\n\t return new DurationValue(icalDuration);\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class DateTimeValue\n\t * @classdesc Wrapper for ICAL.Time\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.3.4\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.3.5\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.3.12\n\t * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/time.js\n\t */\n\tclass DateTimeValue extends AbstractValue {\n\t /**\n\t * Gets the year of the stored date-time-value\n\t *\n\t * @return {number}\n\t */\n\t get year() {\n\t return this._innerValue.year;\n\t }\n\n\t /**\n\t * Sets the year of the stored date-time-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {number} year Number of years to set\n\t */\n\t set year(year) {\n\t this._modifyContent();\n\t this._innerValue.year = year;\n\t }\n\n\t /**\n\t * Gets the month of the stored date-time-value\n\t *\n\t * @return {number}\n\t */\n\t get month() {\n\t return this._innerValue.month;\n\t }\n\n\t /**\n\t * Sets the month of the stored date-time-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {number} month Number of months to set\n\t */\n\t set month(month) {\n\t this._modifyContent();\n\t if (month < 1 || month > 12) {\n\t throw new TypeError('Month out of range');\n\t }\n\t this._innerValue.month = month;\n\t }\n\n\t /**\n\t * Gets the day of the stored date-time-value\n\t *\n\t * @return {number}\n\t */\n\t get day() {\n\t return this._innerValue.day;\n\t }\n\n\t /**\n\t * Sets the day of the stored date-time-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @throws {TypeError} if out of range\n\t * @param {number} day Number of days to set\n\t */\n\t set day(day) {\n\t this._modifyContent();\n\t if (day < 1 || day > 31) {\n\t throw new TypeError('Day out of range');\n\t }\n\t this._innerValue.day = day;\n\t }\n\n\t /**\n\t * Gets the hour of the stored date-time-value\n\t *\n\t * @return {number}\n\t */\n\t get hour() {\n\t return this._innerValue.hour;\n\t }\n\n\t /**\n\t * Sets the hour of the stored date-time-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @throws {TypeError} if out of range\n\t * @param {number} hour Number of hours to set\n\t */\n\t set hour(hour) {\n\t this._modifyContent();\n\t if (hour < 0 || hour > 23) {\n\t throw new TypeError('Hour out of range');\n\t }\n\t this._innerValue.hour = hour;\n\t }\n\n\t /**\n\t * Gets the minute of the stored date-time-value\n\t *\n\t * @return {number}\n\t */\n\t get minute() {\n\t return this._innerValue.minute;\n\t }\n\n\t /**\n\t * Sets the minute of the stored date-time-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @throws {TypeError} if out of range\n\t * @param {number} minute Number of minutes to set\n\t */\n\t set minute(minute) {\n\t this._modifyContent();\n\t if (minute < 0 || minute > 59) {\n\t throw new TypeError('Minute out of range');\n\t }\n\t this._innerValue.minute = minute;\n\t }\n\n\t /**\n\t * Gets the second of the stored date-time-value\n\t *\n\t * @return {number}\n\t */\n\t get second() {\n\t return this._innerValue.second;\n\t }\n\n\t /**\n\t * Sets the second of the stored date-time-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @throws {TypeError} if out of range\n\t * @param {number} second Number of seconds to set\n\t */\n\t set second(second) {\n\t this._modifyContent();\n\t if (second < 0 || second > 59) {\n\t throw new TypeError('Second out of range');\n\t }\n\t this._innerValue.second = second;\n\t }\n\n\t /**\n\t * Gets the timezone of this date-time-value\n\t *\n\t * @return {string | null}\n\t */\n\t get timezoneId() {\n\t // If zone.tzid is set and it's not 'floating' nor 'UTC', then it's a proper\n\t // timezone that we also have a timezone id for\n\t if (this._innerValue.zone.tzid && this._innerValue.zone.tzid !== 'floating' && this._innerValue.zone.tzid === 'UTC') {\n\t return this._innerValue.zone.tzid;\n\t }\n\n\t // If there is a timezone set, but we didn't have a zone.tzid in the previous if,\n\t // this means that the tzid does not have a definition stored along it.\n\t // we will keep this information anyway to not lose it\n\t if (this._innerValue.timezone) {\n\t return this._innerValue.timezone;\n\t }\n\n\t // this is the case when it's floating / UTC\n\t return this._innerValue.zone.tzid || null;\n\t }\n\n\t /**\n\t * Gets whether this date-time-value is a date or date-time\n\t *\n\t * @return {boolean}\n\t */\n\t get isDate() {\n\t return this._innerValue.isDate;\n\t }\n\n\t /**\n\t * Sets whether this date-time-value is a date or date-time\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {boolean} isDate Whether this is a date or date-time value\n\t */\n\t set isDate(isDate) {\n\t this._modifyContent();\n\t this._innerValue.isDate = !!isDate;\n\t if (isDate) {\n\t this._innerValue.hour = 0;\n\t this._innerValue.minute = 0;\n\t this._innerValue.second = 0;\n\t }\n\t }\n\n\t /**\n\t * Gets the unix-time\n\t *\n\t * @return {number}\n\t */\n\t get unixTime() {\n\t return this._innerValue.toUnixTime();\n\t }\n\n\t /**\n\t * returns vanilla javascript date object\n\t *\n\t * @return {Date}\n\t */\n\t get jsDate() {\n\t return this._innerValue.toJSDate();\n\t }\n\n\t /**\n\t * Adds a duration to this date-time-value\n\t *\n\t * @param {DurationValue} duration The duration to ad\n\t */\n\t addDuration(duration) {\n\t this._innerValue.addDuration(duration.toICALJs());\n\t }\n\n\t /**\n\t * Subtract another date excluding timezones\n\t *\n\t * @param {DateTimeValue} other The date-time value to subtract\n\t * @return {DurationValue}\n\t */\n\t subtractDateWithoutTimezone(other) {\n\t const icalDuration = this._innerValue.subtractDate(other.toICALJs());\n\t return DurationValue.fromICALJs(icalDuration);\n\t }\n\n\t /**\n\t * Subtract another date, taking timezones into account\n\t *\n\t * @param {DateTimeValue} other The date-time value to subtract\n\t * @return {DurationValue}\n\t */\n\t subtractDateWithTimezone(other) {\n\t const icalDuration = this._innerValue.subtractDateTz(other.toICALJs());\n\t return DurationValue.fromICALJs(icalDuration);\n\t }\n\n\t /**\n\t * Compares this DateTimeValue object with another one\n\t *\n\t * @param {DateTimeValue} other The date-time to compare to\n\t * @return {number} -1, 0 or 1 for less/equal/greater\n\t */\n\t compare(other) {\n\t return this._innerValue.compare(other.toICALJs());\n\t }\n\n\t /**\n\t * Compares only the date part in a given timezone\n\t *\n\t * @param {DateTimeValue} other The date-time to compare to\n\t * @param {Timezone} timezone The timezone to compare in\n\t * @return {number} -1, 0 or 1 for less/equal/greater\n\t */\n\t compareDateOnlyInGivenTimezone(other, timezone) {\n\t return this._innerValue.compareDateOnlyTz(other.toICALJs(), timezone.toICALTimezone());\n\t }\n\n\t /**\n\t * Returns a clone of this object which was converted to a different timezone\n\t *\n\t * @param {Timezone} timezone TimezoneId to convert to\n\t * @return {DateTimeValue}\n\t */\n\t getInTimezone(timezone) {\n\t const clonedICALTime = this._innerValue.convertToZone(timezone.toICALTimezone());\n\t return DateTimeValue.fromICALJs(clonedICALTime);\n\t }\n\n\t /**\n\t * Get the inner ICAL.Timezone\n\t *\n\t * @return {ICAL.Timezone}\n\t * @package\n\t */\n\t getICALTimezone() {\n\t return this._innerValue.zone;\n\t }\n\n\t /**\n\t * Returns a clone of this object which was converted to a different timezone\n\t *\n\t * @param {ICAL.Timezone} timezone TimezoneId to convert to\n\t * @return {DateTimeValue}\n\t * @package\n\t */\n\t getInICALTimezone(timezone) {\n\t const clonedICALTime = this._innerValue.convertToZone(timezone);\n\t return DateTimeValue.fromICALJs(clonedICALTime);\n\t }\n\n\t /**\n\t * Returns a clone of this object which was converted to UTC\n\t *\n\t * @return {DateTimeValue}\n\t */\n\t getInUTC() {\n\t const clonedICALTime = this._innerValue.convertToZone(ICAL.Timezone.utcTimezone);\n\t return DateTimeValue.fromICALJs(clonedICALTime);\n\t }\n\n\t /**\n\t * This silently replaces the inner timezone without converting the actual time\n\t *\n\t * @param {ICAL.Timezone} timezone The timezone to replace with\n\t * @package\n\t */\n\t silentlyReplaceTimezone(timezone) {\n\t this._modify();\n\t this._innerValue = new ICAL.Time({\n\t year: this.year,\n\t month: this.month,\n\t day: this.day,\n\t hour: this.hour,\n\t minute: this.minute,\n\t second: this.second,\n\t isDate: this.isDate,\n\t timezone\n\t });\n\t }\n\n\t /**\n\t * Replaces the inner timezone without converting the actual time\n\t *\n\t * @param {Timezone} timezone The timezone to replace with\n\t */\n\t replaceTimezone(timezone) {\n\t this._modifyContent();\n\t this._innerValue = ICAL.Time.fromData({\n\t year: this.year,\n\t month: this.month,\n\t day: this.day,\n\t hour: this.hour,\n\t minute: this.minute,\n\t second: this.second,\n\t isDate: this.isDate\n\t }, timezone.toICALTimezone());\n\t }\n\n\t /**\n\t * Calculates the UTC offset of the date-time-value in its timezone\n\t *\n\t * @return {number}\n\t */\n\t utcOffset() {\n\t return this._innerValue.utcOffset();\n\t }\n\n\t /**\n\t * Check if this is an event with floating time\n\t *\n\t * @return {boolean}\n\t */\n\t isFloatingTime() {\n\t return this._innerValue.zone.tzid === 'floating';\n\t }\n\n\t /**\n\t * clones this value\n\t *\n\t * @return {DateTimeValue}\n\t */\n\t clone() {\n\t return DateTimeValue.fromICALJs(this._innerValue.clone());\n\t }\n\n\t /**\n\t * Create a new DateTimeValue object from an ICAL.Time object\n\t *\n\t * @param {ICAL.Time} icalValue The ical.js Date value to initialise from\n\t * @return {DateTimeValue}\n\t */\n\t static fromICALJs(icalValue) {\n\t return new DateTimeValue(icalValue);\n\t }\n\n\t /**\n\t * Creates a new DateTimeValue object based on a vanilla javascript object\n\t *\n\t * @param {Date} jsDate The JavaScript date to initialise from\n\t * @param {boolean=} useUTC Whether or not to treat it as UTC\n\t * @return {DateTimeValue}\n\t */\n\t static fromJSDate(jsDate, useUTC = false) {\n\t const icalValue = ICAL.Time.fromJSDate(jsDate, useUTC);\n\t return DateTimeValue.fromICALJs(icalValue);\n\t }\n\n\t /**\n\t * Creates a new DateTimeValue object based on simple parameters\n\t *\n\t * @param {object} data The destructuring object\n\t * @param {number=} data.year Amount of years to set\n\t * @param {number=} data.month Amount of month to set (1-based)\n\t * @param {number=} data.day Amount of days to set\n\t * @param {number=} data.hour Amount of hours to set\n\t * @param {number=} data.minute Amount of minutes to set\n\t * @param {number=} data.second Amount of seconds to set\n\t * @param {boolean=} data.isDate Whether this is a date or date-time\n\t * @param {Timezone=} timezone The timezone of the DateTimeValue\n\t * @return {DateTimeValue}\n\t */\n\t static fromData(data, timezone) {\n\t const icalValue = ICAL.Time.fromData(data, timezone ? timezone.toICALTimezone() : undefined);\n\t return DateTimeValue.fromICALJs(icalValue);\n\t }\n\t}\n\tDateTimeValue.SUNDAY = ICAL.Time.SUNDAY;\n\tDateTimeValue.MONDAY = ICAL.Time.MONDAY;\n\tDateTimeValue.TUESDAY = ICAL.Time.TUESDAY;\n\tDateTimeValue.WEDNESDAY = ICAL.Time.WEDNESDAY;\n\tDateTimeValue.THURSDAY = ICAL.Time.THURSDAY;\n\tDateTimeValue.FRIDAY = ICAL.Time.FRIDAY;\n\tDateTimeValue.SATURDAY = ICAL.Time.SATURDAY;\n\tDateTimeValue.DEFAULT_WEEK_START = DateTimeValue.MONDAY;\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class PeriodValue\n\t * @classdesc Wrapper for ICAL.Period\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.3.9\n\t * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/period.js\n\t */\n\tclass PeriodValue extends AbstractValue {\n\t /**\n\t * @inheritDoc\n\t */\n\t constructor(...args) {\n\t super(...args);\n\n\t /**\n\t * DateTimeValue object for start\n\t *\n\t * @type {DateTimeValue}\n\t * @private\n\t */\n\t this._start = DateTimeValue.fromICALJs(this._innerValue.start);\n\n\t /**\n\t * DateTimeValue object for end\n\t *\n\t * @type {DateTimeValue|null}\n\t * @private\n\t */\n\t this._end = null;\n\n\t /**\n\t * DurationValue object for duration\n\t *\n\t * @type {DurationValue|null}\n\t * @private\n\t */\n\t this._duration = null;\n\t }\n\n\t /**\n\t * Gets the start of the period-value\n\t *\n\t * @return {DateTimeValue}\n\t */\n\t get start() {\n\t return this._start;\n\t }\n\n\t /**\n\t * Sets the start of the period-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {DateTimeValue} start The start of the period\n\t */\n\t set start(start) {\n\t this._modifyContent();\n\t this._start = start;\n\t this._innerValue.start = start.toICALJs();\n\t }\n\n\t /**\n\t * Gets the end of the period-value\n\t *\n\t * @return {DateTimeValue}\n\t */\n\t get end() {\n\t if (!this._end) {\n\t if (this._duration) {\n\t this._duration.lock();\n\t this._duration = null;\n\t }\n\t this._innerValue.end = this._innerValue.getEnd();\n\t this._end = DateTimeValue.fromICALJs(this._innerValue.end);\n\t this._innerValue.duration = null;\n\t if (this.isLocked()) {\n\t this._end.lock();\n\t }\n\t }\n\t return this._end;\n\t }\n\n\t /**\n\t * Sets the end of the period-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {DateTimeValue} end The end of the period\n\t */\n\t set end(end) {\n\t this._modifyContent();\n\t this._innerValue.duration = null;\n\t this._innerValue.end = end.toICALJs();\n\t this._end = end;\n\t }\n\n\t /**\n\t * Gets the duration of the period-value\n\t * The value is automatically locked.\n\t * If you want to edit the value, clone it and it as new duration\n\t *\n\t * @return {DurationValue}\n\t */\n\t get duration() {\n\t if (!this._duration) {\n\t if (this._end) {\n\t this._end.lock();\n\t this._end = null;\n\t }\n\t this._innerValue.duration = this._innerValue.getDuration();\n\t this._duration = DurationValue.fromICALJs(this._innerValue.duration);\n\t this._innerValue.end = null;\n\t if (this.isLocked()) {\n\t this._duration.lock();\n\t }\n\t }\n\t return this._duration;\n\t }\n\n\t /**\n\t * Sets the duration of the period-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {DurationValue} duration The duration to set\n\t */\n\t set duration(duration) {\n\t this._modifyContent();\n\t this._innerValue.end = null;\n\t this._innerValue.duration = duration.toICALJs();\n\t this._duration = duration;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t lock() {\n\t super.lock();\n\t this.start.lock();\n\t if (this._end) {\n\t this._end.lock();\n\t }\n\t if (this._duration) {\n\t this._duration.lock();\n\t }\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t unlock() {\n\t super.unlock();\n\t this.start.unlock();\n\t if (this._end) {\n\t this._end.unlock();\n\t }\n\t if (this._duration) {\n\t this._duration.unlock();\n\t }\n\t }\n\n\t /**\n\t * clones this value\n\t *\n\t * @return {PeriodValue}\n\t */\n\t clone() {\n\t return PeriodValue.fromICALJs(this._innerValue.clone());\n\t }\n\n\t /**\n\t * Create a new PeriodValue object from a ICAL.Period object\n\t *\n\t * @param {ICAL.Period} icalValue The ical.js period value to initialise from\n\t * @return {PeriodValue}\n\t */\n\t static fromICALJs(icalValue) {\n\t return new PeriodValue(icalValue);\n\t }\n\n\t /**\n\t * Create a new PeriodValue object from start and end\n\t *\n\t * @param {object} data The destructuring object\n\t * @param {DateTimeValue} data.start The start of the period\n\t * @param {DateTimeValue} data.end The end of the period\n\t * @return {PeriodValue}\n\t */\n\t static fromDataWithEnd(data) {\n\t const icalPeriod = ICAL.Period.fromData({\n\t start: data.start.toICALJs(),\n\t end: data.end.toICALJs()\n\t });\n\t return PeriodValue.fromICALJs(icalPeriod);\n\t }\n\n\t /**\n\t * Create a new PeriodValue object from start and duration\n\t *\n\t * @param {object} data The destructuring object\n\t * @param {DateTimeValue} data.start The start of the period\n\t * @param {DurationValue} data.duration The duration of the period\n\t * @return {PeriodValue}\n\t */\n\t static fromDataWithDuration(data) {\n\t const icalPeriod = ICAL.Period.fromData({\n\t start: data.start.toICALJs(),\n\t duration: data.duration.toICALJs()\n\t });\n\t return PeriodValue.fromICALJs(icalPeriod);\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\tconst ALLOWED_FREQ = ['SECONDLY', 'MINUTELY', 'HOURLY', 'DAILY', 'WEEKLY', 'MONTHLY', 'YEARLY'];\n\n\t/**\n\t * @class RecurValue\n\t * @classdesc Wrapper for ICAL.Recur\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.3.10\n\t * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/recur.js\n\t */\n\tclass RecurValue extends AbstractValue {\n\t /**\n\t * Constructor\n\t *\n\t * @param {ICAL.Recur} icalValue The ical.js rrule value\n\t * @param {DateTimeValue?} until The Until date\n\t */\n\t constructor(icalValue, until) {\n\t super(icalValue);\n\n\t /**\n\t * DateTimeValue object for Until\n\t *\n\t * @type {DateTimeValue}\n\t * @private\n\t */\n\t this._until = until;\n\t }\n\n\t /**\n\t * Gets the stored interval of this recurrence rule\n\t *\n\t * @return {number}\n\t */\n\t get interval() {\n\t return this._innerValue.interval;\n\t }\n\n\t /**\n\t * Sets the stored interval of this recurrence rule\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {number} interval New Interval to set\n\t */\n\t set interval(interval) {\n\t this._modifyContent();\n\t this._innerValue.interval = parseInt(interval, 10);\n\t }\n\n\t /**\n\t * Gets the weekstart used to calculate the recurrence expansion\n\t *\n\t * @return {number}\n\t */\n\t get weekStart() {\n\t return this._innerValue.wkst;\n\t }\n\n\t /**\n\t * Sets the weekstart used to calculate the recurrence expansion\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @throws {TypeError} if weekstart out of range\n\t * @param {number} weekStart New start of week to set\n\t */\n\t set weekStart(weekStart) {\n\t this._modifyContent();\n\t if (weekStart < DateTimeValue.SUNDAY || weekStart > DateTimeValue.SATURDAY) {\n\t throw new TypeError('Weekstart out of range');\n\t }\n\t this._innerValue.wkst = weekStart;\n\t }\n\n\t /**\n\t * Gets the until value if set\n\t * The value is automatically locked.\n\t * If you want to edit the value, clone it and it as new until\n\t *\n\t * @return {null|DateTimeValue}\n\t */\n\t get until() {\n\t if (!this._until && this._innerValue.until) {\n\t this._until = DateTimeValue.fromICALJs(this._innerValue.until);\n\t }\n\t return this._until;\n\t }\n\n\t /**\n\t * Sets the until value, automatically removes count\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {DateTimeValue} until New until date to set\n\t */\n\t set until(until) {\n\t this._modifyContent();\n\t if (this._until) {\n\t this._until.lock();\n\t }\n\t this._until = until;\n\t this._innerValue.count = null;\n\t this._innerValue.until = until.toICALJs();\n\t }\n\n\t /**\n\t * Gets the count value if set\n\t *\n\t * @return {null | number}\n\t */\n\t get count() {\n\t return this._innerValue.count;\n\t }\n\n\t /**\n\t * Sets the count value, automatically removes until\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {number} count New occurrence limit to set\n\t */\n\t set count(count) {\n\t this._modifyContent();\n\t if (this._until) {\n\t this._until.lock();\n\t this._until = null;\n\t }\n\t this._innerValue.until = null;\n\t this._innerValue.count = parseInt(count, 10);\n\t }\n\n\t /**\n\t * Gets the frequency of the recurrence rule\n\t *\n\t * @return {string} see\n\t */\n\t get frequency() {\n\t return this._innerValue.freq;\n\t }\n\n\t /**\n\t * Sets the frequency of the recurrence rule\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @throws {TypeError} if frequency is unknown\n\t * @param {string} freq New frequency to set\n\t */\n\t set frequency(freq) {\n\t this._modifyContent();\n\t if (!ALLOWED_FREQ.includes(freq)) {\n\t throw new TypeError('Unknown frequency');\n\t }\n\t this._innerValue.freq = freq;\n\t }\n\n\t /**\n\t * Modifies this recurrence-value to unset count and until\n\t */\n\t setToInfinite() {\n\t this._modifyContent();\n\t if (this._until) {\n\t this._until.lock();\n\t this._until = null;\n\t }\n\t this._innerValue.until = null;\n\t this._innerValue.count = null;\n\t }\n\n\t /**\n\t * Checks whether the stored rule is finite\n\t *\n\t * @return {boolean}\n\t */\n\t isFinite() {\n\t return this._innerValue.isFinite();\n\t }\n\n\t /**\n\t * Checks whether the recurrence rule is limited by count\n\t *\n\t * @return {boolean}\n\t */\n\t isByCount() {\n\t return this._innerValue.isByCount();\n\t }\n\n\t /**\n\t * Adds a part to a component to the recurrence-rule\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {string} componentName The name of the recurrence-component to add\n\t * @param {string | number} value The value to add\n\t */\n\t addComponent(componentName, value) {\n\t this._modifyContent();\n\t this._innerValue.addComponent(componentName, value);\n\t }\n\n\t /**\n\t * Sets / overwrites a component to the recurrence-rule\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {string} componentName The name of the component to set\n\t * @param {number[] | string[]} value The value to set\n\t */\n\t setComponent(componentName, value) {\n\t this._modifyContent();\n\t if (value.length === 0) {\n\t delete this._innerValue.parts[componentName.toUpperCase()];\n\t } else {\n\t this._innerValue.setComponent(componentName, value);\n\t }\n\t }\n\n\t /**\n\t * Removes all parts of a component\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {string} componentName The name of the component to remove\n\t */\n\t removeComponent(componentName) {\n\t delete this._innerValue.parts[uc(componentName)];\n\t }\n\n\t /**\n\t * Gets all parts of a component\n\t *\n\t * @param {string} componentName The name of the component to get\n\t * @return {Array}\n\t */\n\t getComponent(componentName) {\n\t return this._innerValue.getComponent(componentName);\n\t }\n\n\t /**\n\t * Checks if this recurrence rule is valid according to RFC 5545\n\t *\n\t * @return {boolean}\n\t */\n\t isRuleValid() {\n\t return true;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t lock() {\n\t super.lock();\n\t if (this._until) {\n\t this._until.lock();\n\t }\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t unlock() {\n\t super.unlock();\n\t if (this._until) {\n\t this._until.unlock();\n\t }\n\t }\n\n\t /**\n\t * clones this value\n\t *\n\t * @return {RecurValue}\n\t */\n\t clone() {\n\t return RecurValue.fromICALJs(this._innerValue.clone());\n\t }\n\n\t /**\n\t * Create a new RecurValue object from a ICAL.Recur object\n\t *\n\t * @param {ICAL.Recur} icalValue The ICAL.JS Recur value\n\t * @param {DateTimeValue?} until The Until date\n\t * @return {RecurValue}\n\t */\n\t static fromICALJs(icalValue, until = null) {\n\t return new RecurValue(icalValue, until);\n\t }\n\n\t /**\n\t * Create a new RecurValue object from a data object\n\t *\n\t * @param {object} data The destructuring object\n\t * @param {string=} data.freq FREQ part of RRULE\n\t * @param {number=} data.interval INTERVAL part of RRULE\n\t * @param {number=} data.wkst WEEKSTART part of RRULE\n\t * @param {DateTimeValue=} data.until UNTIL part of RRULE\n\t * @param {number=} data.count COUNT part of RRULE\n\t * @param {number[]=} data.bysecond BYSECOND part of RRULE\n\t * @param {number[]=} data.byminute BYMINUTE part of RRULE\n\t * @param {number[]=} data.byhour BYHOUR part of RRULE\n\t * @param {string[]=} data.byday BYDAY part of RRULE\n\t * @param {number[]=} data.bymonthday BYMONTHDAY part of RRULE\n\t * @param {number[]=} data.byyearday BYYEARDAY part of RRULE\n\t * @param {number[]=} data.byweekno BYWEEKNO part of RRULE\n\t * @param {number[]=} data.bymonth BYMONTH part of RRULE\n\t * @param {number[]=} data.bysetpos BYSETPOS part of RRULE\n\t * @return {RecurValue}\n\t */\n\t static fromData(data) {\n\t let until = null;\n\t if (data.until) {\n\t until = data.until;\n\t data.until = data.until.toICALJs();\n\t }\n\t const icalRecur = ICAL.Recur.fromData(data);\n\t return RecurValue.fromICALJs(icalRecur, until);\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class UTCOffsetValue\n\t * @classdesc Wrapper for ICAL.UtcOffset\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.3.14\n\t * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/utc_offset.js\n\t */\n\tclass UTCOffsetValue extends AbstractValue {\n\t /**\n\t * Gets the hour part of the offset-value\n\t *\n\t * @return {number}\n\t */\n\t get hours() {\n\t return this._innerValue.hours;\n\t }\n\n\t /**\n\t * Sets the hour part of the offset-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {number} hours - New hours to set\n\t */\n\t set hours(hours) {\n\t this._modifyContent();\n\t this._innerValue.hours = hours;\n\t }\n\n\t /**\n\t * Gets the minute part of the offset-value\n\t *\n\t * @return {number}\n\t */\n\t get minutes() {\n\t return this._innerValue.minutes;\n\t }\n\n\t /**\n\t * Sets the minute part of the offset-value\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {number} minutes - New minutes to set\n\t */\n\t set minutes(minutes) {\n\t this._modifyContent();\n\t this._innerValue.minutes = minutes;\n\t }\n\n\t /**\n\t * Gets the factor\n\t *\n\t * @return {number}\n\t */\n\t get factor() {\n\t return this._innerValue.factor;\n\t }\n\n\t /**\n\t * Sets the factor\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @throws {TypeError} if factor is neither 1 nor -1\n\t * @param {number} factor - New factor to set, 1 for positive, -1 for negative\n\t */\n\t set factor(factor) {\n\t this._modifyContent();\n\t if (factor !== 1 && factor !== -1) {\n\t throw new TypeError('Factor may only be set to 1 or -1');\n\t }\n\t this._innerValue.factor = factor;\n\t }\n\n\t /**\n\t * Gets the total amount of seconds\n\t *\n\t * @return {number}\n\t */\n\t get totalSeconds() {\n\t return this._innerValue.toSeconds();\n\t }\n\n\t /**\n\t * Sets the total amount of seconds\n\t *\n\t * @throws {ModificationNotAllowedError} if value is locked for modification\n\t * @param {number} totalSeconds - New number of total seconds to set\n\t */\n\t set totalSeconds(totalSeconds) {\n\t this._modifyContent();\n\t this._innerValue.fromSeconds(totalSeconds);\n\t }\n\n\t /**\n\t * Compares this UTCOffset to another one\n\t *\n\t * @param {UTCOffsetValue} other - The other UTCOffsetValue to compare with\n\t * @return {number} -1, 0 or 1 for less/equal/greater\n\t */\n\t compare(other) {\n\t return this._innerValue.compare(other.toICALJs());\n\t }\n\n\t /**\n\t * Clones this value\n\t *\n\t * @return {UTCOffsetValue}\n\t */\n\t clone() {\n\t return UTCOffsetValue.fromICALJs(this._innerValue.clone());\n\t }\n\n\t /**\n\t * Create a new UTCOffsetValue object from a ICAL.UTCOffset object\n\t *\n\t * @param {ICAL.UtcOffset} icalValue - The ICAL.UtcOffset object to initialize this object from\n\t * @return {UTCOffsetValue}\n\t */\n\t static fromICALJs(icalValue) {\n\t return new UTCOffsetValue(icalValue);\n\t }\n\n\t /**\n\t * Create a new UTCOffsetValue object from a data object\n\t *\n\t * @param {object} data - Object with data to create UTCOffsetValue object from\n\t * @param {number=} data.hours - The number of hours to set\n\t * @param {number=} data.minutes - The number of minutes to set\n\t * @param {number=} data.factor - The factor to use, 1 for positive, -1 for negative\n\t * @return {UTCOffsetValue}\n\t */\n\t static fromData(data) {\n\t const icalUTCOffset = new ICAL.UtcOffset();\n\t icalUTCOffset.fromData(data);\n\t return UTCOffsetValue.fromICALJs(icalUTCOffset);\n\t }\n\n\t /**\n\t * Create a new UTCOffsetValue object from an amount of seconds\n\t *w\n\t *\n\t * @param {number} seconds - The total number of seconds to create the UTCOffsetValue object from\n\t * @return {UTCOffsetValue}\n\t */\n\t static fromSeconds(seconds) {\n\t const icalUTCOffset = ICAL.UtcOffset.fromSeconds(seconds);\n\t return UTCOffsetValue.fromICALJs(icalUTCOffset);\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\tclass UnknownICALTypeError extends Error {}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @author Richard Steinmetz <richard@steinmetz.cloud>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t *\n\t * @param {string} icaltype The icaltype to get a Value constructor for\n\t * @return {RecurValue|PeriodValue|BinaryValue|DurationValue|UTCOffsetValue|DateTimeValue}\n\t */\n\tfunction getConstructorForICALType(icaltype) {\n\t switch (lc(icaltype)) {\n\t case 'binary':\n\t return BinaryValue;\n\t case 'date':\n\t case 'date-time':\n\t return DateTimeValue;\n\t case 'duration':\n\t return DurationValue;\n\t case 'period':\n\t return PeriodValue;\n\t case 'recur':\n\t return RecurValue;\n\t case 'utc-offset':\n\t return UTCOffsetValue;\n\t default:\n\t throw new UnknownICALTypeError();\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class Property\n\t * @classdesc This class represents a property as defined in RFC 5545 Section 3.5\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.5\n\t * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/property.js\n\t */\n\tclass Property extends observerTrait(lockableTrait(class {})) {\n\t /**\n\t * Constructor\n\t *\n\t * @param {string} name The name of the property\n\t * @param {string | number | AbstractValue | string[] | number[] | AbstractValue[] | null} value The value of the property\n\t * @param {Parameter[] | [string][]} parameters Array of parameters\n\t * @param {CalendarComponent|null} root The root of the calendar-document\n\t * @param {AbstractComponent|null} parent The parent-element of this property\n\t */\n\t constructor(name, value = null, parameters = [], root = null, parent = null) {\n\t super();\n\n\t /**\n\t * Name of the property\n\t *\n\t * @type {string}\n\t * @protected\n\t */\n\t this._name = uc(name);\n\n\t /**\n\t * Value of the property\n\t *\n\t * @type {string | number | AbstractValue | string[] | number[] | AbstractValue[] | null}\n\t * @protected\n\t */\n\t this._value = value;\n\n\t /**\n\t * List of parameters associated with this parameter\n\t *\n\t * @type {Map<string, Parameter>}\n\t */\n\t this._parameters = new Map();\n\n\t /**\n\t * Root node of ical document\n\t *\n\t * @type {CalendarComponent|null}\n\t * @protected\n\t */\n\t this._root = root;\n\n\t /**\n\t * Parent node\n\t *\n\t * @type {AbstractComponent|null}\n\t * @protected\n\t */\n\t this._parent = parent;\n\t this._setParametersFromConstructor(parameters);\n\t if (value instanceof AbstractValue) {\n\t value.subscribe(() => this._notifySubscribers());\n\t }\n\t }\n\n\t /**\n\t * Get property name\n\t *\n\t * @readonly\n\t * @return {string}\n\t */\n\t get name() {\n\t return this._name;\n\t }\n\n\t /**\n\t * Get parameter value\n\t *\n\t * @return {string | number | AbstractValue | string[] | number[] | AbstractValue[] | null}\n\t */\n\t get value() {\n\t return this._value;\n\t }\n\n\t /**\n\t * Set new parameter value\n\t *\n\t * @param {string | number | AbstractValue | string[] | number[] | AbstractValue[] | null} value The value of the property\n\t * @throws {ModificationNotAllowedError} if property is locked for modification\n\t */\n\t set value(value) {\n\t this._modifyContent();\n\t this._value = value;\n\t if (value instanceof AbstractValue) {\n\t value.subscribe(() => this._notifySubscribers());\n\t }\n\t }\n\n\t /**\n\t * Gets the root of this property\n\t *\n\t * @return {CalendarComponent|null}\n\t */\n\t get root() {\n\t return this._root;\n\t }\n\n\t /**\n\t * Sets the root of this property\n\t *\n\t * @param {CalendarComponent|null} root The root of the calendar-document\n\t * @throws {ModificationNotAllowedError} if property is locked for modification\n\t */\n\t set root(root) {\n\t this._modify();\n\t this._root = root;\n\t }\n\n\t /**\n\t * Gets the direct parent element of this property\n\t *\n\t * @return {AbstractComponent}\n\t */\n\t get parent() {\n\t return this._parent;\n\t }\n\n\t /**\n\t * Sets the direct parent element of this property\n\t *\n\t * @param {AbstractComponent|null} parent The parent element of this property\n\t * @throws {ModificationNotAllowedError} if property is locked for modification\n\t */\n\t set parent(parent) {\n\t this._modify();\n\t this._parent = parent;\n\t }\n\n\t /**\n\t * Gets the first value of this property\n\t *\n\t * @return {null | string | number | AbstractValue}\n\t */\n\t getFirstValue() {\n\t if (!this.isMultiValue()) {\n\t return this.value;\n\t } else {\n\t if (this.value.length > 0) {\n\t return this.value[0];\n\t }\n\t }\n\t return null;\n\t }\n\n\t /**\n\t * Gets an iterator over all values\n\t */\n\t *getValueIterator() {\n\t if (this.isMultiValue()) {\n\t yield* this.value.slice()[Symbol.iterator]();\n\t } else {\n\t yield this.value;\n\t }\n\t }\n\n\t /**\n\t * Adds a value to the multi-value property\n\t *\n\t * @param {string | AbstractValue} value Value to add\n\t */\n\t addValue(value) {\n\t if (!this.isMultiValue()) {\n\t throw new TypeError('This is not a multivalue property');\n\t }\n\t this._modifyContent();\n\t this.value.push(value);\n\t }\n\n\t /**\n\t * Checks if a value is inside this multi-value property\n\t *\n\t * @param {string | AbstractValue} value Value to check for\n\t * @return {boolean}\n\t */\n\t hasValue(value) {\n\t if (!this.isMultiValue()) {\n\t throw new TypeError('This is not a multivalue property');\n\t }\n\t return this.value.includes(value);\n\t }\n\n\t /**\n\t * Removes a value from this multi-value property\n\t *\n\t * @param {string | AbstractValue} value Value to remove\n\t */\n\t removeValue(value) {\n\t if (!this.hasValue(value)) {\n\t return;\n\t }\n\t this._modifyContent();\n\t const index = this.value.indexOf(value);\n\t this.value.splice(index, 1);\n\t }\n\n\t /**\n\t * Sets a parameter on this property\n\t *\n\t * @param {Parameter} parameter The parameter to set\n\t * @throws {ModificationNotAllowedError} if property is locked for modification\n\t */\n\t setParameter(parameter) {\n\t this._modify();\n\t this._parameters.set(parameter.name, parameter);\n\t parameter.subscribe(() => this._notifySubscribers());\n\t }\n\n\t /**\n\t * Gets a parameter on this property by its name\n\t *\n\t * @param {string} parameterName Name of the parameter to get\n\t * @return {Parameter}\n\t */\n\t getParameter(parameterName) {\n\t return this._parameters.get(uc(parameterName));\n\t }\n\n\t /**\n\t * Gets an iterator over all available parameters\n\t */\n\t *getParametersIterator() {\n\t yield* this._parameters.values();\n\t }\n\n\t /**\n\t * Get first value of a parameter\n\t *\n\t * @param {string} parameterName Name of the parameter\n\t * @return {null | string}\n\t */\n\t getParameterFirstValue(parameterName) {\n\t const parameter = this.getParameter(parameterName);\n\t if (parameter instanceof Parameter) {\n\t if (parameter.isMultiValue()) {\n\t return parameter.value[0];\n\t } else {\n\t return parameter.value;\n\t }\n\t }\n\t return null;\n\t }\n\n\t /**\n\t * Returns whether a parameter exists on this property\n\t *\n\t * @param {string} parameterName Name of the parameter\n\t * @return {boolean}\n\t */\n\t hasParameter(parameterName) {\n\t return this._parameters.has(uc(parameterName));\n\t }\n\n\t /**\n\t * Deletes a parameter on this property\n\t *\n\t * @param {string} parameterName Name of the parameter\n\t * @throws {ModificationNotAllowedError} if property is locked for modification\n\t */\n\t deleteParameter(parameterName) {\n\t this._modify();\n\t this._parameters.delete(uc(parameterName));\n\t }\n\n\t /**\n\t * update a parameter if it exists,\n\t * create a new one if it doesn't\n\t *\n\t * @param {string} parameterName Name of the parameter\n\t * @param {string|Array|null} value Value to set\n\t * @throws {ModificationNotAllowedError} if property is locked for modification\n\t */\n\t updateParameterIfExist(parameterName, value) {\n\t this._modify();\n\t if (this.hasParameter(parameterName)) {\n\t const parameter = this.getParameter(parameterName);\n\t parameter.value = value;\n\t } else {\n\t const parameter = new Parameter(uc(parameterName), value);\n\t this.setParameter(parameter);\n\t }\n\t }\n\n\t /**\n\t * Returns whether or not the value is a multivalue\n\t *\n\t * @return {boolean}\n\t */\n\t isMultiValue() {\n\t return Array.isArray(this._value);\n\t }\n\n\t /**\n\t * Returns whether or not this valus is decorated\n\t *\n\t * @return {boolean}\n\t */\n\t isDecoratedValue() {\n\t if (this.isMultiValue()) {\n\t return this._value[0] instanceof AbstractValue;\n\t } else {\n\t return this._value instanceof AbstractValue;\n\t }\n\t }\n\n\t /**\n\t * Marks this parameter is immutable\n\t * locks it against further modification\n\t */\n\t lock() {\n\t super.lock();\n\t for (const parameter of this.getParametersIterator()) {\n\t parameter.lock();\n\t }\n\t if (this.isDecoratedValue()) {\n\t for (const value of this.getValueIterator()) {\n\t value.lock();\n\t }\n\t }\n\t }\n\n\t /**\n\t * Marks this parameter as mutable\n\t * allowing further modification\n\t */\n\t unlock() {\n\t super.unlock();\n\t for (const parameter of this.getParametersIterator()) {\n\t parameter.unlock();\n\t }\n\t if (this.isDecoratedValue()) {\n\t for (const value of this.getValueIterator()) {\n\t value.unlock();\n\t }\n\t }\n\t }\n\n\t /**\n\t * Creates a copy of this parameter\n\t *\n\t * @return {Property}\n\t */\n\t clone() {\n\t const parameters = [];\n\t for (const parameter of this.getParametersIterator()) {\n\t parameters.push(parameter.clone());\n\t }\n\t return new this.constructor(this.name, this._cloneValue(), parameters, this.root, this.parent);\n\t }\n\n\t /**\n\t * Copies the values of this property\n\t *\n\t * @return {string | number | AbstractValue | string[] | number[] | AbstractValue[] | null}\n\t * @protected\n\t */\n\t _cloneValue() {\n\t if (this.isDecoratedValue()) {\n\t if (this.isMultiValue()) {\n\t return this._value.map(val => val.clone());\n\t } else {\n\t return this._value.clone();\n\t }\n\t } else {\n\t if (this.isMultiValue()) {\n\t // only copy array values, don't copy array reference\n\t return this._value.slice();\n\t } else {\n\t return this._value;\n\t }\n\t }\n\t }\n\n\t /**\n\t * Sets parameters from the constructor\n\t *\n\t * @param {Parameter[] | [string][]} parameters Array of parameters to set\n\t * @private\n\t */\n\t _setParametersFromConstructor(parameters) {\n\t parameters.forEach(parameter => {\n\t if (!(parameter instanceof Parameter)) {\n\t parameter = new Parameter(parameter[0], parameter[1]);\n\t }\n\t this.setParameter(parameter);\n\t });\n\t }\n\n\t /**\n\t * Creates a new Component based on an ical object\n\t *\n\t * @param {ICAL.Property} icalProperty The ical.js property to initialise from\n\t * @param {CalendarComponent=} root The root of the calendar-document\n\t * @param {AbstractComponent=} parent The parent element of this property\n\t * @return {Property}\n\t */\n\t static fromICALJs(icalProperty, root = null, parent = null) {\n\t if (!(icalProperty instanceof ICAL.Property)) {\n\t throw new ExpectedICalJSError();\n\t }\n\t let value;\n\t if (icalProperty.isDecorated) {\n\t const constructor = getConstructorForICALType(icalProperty.getFirstValue().icaltype);\n\t if (icalProperty.isMultiValue) {\n\t value = icalProperty.getValues().map(val => constructor.fromICALJs(val));\n\t } else {\n\t value = constructor.fromICALJs(icalProperty.getFirstValue());\n\t }\n\t } else {\n\t if (icalProperty.isMultiValue) {\n\t value = icalProperty.getValues();\n\t } else {\n\t value = icalProperty.getFirstValue();\n\t }\n\t }\n\t const parameters = [];\n\t const paramNames = Object.keys(Object.assign({}, icalProperty.toJSON()[1]));\n\t paramNames.forEach(paramName => {\n\t // Timezone id is handled by DateTimeValue\n\t if (uc(paramName) === 'TZID') {\n\t return;\n\t }\n\t parameters.push([paramName, icalProperty.getParameter(paramName)]);\n\t });\n\t return new this(icalProperty.name, value, parameters, root, parent);\n\t }\n\n\t /**\n\t * Returns an ICAL.js property based on this Property\n\t *\n\t * @return {ICAL.Property}\n\t */\n\t toICALJs() {\n\t const icalProperty = createProperty(lc(this.name));\n\t if (this.isMultiValue()) {\n\t if (this.isDecoratedValue()) {\n\t icalProperty.setValues(this.value.map(val => val.toICALJs()));\n\t } else {\n\t icalProperty.setValues(this.value);\n\t }\n\t } else {\n\t if (this.isDecoratedValue()) {\n\t icalProperty.setValue(this.value.toICALJs());\n\t } else {\n\t icalProperty.setValue(this.value);\n\t }\n\t }\n\t for (const parameter of this.getParametersIterator()) {\n\t icalProperty.setParameter(lc(parameter.name), parameter.value);\n\t }\n\t const firstValue = this.getFirstValue();\n\t if (firstValue instanceof DateTimeValue && firstValue.timezoneId !== 'floating' && firstValue.timezoneId !== 'UTC' && !firstValue.isDate) {\n\t icalProperty.setParameter('tzid', firstValue.timezoneId);\n\t }\n\t return icalProperty;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t _modifyContent() {\n\t super._modifyContent();\n\t this._notifySubscribers();\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class AttachmentProperty\n\t * @classdesc This class represents an attachment property as defined in RFC 5545 Section 3.8.1.1\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.1\n\t */\n\tclass AttachmentProperty extends Property {\n\t /**\n\t * Gets the format-type of this attachment\n\t *\n\t * @return {string}\n\t */\n\t get formatType() {\n\t return this.getParameterFirstValue('FMTTYPE');\n\t }\n\n\t /**\n\t * Sets the format-type of this attachment\n\t *\n\t * @param {string} fmtType Mime-type of attachment\n\t */\n\t set formatType(fmtType) {\n\t this.updateParameterIfExist('FMTTYPE', fmtType);\n\t }\n\n\t /**\n\t * Gets the uri of this attachment\n\t *\n\t * @return {string | null}\n\t */\n\t get uri() {\n\t if (this._value instanceof BinaryValue) {\n\t return null;\n\t }\n\t return this._value;\n\t }\n\n\t /**\n\t * Sets the uri of this attachment\n\t *\n\t * @param {string} uri Link to attachment if applicable\n\t */\n\t set uri(uri) {\n\t this.value = uri;\n\t }\n\n\t /**\n\t * Gets the encoding of this attachment\n\t *\n\t * @return {string|null}\n\t */\n\t get encoding() {\n\t if (this._value instanceof BinaryValue) {\n\t return 'BASE64';\n\t }\n\t return null;\n\t }\n\n\t /**\n\t * Gets the data stored in this attachment\n\t *\n\t * @return {string | null}\n\t */\n\t get data() {\n\t if (this._value instanceof BinaryValue) {\n\t return this._value.value;\n\t }\n\t return null;\n\t }\n\n\t /**\n\t * Sets the data stored in this attachment\n\t *\n\t * @param {string} data The data of the attachment\n\t */\n\t set data(data) {\n\t if (this.value instanceof BinaryValue) {\n\t this.value.value = data;\n\t } else {\n\t this.value = BinaryValue.fromDecodedValue(data);\n\t }\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t toICALJs() {\n\t const icalProperty = super.toICALJs();\n\t if (this._value instanceof BinaryValue && this.getParameterFirstValue('ENCODING') !== 'BASE64') {\n\t icalProperty.setParameter('ENCODING', 'BASE64');\n\t }\n\t return icalProperty;\n\t }\n\n\t /**\n\t * Creates a new AttachmentProperty based on data\n\t *\n\t * @param {string} data The data of the attachment\n\t * @param {string=} formatType The mime-type of the data\n\t * @return {AttachmentProperty}\n\t */\n\t static fromData(data, formatType = null) {\n\t const binaryValue = BinaryValue.fromDecodedValue(data);\n\t const property = new AttachmentProperty('ATTACH', binaryValue);\n\t if (formatType) {\n\t property.formatType = formatType;\n\t }\n\t return property;\n\t }\n\n\t /**\n\t * Creates a new AttachmentProperty based on a link\n\t *\n\t * @param {string} uri The URI for the attachment\n\t * @param {string=} formatType The mime-type of the uri\n\t * @return {AttachmentProperty}\n\t */\n\t static fromLink(uri, formatType = null) {\n\t const property = new AttachmentProperty('ATTACH', uri);\n\t if (formatType) {\n\t property.formatType = formatType;\n\t }\n\t return property;\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t * @author Richard Steinmetz <richard@steinmetz.cloud>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class AttendeeProperty\n\t * @classdesc This class represents an attendee property as defined in RFC 5545 Section 3.8.4.1\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1\n\t */\n\tclass AttendeeProperty extends Property {\n\t /**\n\t * Returns the role of the attendee.\n\t *\n\t * @return {string}\n\t */\n\t get role() {\n\t const allowed = ['CHAIR', 'REQ-PARTICIPANT', 'OPT-PARTICIPANT', 'NON-PARTICIPANT'];\n\t const defaultValue = 'REQ-PARTICIPANT';\n\t if (this.hasParameter('ROLE')) {\n\t const value = this.getParameterFirstValue('ROLE');\n\t if (allowed.includes(value)) {\n\t return value;\n\t }\n\t }\n\t return defaultValue;\n\t }\n\n\t /**\n\t * Sets new role of the attendee\n\t *\n\t * @param {string} role The role of the attendee (e.g. CHAIR, REQ-PARTICIPANT)\n\t */\n\t set role(role) {\n\t this.updateParameterIfExist('ROLE', role);\n\t }\n\n\t /**\n\t * Returns the calendar-user-type of an attendee\n\t *\n\t * @return {string}\n\t */\n\t get userType() {\n\t const allowed = ['INDIVIDUAL', 'GROUP', 'RESOURCE', 'ROOM', 'UNKNOWN'];\n\t if (!this.hasParameter('CUTYPE')) {\n\t return 'INDIVIDUAL';\n\t } else {\n\t const value = this.getParameterFirstValue('CUTYPE');\n\t if (allowed.includes(value)) {\n\t return value;\n\t }\n\t return 'UNKNOWN';\n\t }\n\t }\n\n\t /**\n\t * Sets new calendar-user-type of attendee\n\t *\n\t * @param {string} userType The type of user (e.g. INDIVIDUAL, GROUP)\n\t */\n\t set userType(userType) {\n\t this.updateParameterIfExist('CUTYPE', userType);\n\t }\n\n\t /**\n\t * Returns the \"Répondez s'il vous plaît\" value for attendee\n\t *\n\t * @return {boolean}\n\t */\n\t get rsvp() {\n\t if (!this.hasParameter('RSVP')) {\n\t return false;\n\t } else {\n\t const value = this.getParameterFirstValue('RSVP');\n\t return uc(value) === 'TRUE';\n\t }\n\t }\n\n\t /**\n\t * Updates the \"Répondez s'il vous plaît\" value for attendee\n\t *\n\t * @param {boolean} rsvp Whether or not to send out an invitation\n\t */\n\t set rsvp(rsvp) {\n\t this.updateParameterIfExist('RSVP', rsvp ? 'TRUE' : 'FALSE');\n\t }\n\n\t /**\n\t * Returns the common-name of the attendee\n\t *\n\t * @return {string|null}\n\t */\n\t get commonName() {\n\t return this.getParameterFirstValue('CN');\n\t }\n\n\t /**\n\t * Sets a new common-name of the attendee\n\t *\n\t * @param {string} commonName The display name of the attendee\n\t */\n\t set commonName(commonName) {\n\t this.updateParameterIfExist('CN', commonName);\n\t }\n\n\t /**\n\t * Returns the participation-status of the attendee\n\t *\n\t * @return {string}\n\t */\n\t get participationStatus() {\n\t let vobjectType;\n\t if (this.parent) {\n\t vobjectType = this.parent.name;\n\t } else {\n\t // let's assume we are inside an event\n\t // if we don't know better\n\t vobjectType = 'VEVENT';\n\t }\n\t const allowed = {\n\t VEVENT: ['NEEDS-ACTION', 'ACCEPTED', 'DECLINED', 'TENTATIVE', 'DELEGATED'],\n\t VJOURNAL: ['NEEDS-ACTION', 'ACCEPTED', 'DECLINED'],\n\t VTODO: ['NEEDS-ACTION', 'ACCEPTED', 'DECLINED', 'TENTATIVE', 'DELEGATED', 'COMPLETED', 'IN-PROCESS']\n\t };\n\t if (!this.hasParameter('PARTSTAT')) {\n\t return 'NEEDS-ACTION';\n\t } else {\n\t const value = this.getParameterFirstValue('PARTSTAT');\n\t if (allowed[vobjectType].includes(value)) {\n\t return value;\n\t }\n\t return 'NEEDS-ACTION';\n\t }\n\t }\n\n\t /**\n\t * Sets a new participation-status of the attendee\n\t *\n\t * @param {string} participationStatus The participation status (e.g. ACCEPTED, DECLINED)\n\t */\n\t set participationStatus(participationStatus) {\n\t this.updateParameterIfExist('PARTSTAT', participationStatus);\n\t }\n\n\t /**\n\t * Gets this attendee's language\n\t *\n\t * @return {string}\n\t */\n\t get language() {\n\t return this.getParameterFirstValue('LANGUAGE');\n\t }\n\n\t /**\n\t * Sets this attendee's language\n\t * This can be used to influence the language of the invitation email\n\t *\n\t * @param {string} language The preferred language of the attendee\n\t */\n\t set language(language) {\n\t this.updateParameterIfExist('LANGUAGE', language);\n\t }\n\n\t /**\n\t * Gets the email of the attendee\n\t *\n\t * @return {string}\n\t */\n\t get email() {\n\t return this.value;\n\t }\n\n\t /**\n\t * Sets the email address of the attendee\n\t *\n\t * @param {string} email The e-email address of the attendee\n\t */\n\t set email(email) {\n\t this.value = startStringWith(email, 'mailto:');\n\t }\n\n\t /**\n\t * Gets the email addresses of groups the attendee is a part of\n\t *\n\t * @return {string[]|null} The email addresses of the groups\n\t */\n\t get member() {\n\t return this.getParameter('MEMBER')?.value ?? null;\n\t }\n\n\t /**\n\t * Sets the email addresses of groups the attendee is a part of\n\t *\n\t * @param {string[]} members The email addresses of the groups\n\t */\n\t set member(members) {\n\t members = members.map(member => startStringWith(member, 'mailto:'));\n\t this.updateParameterIfExist('MEMBER', members);\n\t }\n\n\t /**\n\t * Is this attendee the organizer?\n\t *\n\t * @return {boolean}\n\t */\n\t isOrganizer() {\n\t return this._name === 'ORGANIZER';\n\t }\n\n\t /**\n\t * Creates a new AttendeeProperty from name and email\n\t *\n\t * @param {string} name The display name\n\t * @param {string} email The email address\n\t * @param {boolean=} isOrganizer Whether this is the organizer or an attendee\n\t * @return {AttendeeProperty}\n\t */\n\t static fromNameAndEMail(name, email, isOrganizer = false) {\n\t const propertyName = isOrganizer ? 'ORGANIZER' : 'ATTENDEE';\n\t email = startStringWith(email, 'mailto:');\n\t return new AttendeeProperty(propertyName, email, [['CN', name]]);\n\t }\n\n\t /**\n\t * Creates a new AttendeeProperty from name, email, role, userType and rsvp\n\t *\n\t * @param {string} name The display name\n\t * @param {string} email The email address\n\t * @param {string} role The role\n\t * @param {string} userType The type of user\n\t * @param {boolean} rsvp Whether to send out an invitation\n\t * @param {boolean=} isOrganizer Whether this is the organizer or an attendee\n\t * @return {AttendeeProperty}\n\t */\n\t static fromNameEMailRoleUserTypeAndRSVP(name, email, role, userType, rsvp, isOrganizer = false) {\n\t const propertyName = isOrganizer ? 'ORGANIZER' : 'ATTENDEE';\n\t email = startStringWith(email, 'mailto:');\n\t return new AttendeeProperty(propertyName, email, [['CN', name], ['ROLE', role], ['CUTYPE', userType], ['RSVP', rsvp ? 'TRUE' : 'FALSE']]);\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\tICAL.design.icalendar.property.conference = {\n\t defaultType: 'uri'\n\t};\n\tICAL.design.icalendar.param.feature = {\n\t valueType: 'cal-address',\n\t multiValue: ','\n\t};\n\n\t/**\n\t * @class ConferenceProperty\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.11\n\t */\n\tclass ConferenceProperty extends Property {\n\t /**\n\t * Iterator that iterates over all supported features\n\t * of the conference system\n\t */\n\t *getFeatureIterator() {\n\t if (!this.hasParameter('FEATURE')) {\n\t return;\n\t }\n\t const parameter = this.getParameter('FEATURE');\n\t yield* parameter.getValueIterator();\n\t }\n\n\t /**\n\t * Lists all supported features of the conference system\n\t *\n\t * @return {string[]}\n\t */\n\t listAllFeatures() {\n\t if (!this.hasParameter('FEATURE')) {\n\t return [];\n\t }\n\t return this.getParameter('FEATURE').value.slice();\n\t }\n\n\t /**\n\t * Adds a supported feature to the conference system\n\t *\n\t * @param {string} featureToAdd Feature to add\n\t */\n\t addFeature(featureToAdd) {\n\t this._modify();\n\t if (!this.hasParameter('FEATURE')) {\n\t this.updateParameterIfExist('FEATURE', [featureToAdd]);\n\t } else {\n\t if (this.hasFeature(featureToAdd)) {\n\t return;\n\t }\n\t const parameter = this.getParameter('FEATURE');\n\t parameter.value.push(featureToAdd);\n\t }\n\t }\n\n\t /**\n\t * Removes a supported feature\n\t *\n\t * @param {string} feature The feature to remove\n\t */\n\t removeFeature(feature) {\n\t this._modify();\n\t if (!this.hasFeature(feature)) {\n\t return;\n\t }\n\t const parameter = this.getParameter('FEATURE');\n\t const index = parameter.value.indexOf(feature);\n\t parameter.value.splice(index, 1);\n\t }\n\n\t /**\n\t * Removes all supported features from this conference system\n\t */\n\t clearAllFeatures() {\n\t this.deleteParameter('FEATURE');\n\t }\n\n\t /**\n\t * Check if this conference system supports a feature\n\t *\n\t * @param {string} feature The feature to check\n\t * @return {boolean}\n\t */\n\t hasFeature(feature) {\n\t if (!this.hasParameter('FEATURE')) {\n\t return false;\n\t }\n\t const parameter = this.getParameter('FEATURE');\n\t if (!Array.isArray(parameter.value)) {\n\t return false;\n\t }\n\t return parameter.value.includes(feature);\n\t }\n\n\t /**\n\t * Gets label for the conference system\n\t *\n\t * @return {string}\n\t */\n\t get label() {\n\t return this.getParameterFirstValue('LABEL');\n\t }\n\n\t /**\n\t * Updates the label for the conference system\n\t *\n\t * @param {string} label The label to set\n\t */\n\t set label(label) {\n\t this.updateParameterIfExist('LABEL', label);\n\t }\n\n\t /**\n\t * Gets the uri for this conference system\n\t */\n\t get uri() {\n\t return this.value;\n\t }\n\n\t /**\n\t * Sets the uri for this conference system\n\t *\n\t * @param {string} uri The URI to set\n\t */\n\t set uri(uri) {\n\t this.value = uri;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t toICALJs() {\n\t const icalProperty = super.toICALJs();\n\t icalProperty.setParameter('value', 'URI');\n\t return icalProperty;\n\t }\n\n\t /**\n\t * Creates a new ConferenceProperty based on URI, label and features\n\t *\n\t * @param {string} uri URI of the Conference\n\t * @param {string=} label Label of the conference\n\t * @param {string[]=} features Features of the conference\n\t * @return {ConferenceProperty}\n\t */\n\t static fromURILabelAndFeatures(uri, label = null, features = null) {\n\t const property = new ConferenceProperty('CONFERENCE', uri);\n\t if (label) {\n\t property.updateParameterIfExist('label', label);\n\t }\n\t if (features) {\n\t property.updateParameterIfExist('feature', features);\n\t }\n\t return property;\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class FreeBusyProperty\n\t * @classdesc\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.2.6\n\t */\n\tclass FreeBusyProperty extends Property {\n\t /**\n\t * Gets the type of this FreeBusyProperty\n\t *\n\t * @return {string}\n\t */\n\t get type() {\n\t const allowed = ['FREE', 'BUSY', 'BUSY-UNAVAILABLE', 'BUSY-TENTATIVE'];\n\t const defaultValue = 'BUSY';\n\t if (this.hasParameter('FBTYPE')) {\n\t const value = this.getParameterFirstValue('FBTYPE');\n\t if (allowed.includes(value)) {\n\t return value;\n\t }\n\t }\n\t return defaultValue;\n\t }\n\n\t /**\n\t * Sets the type of this FreeBusyProperty\n\t *\n\t * @param {string} type The type of information (e.g. FREE, BUSY, etc.)\n\t */\n\t set type(type) {\n\t this.updateParameterIfExist('FBTYPE', type);\n\t }\n\n\t /**\n\t * Creates a new FreeBusyProperty based on period and type\n\t *\n\t * @param {PeriodValue} period The period for FreeBusy Information\n\t * @param {string} type The type of the period\n\t * @return {FreeBusyProperty}\n\t */\n\t static fromPeriodAndType(period, type) {\n\t return new FreeBusyProperty('FREEBUSY', period, [['fbtype', type]]);\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class GeoProperty\n\t * @classdesc\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.6\n\t */\n\tclass GeoProperty extends Property {\n\t /**\n\t * @inheritDoc\n\t */\n\t constructor(name, value = [0, 0], parameters = [], root = null, parent = null) {\n\t super(name, value, parameters, root, parent);\n\t }\n\n\t /**\n\t * Gets the latitude stored in this property\n\t *\n\t * @return {number}\n\t */\n\t get latitude() {\n\t return this._value[0];\n\t }\n\n\t /**\n\t * Sets the latitude stored in this property\n\t *\n\t * @param {string | number} lat Latitude\n\t */\n\t set latitude(lat) {\n\t this._modifyContent();\n\t if (typeof lat !== 'number') {\n\t lat = parseFloat(lat);\n\t }\n\t this._value[0] = lat;\n\t }\n\n\t /**\n\t * Gets the longitude stored in this property\n\t */\n\t get longitude() {\n\t return this._value[1];\n\t }\n\n\t /**\n\t * Sets the longitude stored in this property\n\t *\n\t * @param {string | number} long Longitude\n\t */\n\t set longitude(long) {\n\t this._modifyContent();\n\t if (typeof long !== 'number') {\n\t long = parseFloat(long);\n\t }\n\t this._value[1] = long;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t *\n\t * TODO: this is an ugly hack right now.\n\t * As soon as the value is an array, we assume it's multivalue\n\t * but GEO is a (the one and only besides request-status) structured value and is also\n\t * stored inside an array.\n\t *\n\t * Calling icalProperty.setValues will throw an error\n\t */\n\t toICALJs() {\n\t const icalProperty = createProperty(lc(this.name));\n\t icalProperty.setValue(this.value);\n\t this._parameters.forEach(parameter => {\n\t icalProperty.setParameter(lc(parameter.name), parameter.value);\n\t });\n\t return icalProperty;\n\t }\n\n\t /**\n\t * Creates a new GeoProperty based on a latitude and a longitude value\n\t *\n\t * @param {number} lat Latitude\n\t * @param {number} long Longitude\n\t * @return {GeoProperty}\n\t */\n\t static fromPosition(lat, long) {\n\t return new GeoProperty('GEO', [lat, long]);\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class ImageProperty\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.10\n\t */\n\tclass ImageProperty extends AttachmentProperty {\n\t /**\n\t * Gets the image-type\n\t */\n\t get display() {\n\t return this.getParameterFirstValue('DISPLAY') || 'BADGE';\n\t }\n\n\t /**\n\t * Gets the image-type\n\t *\n\t * @param {string} display The display-type image is optimized for\n\t */\n\t set display(display) {\n\t this.updateParameterIfExist('DISPLAY', display);\n\t }\n\n\t /**\n\t * Creates a new ImageProperty based on data\n\t *\n\t * @param {string} data The data of the image\n\t * @param {string=} display The display-type it's optimized for\n\t * @param {string=} formatType The mime-type of the image\n\t * @return {ImageProperty}\n\t */\n\t static fromData(data, display = null, formatType = null) {\n\t const binaryValue = BinaryValue.fromDecodedValue(data);\n\t const property = new ImageProperty('IMAGE', binaryValue);\n\t if (display) {\n\t property.display = display;\n\t }\n\t if (formatType) {\n\t property.formatType = formatType;\n\t }\n\t return property;\n\t }\n\n\t /**\n\t * Creates a new ImageProperty based on a link\n\t *\n\t * @param {string} uri The uri of the image\n\t * @param {string=} display The display-type it's optimized for\n\t * @param {string=} formatType The mime-type of the image\n\t * @return {ImageProperty}\n\t */\n\t static fromLink(uri, display = null, formatType = null) {\n\t const property = new ImageProperty('IMAGE', uri);\n\t if (display) {\n\t property.display = display;\n\t }\n\t if (formatType) {\n\t property.formatType = formatType;\n\t }\n\t return property;\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class RelationProperty\n\t * @classdesc\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.5\n\t */\n\tclass RelationProperty extends Property {\n\t /**\n\t * Get's the relation-type of this related-to property\n\t *\n\t * @return {string}\n\t */\n\t get relationType() {\n\t const allowed = ['PARENT', 'CHILD', 'SIBLING'];\n\t const defaultValue = 'PARENT';\n\t if (!this.hasParameter('RELTYPE')) {\n\t return defaultValue;\n\t } else {\n\t const value = this.getParameterFirstValue('RELTYPE');\n\t if (allowed.includes(value)) {\n\t return value;\n\t }\n\t return defaultValue;\n\t }\n\t }\n\n\t /**\n\t * Sets a new relation type\n\t *\n\t * @param {string} relationType The type of relation (e.g. SIBLING, PARENT, etc.)\n\t */\n\t set relationType(relationType) {\n\t this.updateParameterIfExist('RELTYPE', relationType);\n\t }\n\n\t /**\n\t * Gets Id of related object\n\t *\n\t * @return {string}\n\t */\n\t get relatedId() {\n\t return this.value;\n\t }\n\n\t /**\n\t * Sets a new related id\n\t *\n\t * @param {string} relatedId The Id of the related document\n\t */\n\t set relatedId(relatedId) {\n\t this.value = relatedId;\n\t }\n\n\t /**\n\t * Creates a new RELATED-TO property based on a relation-type and id\n\t *\n\t * @param {string} relType The type of the relation (e.g. SIBLING, CHILD)\n\t * @param {string} relId The Id of the related document\n\t * @return {RelationProperty}\n\t */\n\t static fromRelTypeAndId(relType, relId) {\n\t return new RelationProperty('RELATED-TO', relId, [['RELTYPE', relType]]);\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class RequestStatusProperty\n\t * @classdesc\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.8.3\n\t */\n\tclass RequestStatusProperty extends Property {\n\t /**\n\t * @inheritDoc\n\t */\n\t constructor(name, value = ['1', 'Pending'], parameters = [], root = null, parent = null) {\n\t super(name, value, parameters, root, parent);\n\t }\n\n\t /**\n\t * Gets the status code of the request status\n\t *\n\t * @return {number}\n\t */\n\t get statusCode() {\n\t return parseFloat(this.value[0]);\n\t }\n\n\t /**\n\t * Sets the status code of the request status\n\t *\n\t * @param {number} statusCode The statusCode of the request\n\t */\n\t set statusCode(statusCode) {\n\t this._modifyContent();\n\t this.value[0] = statusCode.toString();\n\n\t // This makes sure 2.0 is actually saved as 2.0, not 2\n\t if (statusCode === Math.floor(statusCode)) {\n\t this.value[0] += '.0';\n\t }\n\t }\n\n\t /**\n\t * Gets the status message of the request status\n\t *\n\t * @return {string}\n\t */\n\t get statusMessage() {\n\t return this.value[1];\n\t }\n\n\t /**\n\t * Sets the status message of the request status\n\t *\n\t * @param {string} statusMessage The message of the request\n\t */\n\t set statusMessage(statusMessage) {\n\t this._modifyContent();\n\t this.value[1] = statusMessage;\n\t }\n\n\t /**\n\t * Gets the exception data of the request status if available\n\t *\n\t * @return {null | string}\n\t */\n\t get exceptionData() {\n\t if (!this.value[2]) {\n\t return null;\n\t }\n\t return this.value[2];\n\t }\n\n\t /**\n\t * Sets the exception dtat of the request status\n\t *\n\t * @param {string} exceptionData The additional exception-data\n\t */\n\t set exceptionData(exceptionData) {\n\t this._modifyContent();\n\t this.value[2] = exceptionData;\n\t }\n\n\t /**\n\t * Check if request is pending\n\t *\n\t * @return {boolean}\n\t */\n\t isPending() {\n\t return this.statusCode >= 1 && this.statusCode < 2;\n\t }\n\n\t /**\n\t * Check if request was successful\n\t *\n\t * @return {boolean}\n\t */\n\t isSuccessful() {\n\t return this.statusCode >= 2 && this.statusCode < 3;\n\t }\n\n\t /**\n\t * Check if a client error occurred\n\t *\n\t * @return {boolean}\n\t */\n\t isClientError() {\n\t return this.statusCode >= 3 && this.statusCode < 4;\n\t }\n\n\t /**\n\t * Check if a scheduling error occurred\n\t *\n\t * @return {boolean}\n\t */\n\t isSchedulingError() {\n\t return this.statusCode >= 4 && this.statusCode < 5;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t *\n\t * TODO: this is an ugly hack right now.\n\t * As soon as the value is an array, we assume it's multivalue\n\t * but REQUEST-STATUS is a (the one and only besides GEO) structured value and is also\n\t * stored inside an array.\n\t *\n\t * Calling icalProperty.setValues will throw an error\n\t */\n\t toICALJs() {\n\t const icalProperty = createProperty(lc(this.name));\n\t icalProperty.setValue(this.value);\n\t this._parameters.forEach(parameter => {\n\t icalProperty.setParameter(lc(parameter.name), parameter.value);\n\t });\n\t return icalProperty;\n\t }\n\n\t /**\n\t * Creates a new RequestStatusProperty from a code and a status message\n\t *\n\t * @param {number} code The status-code of the request\n\t * @param {string} message The message of the request\n\t * @return {RequestStatusProperty}\n\t */\n\t static fromCodeAndMessage(code, message) {\n\t return new RequestStatusProperty('REQUEST-STATUS', [code.toString(), message]);\n\t }\n\t}\n\n\t// All request statuses registered in RFC 5546\n\tRequestStatusProperty.SUCCESS = [2.0, 'Success'];\n\tRequestStatusProperty.SUCCESS_FALLBACK = [2.1, 'Success, but fallback taken on one or more property values.'];\n\tRequestStatusProperty.SUCCESS_PROP_IGNORED = [2.2, 'Success; invalid property ignored.'];\n\tRequestStatusProperty.SUCCESS_PROPPARAM_IGNORED = [2.3, 'Success; invalid property parameter ignored.'];\n\tRequestStatusProperty.SUCCESS_NONSTANDARD_PROP_IGNORED = [2.4, 'Success; unknown, non-standard property ignored.'];\n\tRequestStatusProperty.SUCCESS_NONSTANDARD_PROPPARAM_IGNORED = [2.5, 'Success; unknown, non-standard property value ignored.'];\n\tRequestStatusProperty.SUCCESS_COMP_IGNORED = [2.6, 'Success; invalid calendar component ignored.'];\n\tRequestStatusProperty.SUCCESS_FORWARDED = [2.7, 'Success; request forwarded to Calendar User.'];\n\tRequestStatusProperty.SUCCESS_REPEATING_IGNORED = [2.8, 'Success; repeating event ignored. Scheduled as a single component.'];\n\tRequestStatusProperty.SUCCESS_TRUNCATED_END = [2.9, 'Success; truncated end date time to date boundary.'];\n\tRequestStatusProperty.SUCCESS_REPEATING_VTODO_IGNORED = [2.10, 'Success; repeating VTODO ignored. Scheduled as a single VTODO.'];\n\tRequestStatusProperty.SUCCESS_UNBOUND_RRULE_CLIPPED = [2.11, 'Success; unbounded RRULE clipped at some finite number of instances.'];\n\tRequestStatusProperty.CLIENT_INVALID_PROPNAME = [3.0, 'Invalid property name.'];\n\tRequestStatusProperty.CLIENT_INVALID_PROPVALUE = [3.1, 'Invalid property value.'];\n\tRequestStatusProperty.CLIENT_INVALID_PROPPARAM = [3.2, 'Invalid property parameter.'];\n\tRequestStatusProperty.CLIENT_INVALID_PROPPARAMVALUE = [3.3, 'Invalid property parameter value.'];\n\tRequestStatusProperty.CLIENT_INVALUD_CALENDAR_COMP_SEQ = [3.4, 'Invalid calendar component sequence.'];\n\tRequestStatusProperty.CLIENT_INVALID_DATE_TIME = [3.5, 'Invalid date or time.'];\n\tRequestStatusProperty.CLIENT_INVALID_RRULE = [3.6, 'Invalid rule.'];\n\tRequestStatusProperty.CLIENT_INVALID_CU = [3.7, 'Invalid Calendar User.'];\n\tRequestStatusProperty.CLIENT_NO_AUTHORITY = [3.8, 'No authority.'];\n\tRequestStatusProperty.CLIENT_UNSUPPORTED_VERSION = [3.9, 'Unsupported version.'];\n\tRequestStatusProperty.CLIENT_TOO_LARGE = [3.10, 'Request entity too large.'];\n\tRequestStatusProperty.CLIENT_REQUIRED_COMP_OR_PROP_MISSING = [3.11, 'Required component or property missing.'];\n\tRequestStatusProperty.CLIENT_UNKNOWN_COMP_OR_PROP = [3.12, 'Unknown component or property found.'];\n\tRequestStatusProperty.CLIENT_UNSUPPORTED_COMP_OR_PROP = [3.13, 'Unsupported component or property found.'];\n\tRequestStatusProperty.CLIENT_UNSUPPORTED_CAPABILITY = [3.14, 'Unsupported capability.'];\n\tRequestStatusProperty.SCHEDULING_EVENT_CONFLICT = [4.0, 'Event conflict. Date/time is busy.'];\n\tRequestStatusProperty.SERVER_REQUEST_NOT_SUPPORTED = [5.0, 'Request not supported.'];\n\tRequestStatusProperty.SERVER_SERVICE_UNAVAILABLE = [5.1, 'Service unavailable.'];\n\tRequestStatusProperty.SERVER_INVALID_CALENDAR_SERVICE = [5.2, 'Invalid calendar service.'];\n\tRequestStatusProperty.SERVER_NO_SCHEDULING_FOR_USER = [5.3, 'No scheduling support for user.'];\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class TextProperty\n\t * @classdesc\n\t */\n\tclass TextProperty extends Property {\n\t /**\n\t * Gets the alternate text\n\t *\n\t * @return {string}\n\t */\n\t get alternateText() {\n\t return this.getParameterFirstValue('ALTREP');\n\t }\n\n\t /**\n\t * Sets the alternate text\n\t *\n\t * @param {string} altRep The alternative text\n\t */\n\t set alternateText(altRep) {\n\t this.updateParameterIfExist('ALTREP', altRep);\n\t }\n\n\t /**\n\t * Gets language of this property\n\t *\n\t * @return {string}\n\t */\n\t get language() {\n\t return this.getParameterFirstValue('LANGUAGE');\n\t }\n\n\t /**\n\t * Sets language of this property\n\t *\n\t * @param {string} language The language of the text\n\t */\n\t set language(language) {\n\t this.updateParameterIfExist('LANGUAGE', language);\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class TriggerProperty\n\t * @classdesc\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.6.3\n\t */\n\tclass TriggerProperty extends Property {\n\t /**\n\t * Gets the related parameter\n\t *\n\t * @return {string}\n\t */\n\t get related() {\n\t if (!this.hasParameter('RELATED')) {\n\t return 'START';\n\t }\n\t return this.getParameterFirstValue('RELATED');\n\t }\n\n\t /**\n\t * Sets the related parameter\n\t *\n\t * @param {string} related Either START or END\n\t */\n\t set related(related) {\n\t this.updateParameterIfExist('RELATED', related);\n\t }\n\n\t /**\n\t * Gets the value of this trigger\n\t * (If you override the setter, you also have to override the getter or\n\t * it will simply be undefined)\n\t *\n\t * @return {string | number | AbstractValue | string[] | number[] | AbstractValue[]}\n\t */\n\t get value() {\n\t return super.value;\n\t }\n\n\t /**\n\t * Set the value of this trigger\n\t *\n\t * @param {DurationValue|DateTimeValue} value The time of trigger\n\t */\n\t set value(value) {\n\t super.value = value;\n\n\t // If it's not a duration, remove related parameter\n\t if (value instanceof DateTimeValue) {\n\t this.deleteParameter('RELATED');\n\t super.value = value.getInUTC();\n\t }\n\t }\n\n\t /**\n\t * Gets whether this alarm trigger is relative\n\t *\n\t * @return {boolean}\n\t */\n\t isRelative() {\n\t return this.getFirstValue() instanceof DurationValue;\n\t }\n\n\t /**\n\t * Creates a new absolute trigger\n\t *\n\t * @param {DateTimeValue} alarmTime Time to create Trigger from\n\t * @return {TriggerProperty}\n\t */\n\t static fromAbsolute(alarmTime) {\n\t return new TriggerProperty('TRIGGER', alarmTime);\n\t }\n\n\t /**\n\t * Creates a new relative trigger\n\t *\n\t * @param {DurationValue} alarmOffset Duration to create Trigger from\n\t * @param {boolean=} relatedToStart Related to Start or end?\n\t * @return {TriggerProperty}\n\t */\n\t static fromRelativeAndRelated(alarmOffset, relatedToStart = true) {\n\t return new TriggerProperty('TRIGGER', alarmOffset, [['RELATED', relatedToStart ? 'START' : 'END']]);\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @author Richard Steinmetz <richard@steinmetz.cloud>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t *\n\t * @param {string} propName Name of the prop to get constructor for\n\t * @return {AttendeeProperty|GeoProperty|ConferenceProperty|Property|AttachmentProperty|ImageProperty|RelationProperty|RequestStatusProperty}\n\t */\n\tfunction getConstructorForPropertyName(propName) {\n\t switch (uc(propName)) {\n\t case 'ATTACH':\n\t return AttachmentProperty;\n\t case 'ATTENDEE':\n\t case 'ORGANIZER':\n\t return AttendeeProperty;\n\t case 'CONFERENCE':\n\t return ConferenceProperty;\n\t case 'FREEBUSY':\n\t return FreeBusyProperty;\n\t case 'GEO':\n\t return GeoProperty;\n\t case 'IMAGE':\n\t return ImageProperty;\n\t case 'RELATED-TO':\n\t return RelationProperty;\n\t case 'REQUEST-STATUS':\n\t return RequestStatusProperty;\n\t case 'TRIGGER':\n\t return TriggerProperty;\n\t case 'COMMENT':\n\t case 'CONTACT':\n\t case 'DESCRIPTION':\n\t case 'LOCATION':\n\t case 'SUMMARY':\n\t return TextProperty;\n\t default:\n\t return Property;\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class AbstractComponent\n\t */\n\tclass AbstractComponent extends observerTrait(lockableTrait(class {})) {\n\t /**\n\t * Constructor\n\t *\n\t * @param {string} name - Name of component\n\t * @param {Property[]} properties - Array of properties stored inside the component\n\t * @param {AbstractComponent[]} components - Array of subcomponents stored inside this component\n\t * @param {CalendarComponent|null} root - The root of this calendar document\n\t * @param {AbstractComponent|null} parent - The parent component of this element\n\t */\n\t constructor(name, properties = [], components = [], root = null, parent = null) {\n\t super();\n\n\t /**\n\t * Name of component\n\t *\n\t * @type {string}\n\t * @private\n\t */\n\t this._name = uc(name);\n\n\t /**\n\t * All properties in this component\n\t *\n\t * @type {Map<string, Property[]>}\n\t * @private\n\t */\n\t this._properties = new Map();\n\n\t /**\n\t * All subcomponents of this component\n\t *\n\t * @type {Map<string, AbstractComponent[]>}\n\t * @private\n\t */\n\t this._components = new Map();\n\n\t /**\n\t * Root node of ical document\n\t *\n\t * @type {CalendarComponent|null}\n\t * @private\n\t */\n\t this._root = root;\n\n\t /**\n\t * Parent node\n\t *\n\t * @type {AbstractComponent|null}\n\t * @private\n\t */\n\t this._parent = parent;\n\t this._setPropertiesFromConstructor(properties);\n\t this._setComponentsFromConstructor(components);\n\t }\n\n\t /**\n\t * Get the component's name\n\t *\n\t * @return {string}\n\t */\n\t get name() {\n\t return this._name;\n\t }\n\n\t /**\n\t * Gets the root of this calendar-document\n\t *\n\t * @return {CalendarComponent}\n\t */\n\t get root() {\n\t return this._root;\n\t }\n\n\t /**\n\t * Sets the root of this calendar-document\n\t *\n\t * @param {CalendarComponent} root The new root element\n\t */\n\t set root(root) {\n\t this._modify();\n\t this._root = root;\n\t for (const property of this.getPropertyIterator()) {\n\t property.root = root;\n\t }\n\t for (const component of this.getComponentIterator()) {\n\t component.root = root;\n\t }\n\t }\n\n\t /**\n\t * Gets the parent component\n\t *\n\t * @return {AbstractComponent}\n\t */\n\t get parent() {\n\t return this._parent;\n\t }\n\n\t /**\n\t * Sets the parent component\n\t *\n\t * @param {AbstractComponent} parent The new parent element\n\t */\n\t set parent(parent) {\n\t this._modify();\n\t this._parent = parent;\n\t }\n\n\t /**\n\t * Gets the first property that matches the given propertyName\n\t *\n\t * @param {string} propertyName Name of the property to get\n\t * @return {Property|null}\n\t */\n\t getFirstProperty(propertyName) {\n\t if (!this._properties.has(uc(propertyName))) {\n\t return null;\n\t }\n\t return this._properties.get(uc(propertyName))[0];\n\t }\n\n\t /**\n\t * Gets the first value of the first property matching that name\n\t *\n\t * @param {string} propertyName Name of the property to get first value of\n\t * @return {string | number | AbstractValue | string[] | number[] | AbstractValue[] | null}\n\t */\n\t getFirstPropertyFirstValue(propertyName) {\n\t const property = this.getFirstProperty(propertyName);\n\t if (!property) {\n\t return null;\n\t }\n\t return property.getFirstValue();\n\t }\n\n\t /**\n\t * update a property if it exists,\n\t * create a new one if it doesn't\n\t *\n\t * @param {string} propertyName Name of the property to update / create\n\t * @param {string | number | AbstractValue | string[] | number[] | AbstractValue[] | null} value The value to set\n\t */\n\t updatePropertyWithValue(propertyName, value) {\n\t this._modify();\n\t const property = this.getFirstProperty(propertyName);\n\t if (property) {\n\t property.value = value;\n\t } else {\n\t const constructor = getConstructorForPropertyName(propertyName);\n\t const newProperty = new constructor(propertyName, value, [], this, this.root);\n\t this.addProperty(newProperty);\n\t }\n\t }\n\n\t /**\n\t * Returns iterator for all properties of a given propertyName\n\t * or if no propertyName was given over all available properties\n\t *\n\t * @param {string=} propertyName Name of the property to get an iterator for\n\t */\n\t *getPropertyIterator(propertyName = null) {\n\t if (propertyName) {\n\t if (!this.hasProperty(propertyName)) {\n\t return;\n\t }\n\n\t // this._properties.get() returns an array\n\t // [Symbol.iterator]() creates an iterator from that array\n\t yield* this._properties.get(uc(propertyName)).slice()[Symbol.iterator]();\n\t } else {\n\t for (const key of this._properties.keys()) {\n\t yield* this.getPropertyIterator(key);\n\t }\n\t }\n\t }\n\n\t /**\n\t * Get all properties by name that match the given LANG parameter\n\t *\n\t * @param {string} propertyName The name of the property\n\t * @param {string | null} lang The lang to query\n\t * @private\n\t */\n\t *_getAllOfPropertyByLang(propertyName, lang) {\n\t for (const property of this.getPropertyIterator(propertyName)) {\n\t // getParameterFirstValue will return null if language not set, so no language parameter will match lang=null\n\t if (property.getParameterFirstValue('LANGUAGE') === lang) {\n\t yield property;\n\t }\n\t }\n\t }\n\n\t /**\n\t * Get the first property by name that matches the given LANG parameter\n\t *\n\t * @param {string} propertyName The name of the property\n\t * @param {string | null} lang The lang to query\n\t * @return {Property|null}\n\t * @private\n\t */\n\t _getFirstOfPropertyByLang(propertyName, lang) {\n\t const iterator = this._getAllOfPropertyByLang(propertyName, lang);\n\t return iterator.next().value || null;\n\t }\n\n\t /**\n\t * Adds a property\n\t *\n\t * @param {Property} property The property to add\n\t * @return {boolean}\n\t */\n\t addProperty(property) {\n\t this._modify();\n\t property.root = this.root;\n\t property.parent = this;\n\t if (this._properties.has(property.name)) {\n\t const arr = this._properties.get(property.name);\n\t if (arr.indexOf(property) !== -1) {\n\t // If the property is already part of this component,\n\t // return false to indicate an error\n\t return false;\n\t }\n\t arr.push(property);\n\t } else {\n\t this._properties.set(property.name, [property]);\n\t }\n\t property.subscribe(() => this._notifySubscribers());\n\t return true;\n\t }\n\n\t /**\n\t * Checks if this component has a property of the given name\n\t *\n\t * @param {string} propertyName The name of the property\n\t * @return {boolean}\n\t */\n\t hasProperty(propertyName) {\n\t return this._properties.has(uc(propertyName));\n\t }\n\n\t /**\n\t * Removes the given property from this component\n\t *\n\t * @param {Property} property The property to delete\n\t * @return {boolean}\n\t */\n\t deleteProperty(property) {\n\t this._modify();\n\t if (!this._properties.has(property.name)) {\n\t return false;\n\t }\n\t const arr = this._properties.get(property.name);\n\t const index = arr.indexOf(property);\n\t if (index === -1) {\n\t return false;\n\t }\n\t if (index !== -1 && arr.length === 1) {\n\t // If this is the last property of the given name,\n\t // remove the entire array from _properties\n\t // This is required for hasProperty to work properly\n\t this._properties.delete(property.name);\n\t } else {\n\t arr.splice(index, 1);\n\t }\n\t return true;\n\t }\n\n\t /**\n\t * Removes all properties of a given name\n\t *\n\t * @param {string} propertyName The name of the property\n\t * @return {boolean}\n\t */\n\t deleteAllProperties(propertyName) {\n\t this._modify();\n\t return this._properties.delete(uc(propertyName));\n\t }\n\n\t /**\n\t * Gets the first component of a given name\n\t *\n\t * @param {string} componentName The name of the component\n\t * @return {AbstractComponent|null}\n\t */\n\t getFirstComponent(componentName) {\n\t if (!this.hasComponent(componentName)) {\n\t return null;\n\t }\n\t return this._components.get(uc(componentName))[0];\n\t }\n\n\t /**\n\t * Returns iterator for all components of a given componentName\n\t * or if no componentName was given over all available components\n\t *\n\t * @param {string=} componentName The name of the component\n\t */\n\t *getComponentIterator(componentName) {\n\t if (componentName) {\n\t if (!this.hasComponent(componentName)) {\n\t return;\n\t }\n\n\t // this._components.get() returns an array\n\t // [Symbol.iterator]() creates an iterator from that array\n\t yield* this._components.get(uc(componentName)).slice()[Symbol.iterator]();\n\t } else {\n\t for (const key of this._components.keys()) {\n\t yield* this.getComponentIterator(key);\n\t }\n\t }\n\t }\n\n\t /**\n\t * Adds a new component to this component\n\t *\n\t * @param {AbstractComponent} component The component to add\n\t * @return {boolean}\n\t */\n\t addComponent(component) {\n\t this._modify();\n\t component.root = this.root;\n\t component.parent = this;\n\t if (this._components.has(component.name)) {\n\t const arr = this._components.get(component.name);\n\t if (arr.indexOf(component) !== -1) {\n\t // If the property is already part of this component,\n\t // return false to indicate an error\n\t return false;\n\t }\n\t arr.push(component);\n\t } else {\n\t this._components.set(component.name, [component]);\n\t }\n\t component.subscribe(() => this._notifySubscribers());\n\t return true;\n\t }\n\n\t /**\n\t * Checks if this component has a component of the given name\n\t *\n\t * @param {string} componentName The name of the component\n\t * @return {boolean}\n\t */\n\t hasComponent(componentName) {\n\t return this._components.has(uc(componentName));\n\t }\n\n\t /**\n\t * Removes the given component from this component\n\t *\n\t * @param {AbstractComponent} component The component to delete\n\t * @return {boolean}\n\t */\n\t deleteComponent(component) {\n\t this._modify();\n\t if (!this._components.has(component.name)) {\n\t return false;\n\t }\n\t const arr = this._components.get(component.name);\n\t const index = arr.indexOf(component);\n\t if (index === -1) {\n\t return false;\n\t }\n\t if (index !== -1 && arr.length === 1) {\n\t // If this is the last component of the given name,\n\t // remove the entire array from _components\n\t // This is required for hasComponent to work properly\n\t this._components.delete(component.name);\n\t } else {\n\t arr.splice(index, 1);\n\t }\n\t return true;\n\t }\n\n\t /**\n\t * Removes all components of a given name\n\t *\n\t * @param {string} componentName The name of the component\n\t * @return {boolean}\n\t */\n\t deleteAllComponents(componentName) {\n\t this._modify();\n\t return this._components.delete(uc(componentName));\n\t }\n\n\t /**\n\t * Marks this parameter is immutable\n\t * locks it against further modification\n\t */\n\t lock() {\n\t super.lock();\n\t for (const property of this.getPropertyIterator()) {\n\t property.lock();\n\t }\n\t for (const component of this.getComponentIterator()) {\n\t component.lock();\n\t }\n\t }\n\n\t /**\n\t * Marks this parameter as mutable\n\t * allowing further modification\n\t */\n\t unlock() {\n\t super.unlock();\n\t for (const property of this.getPropertyIterator()) {\n\t property.unlock();\n\t }\n\t for (const component of this.getComponentIterator()) {\n\t component.unlock();\n\t }\n\t }\n\n\t /**\n\t * Creates a copy of this parameter\n\t *\n\t * @return {AbstractComponent}\n\t */\n\t clone() {\n\t const properties = [];\n\t for (const property of this.getPropertyIterator()) {\n\t properties.push(property.clone());\n\t }\n\t const components = [];\n\t for (const component of this.getComponentIterator()) {\n\t components.push(component.clone());\n\t }\n\t return new this.constructor(this.name, properties, components, this.root, this.parent);\n\t }\n\n\t /**\n\t * Adds properties from constructor to this._properties\n\t *\n\t * @param {Property[]} properties Array of properties\n\t * @private\n\t */\n\t _setPropertiesFromConstructor(properties) {\n\t for (let property of properties) {\n\t if (Array.isArray(property)) {\n\t const constructor = getConstructorForPropertyName(property[0]);\n\t property = new constructor(property[0], property[1]);\n\t }\n\t this.addProperty(property);\n\t }\n\t }\n\n\t /**\n\t * Adds components from constructor to this._components\n\t *\n\t * @param {AbstractComponent[]} components Array of components\n\t * @private\n\t */\n\t _setComponentsFromConstructor(components) {\n\t for (const component of components) {\n\t this.addComponent(component);\n\t }\n\t }\n\n\t /**\n\t * Creates a new Component based on an ical object\n\t *\n\t * @param {ICAL.Component} icalValue The ical.js component to initialise from\n\t * @param {CalendarComponent=} root The root of the Calendar Document\n\t * @param {AbstractComponent=} parent The parent element of this component\n\t * @return {AbstractComponent}\n\t */\n\t static fromICALJs(icalValue, root = null, parent = null) {\n\t if (!(icalValue instanceof ICAL.Component)) {\n\t throw new ExpectedICalJSError();\n\t }\n\t const name = icalValue.name;\n\t const newComponent = new this(name, [], [], root, parent);\n\t for (const icalProp of icalValue.getAllProperties()) {\n\t const constructor = getConstructorForPropertyName(icalProp.name);\n\t const property = constructor.fromICALJs(icalProp, root, newComponent);\n\t newComponent.addProperty(property);\n\t }\n\t for (const icalComp of icalValue.getAllSubcomponents()) {\n\t const constructor = this._getConstructorForComponentName(icalComp.name);\n\t const component = constructor.fromICALJs(icalComp, root, newComponent);\n\t newComponent.addComponent(component);\n\t }\n\t return newComponent;\n\t }\n\n\t /**\n\t * Gets a constructor for a give component name\n\t *\n\t * @param {string} componentName The name of the component\n\t * @return {AbstractComponent}\n\t * @protected\n\t */\n\t static _getConstructorForComponentName(componentName) {\n\t return AbstractComponent;\n\t }\n\n\t /**\n\t * turns this Component into an ICAL.js component\n\t *\n\t * @return {ICAL.Component}\n\t */\n\t toICALJs() {\n\t const component = createComponent(lc(this.name));\n\t for (const prop of this.getPropertyIterator()) {\n\t component.addProperty(prop.toICALJs());\n\t }\n\t for (const comp of this.getComponentIterator()) {\n\t component.addSubcomponent(comp.toICALJs());\n\t }\n\t return component;\n\t }\n\t}\n\n\t/**\n\t * Advertise properties that may at most occur once\n\t *\n\t * Properties, which may at most occur once, get a simple getter and setter\n\t *\n\t * @param {object} prototype The object's prototype\n\t * @param {object} options The options for advertising properties\n\t * @param {boolean} advertiseValueOnly Whether to advertise the value only or the entire property\n\t */\n\tfunction advertiseSingleOccurrenceProperty(prototype, options, advertiseValueOnly = true) {\n\t options = getDefaultOncePropConfig(options);\n\t Object.defineProperty(prototype, options.name, {\n\t get() {\n\t const value = this.getFirstPropertyFirstValue(options.iCalendarName);\n\t if (!value) {\n\t return options.defaultValue;\n\t } else {\n\t if (Array.isArray(options.allowedValues) && !options.allowedValues.includes(value)) {\n\t return options.unknownValue;\n\t }\n\t return value;\n\t }\n\t },\n\t set(value) {\n\t this._modify();\n\t if (value === null) {\n\t this.deleteAllProperties(options.iCalendarName);\n\t return;\n\t }\n\t if (Array.isArray(options.allowedValues) && !options.allowedValues.includes(value)) {\n\t throw new TypeError('Illegal value');\n\t }\n\t this.updatePropertyWithValue(options.iCalendarName, value);\n\t }\n\t });\n\t}\n\n\t/**\n\t * Advertise properties that may occur more than once\n\t *\n\t * Properties, which may occur more than once, won't get simple getter / setter,\n\t * but rather a more advanced set of get{name}Iterator, get{name}List, add{name},\n\t * remove{name} and clearAll{name} methods\n\t *\n\t * @param {object} prototype The object's prototype\n\t * @param {object} options The options for advertising properties\n\t */\n\tfunction advertiseMultipleOccurrenceProperty(prototype, options) {\n\t options = getDefaultMultiplePropConfig(options);\n\t prototype['get' + ucFirst(options.name) + 'Iterator'] = function* () {\n\t yield* this.getPropertyIterator(options.iCalendarName);\n\t };\n\t prototype['get' + ucFirst(options.name) + 'List'] = function () {\n\t return Array.from(this['get' + ucFirst(options.name) + 'Iterator']());\n\t };\n\t prototype['remove' + ucFirst(options.name)] = function (property) {\n\t this.deleteProperty(property);\n\t };\n\t prototype['clearAll' + ucFirst(options.pluralName)] = function () {\n\t this.deleteAllProperties(options.iCalendarName);\n\t };\n\t}\n\n\t/**\n\t * advertises a multi-value string property enabling simple access by language\n\t * This is used for:\n\t * - CATEGORIES\n\t * - RESOURCES\n\t *\n\t * @param {object} prototype The object's prototype\n\t * @param {object} options The options for advertising properties\n\t */\n\tfunction advertiseMultiValueStringPropertySeparatedByLang(prototype, options) {\n\t options = getDefaultMultiplePropConfig(options);\n\t prototype['get' + ucFirst(options.name) + 'Iterator'] = function* (lang = null) {\n\t for (const property of this._getAllOfPropertyByLang(options.iCalendarName, lang)) {\n\t yield* property.getValueIterator();\n\t }\n\t };\n\t prototype['get' + ucFirst(options.name) + 'List'] = function (lang = null) {\n\t return Array.from(this['get' + ucFirst(options.name) + 'Iterator'](lang));\n\t };\n\t prototype['add' + ucFirst(options.name)] = function (value, lang = null) {\n\t const property = this._getFirstOfPropertyByLang(options.iCalendarName, lang);\n\t if (property) {\n\t property.addValue(value);\n\t } else {\n\t const newProperty = new Property(options.iCalendarName, [value]);\n\t if (lang) {\n\t const languageParameter = new Parameter('LANGUAGE', lang);\n\t newProperty.setParameter(languageParameter);\n\t }\n\t this.addProperty(newProperty);\n\t }\n\t };\n\t prototype['remove' + ucFirst(options.name)] = function (value, lang = null) {\n\t for (const property of this._getAllOfPropertyByLang(options.iCalendarName, lang)) {\n\t if (property.isMultiValue() && property.hasValue(value)) {\n\t if (property.value.length === 1) {\n\t this.deleteProperty(property);\n\t return true;\n\t }\n\t property.removeValue(value);\n\t return true;\n\t }\n\t }\n\t return false;\n\t };\n\t prototype['clearAll' + ucFirst(options.pluralName)] = function (lang = null) {\n\t for (const property of this._getAllOfPropertyByLang(options.iCalendarName, lang)) {\n\t this.deleteProperty(property);\n\t }\n\t };\n\t}\n\n\t/**\n\t * advertise a component\n\t *\n\t * @param {object} prototype The object's prototype\n\t * @param {object} options The options for advertising components\n\t */\n\tfunction advertiseComponent(prototype, options) {\n\t options = getDefaultMultipleCompConfig(options);\n\t prototype['get' + ucFirst(options.name) + 'Iterator'] = function* () {\n\t yield* this.getComponentIterator(options.iCalendarName);\n\t };\n\t prototype['get' + ucFirst(options.name) + 'List'] = function () {\n\t return Array.from(this['get' + ucFirst(options.name) + 'Iterator']());\n\t };\n\t prototype['remove' + ucFirst(options.name)] = function (component) {\n\t this.deleteComponent(component);\n\t };\n\t prototype['clearAll' + ucFirst(options.pluralName)] = function () {\n\t this.deleteAllComponents(options.iCalendarName);\n\t };\n\t}\n\n\t/**\n\t * Fill up the options object for advertiseProperty\n\t *\n\t * @param {object | string} options The options object\n\t * @param {string} options.name Advertised name of the property\n\t * @param {string=} options.iCalendarName The iCalendar name of the property\n\t * @param {string[]=} options.allowedValues A list of allowed values\n\t * @param {string | number=} options.defaultValue The default value if unset\n\t * @param {string | number=} options.unknownValue The fallback value if unknown value\n\t * @return {object}\n\t */\n\tfunction getDefaultOncePropConfig(options) {\n\t if (typeof options === 'string') {\n\t options = {\n\t name: options\n\t };\n\t }\n\t return Object.assign({}, {\n\t iCalendarName: uc(options.name),\n\t pluralName: options.name + 's',\n\t allowedValues: null,\n\t defaultValue: null,\n\t unknownValue: null\n\t }, options);\n\t}\n\n\t/**\n\t * Fill up the options object for advertiseProperty\n\t *\n\t * @param {object | string} options The options object\n\t * @param {string} options.name Advertised name of property\n\t * @param {string=} options.iCalendarName The iCalendar name of the property\n\t * @param {boolean=} options.customAddMethod Whether or not to use a custom add method\n\t * @return {object}\n\t */\n\tfunction getDefaultMultiplePropConfig(options) {\n\t if (typeof options === 'string') {\n\t options = {\n\t name: options\n\t };\n\t }\n\t return Object.assign({}, {\n\t iCalendarName: uc(options.name),\n\t pluralName: options.name + 's'\n\t }, options);\n\t}\n\n\t/**\n\t * Fill up the options object for advertiseComponent\n\t *\n\t * @param {object | string} options Options destructuring object\n\t * @param {string} options.name Advertised name of component\n\t * @param {string=} options.iCalendarName The iCalendar name of the component\n\t * @param {boolean=} options.customAddMethod Whether or not to use a custom add method\n\t * @return {object}\n\t */\n\tfunction getDefaultMultipleCompConfig(options) {\n\t if (typeof options === 'string') {\n\t options = {\n\t name: options\n\t };\n\t }\n\t return Object.assign({}, {\n\t iCalendarName: 'V' + uc(options.name),\n\t pluralName: options.name + 's'\n\t }, options);\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * Gets a new DateObject set to now\n\t *\n\t * @return {Date}\n\t */\n\tfunction dateFactory() {\n\t return new Date();\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\tclass RecurringWithoutDtStartError extends Error {}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class RecurrenceHelper\n\t * @classdesc\n\t *\n\t * TODO: This needs caching\n\t */\n\tclass RecurrenceManager {\n\t /**\n\t * Constructor\n\t *\n\t * @param {AbstractRecurringComponent} masterItem The master-item of the recurrence-set\n\t */\n\t constructor(masterItem) {\n\t /**\n\t *\n\t * @type {AbstractRecurringComponent}\n\t * @private\n\t */\n\t this._masterItem = masterItem;\n\n\t /**\n\t * Set of Recurrence exception items\n\t *\n\t * Number is the unix time representation of the recurrence ID\n\t *\n\t * @type {Map<number, AbstractRecurringComponent>}\n\t * @private\n\t */\n\t this._recurrenceExceptionItems = new Map();\n\n\t /**\n\t * A sorted index of recurrence ids with range\n\t *\n\t * @type {number[]}\n\t * @private\n\t */\n\t this._rangeRecurrenceExceptionItemsIndex = [];\n\n\t /**\n\t * Cached difference of dtstart and recurrenceId for recurrence exceptions with range\n\t *\n\t * @type {Map<number, DurationValue>}\n\t * @private\n\t */\n\t this._rangeRecurrenceExceptionItemsDiffCache = new Map();\n\n\t /**\n\t * Set of Recurrence exception items that have a RANGE of THISANDFUTURE\n\t *\n\t * Number is the unix time representation of the recurrence ID\n\t *\n\t * @type {Map<number, AbstractRecurringComponent>}\n\t * @private\n\t */\n\t this._rangeRecurrenceExceptionItems = new Map();\n\t }\n\n\t /**\n\t *\n\t * @return {AbstractRecurringComponent}\n\t */\n\t get masterItem() {\n\t return this._masterItem;\n\t }\n\n\t /**\n\t *\n\t * @param {AbstractRecurringComponent} masterItem The master-item of the recurrence-set\n\t */\n\t set masterItem(masterItem) {\n\t this._masterItem = masterItem;\n\t }\n\n\t /**\n\t * Gets an iterator over all registered recurrence exceptions of this calendar-document\n\t */\n\t *getRecurrenceExceptionIterator() {\n\t yield* this._recurrenceExceptionItems.values();\n\t }\n\n\t /**\n\t * Gets a list of all registered recurrence-exceptions of this calendar-document\n\t *\n\t * @return {AbstractRecurringComponent[]}\n\t */\n\t getRecurrenceExceptionList() {\n\t return Array.from(this.getRecurrenceExceptionIterator());\n\t }\n\n\t /**\n\t * Checks if there is a recurrence Exception for a given recurrenceId\n\t *\n\t * @param {DateTimeValue | number} recurrenceId The recurrenceId to check\n\t * @return {boolean}\n\t */\n\t hasRecurrenceExceptionForId(recurrenceId) {\n\t if (recurrenceId instanceof DateTimeValue) {\n\t recurrenceId = recurrenceId.unixTime;\n\t } else if (recurrenceId instanceof ICAL.Time) {\n\t recurrenceId = recurrenceId.toUnixTime();\n\t }\n\t return this._recurrenceExceptionItems.has(recurrenceId);\n\t }\n\n\t /**\n\t * Gets the recurrence exception for a given recurrence Id\n\t *\n\t * @param {DateTimeValue | number} recurrenceId The recurrenceId to get\n\t * @return {AbstractRecurringComponent|null}\n\t */\n\t getRecurrenceException(recurrenceId) {\n\t if (recurrenceId instanceof DateTimeValue) {\n\t recurrenceId = recurrenceId.unixTime;\n\t } else if (recurrenceId instanceof ICAL.Time) {\n\t recurrenceId = recurrenceId.toUnixTime();\n\t }\n\t return this._recurrenceExceptionItems.get(recurrenceId) || null;\n\t }\n\n\t /**\n\t * Check if there is a recurrence-exception with a range for a given recurrence-id\n\t *\n\t * @param {DateTimeValue | number} recurrenceId The recurrenceId to check\n\t * @return {boolean}\n\t */\n\t hasRangeRecurrenceExceptionForId(recurrenceId) {\n\t if (recurrenceId instanceof DateTimeValue) {\n\t recurrenceId = recurrenceId.unixTime;\n\t } else if (recurrenceId instanceof ICAL.Time) {\n\t recurrenceId = recurrenceId.toUnixTime();\n\t }\n\t if (this._rangeRecurrenceExceptionItemsIndex.length === 0) {\n\t return false;\n\t }\n\t return this._rangeRecurrenceExceptionItemsIndex[0] < recurrenceId;\n\t }\n\n\t /**\n\t * Get recurrence-exception with range that's affecting the given recurrence-id\n\t *\n\t * @param {DateTimeValue | number} recurrenceId The recurrenceId to get\n\t * @return {AbstractRecurringComponent|null}\n\t */\n\t getRangeRecurrenceExceptionForId(recurrenceId) {\n\t if (recurrenceId instanceof DateTimeValue) {\n\t recurrenceId = recurrenceId.unixTime;\n\t } else if (recurrenceId instanceof ICAL.Time) {\n\t recurrenceId = recurrenceId.toUnixTime();\n\t }\n\t const index = ICAL.helpers.binsearchInsert(this._rangeRecurrenceExceptionItemsIndex, recurrenceId, (a, b) => a - b);\n\t if (index === 0) {\n\t return null;\n\t }\n\t const key = this._rangeRecurrenceExceptionItemsIndex[index - 1];\n\t return this._rangeRecurrenceExceptionItems.get(key);\n\t }\n\n\t /**\n\t * Gets the difference between recurrence-id and start\n\t * Mostly needed to handle recurrence-exceptions with range\n\t *\n\t * @param {DateTimeValue | number} recurrenceId The recurrenceId to get\n\t * @return {DurationValue|null}\n\t */\n\t getRangeRecurrenceExceptionDiff(recurrenceId) {\n\t if (recurrenceId instanceof DateTimeValue) {\n\t recurrenceId = recurrenceId.unixTime;\n\t } else if (recurrenceId instanceof ICAL.Time) {\n\t recurrenceId = recurrenceId.toUnixTime();\n\t }\n\t if (this._rangeRecurrenceExceptionItemsDiffCache.has(recurrenceId)) {\n\t return this._rangeRecurrenceExceptionItemsDiffCache.get(recurrenceId);\n\t }\n\t const recurrenceException = this.getRangeRecurrenceExceptionForId(recurrenceId);\n\t if (!recurrenceException) {\n\t return null;\n\t }\n\t const originalRecurrenceId = recurrenceException.recurrenceId;\n\t const originalModifiedStart = recurrenceException.startDate;\n\t const difference = originalModifiedStart.subtractDateWithTimezone(originalRecurrenceId);\n\t difference.lock();\n\t this._rangeRecurrenceExceptionItemsDiffCache.set(recurrenceId, difference);\n\t return difference;\n\t }\n\n\t /**\n\t * Adds a new recurrence-exception to this calendar-document\n\t *\n\t * @param {AbstractRecurringComponent} recurrenceExceptionItem The recurrence-exception-item to relate to recurrence-set\n\t */\n\t relateRecurrenceException(recurrenceExceptionItem) {\n\t this._modify();\n\t const key = this._getRecurrenceIdKey(recurrenceExceptionItem);\n\t this._recurrenceExceptionItems.set(key, recurrenceExceptionItem);\n\t if (recurrenceExceptionItem.modifiesFuture()) {\n\t this._rangeRecurrenceExceptionItems.set(key, recurrenceExceptionItem);\n\t const index = ICAL.helpers.binsearchInsert(this._rangeRecurrenceExceptionItemsIndex, key, (a, b) => a - b);\n\t this._rangeRecurrenceExceptionItemsIndex.splice(index, 0, key);\n\t }\n\t recurrenceExceptionItem.recurrenceManager = this;\n\t }\n\n\t /**\n\t * Removes a recurrence exception by the item itself\n\t *\n\t * @param {AbstractRecurringComponent} recurrenceExceptionItem The recurrence-exception remove\n\t */\n\t removeRecurrenceException(recurrenceExceptionItem) {\n\t const key = this._getRecurrenceIdKey(recurrenceExceptionItem);\n\t this.removeRecurrenceExceptionByRecurrenceId(key);\n\t }\n\n\t /**\n\t * Removes a recurrence exception by it's unix-time\n\t *\n\t * @param {number} recurrenceId The recurrence-exception to remove\n\t */\n\t removeRecurrenceExceptionByRecurrenceId(recurrenceId) {\n\t this._modify();\n\t this._recurrenceExceptionItems.delete(recurrenceId);\n\t this._rangeRecurrenceExceptionItems.delete(recurrenceId);\n\t this._rangeRecurrenceExceptionItemsDiffCache.delete(recurrenceId);\n\t const index = this._rangeRecurrenceExceptionItemsIndex.indexOf(recurrenceId);\n\t if (index !== -1) {\n\t this._rangeRecurrenceExceptionItemsIndex.splice(index, 1);\n\t }\n\t }\n\n\t /**\n\t *\n\t * @param {AbstractRecurringComponent} recurrenceExceptionItem Object to get key from\n\t * @return {number}\n\t * @private\n\t */\n\t _getRecurrenceIdKey(recurrenceExceptionItem) {\n\t return recurrenceExceptionItem.recurrenceId.unixTime;\n\t }\n\n\t /**\n\t * Gets an iterator over all recurrence rules\n\t */\n\t *getRecurrenceRuleIterator() {\n\t for (const property of this._masterItem.getPropertyIterator('RRULE')) {\n\t yield property.getFirstValue();\n\t }\n\t }\n\n\t /**\n\t * Gets a list of all recurrence rules\n\t *\n\t * @return {RecurValue[]}\n\t */\n\t getRecurrenceRuleList() {\n\t return Array.from(this.getRecurrenceRuleIterator());\n\t }\n\n\t /**\n\t * Adds a new recurrence rule\n\t *\n\t * @param {RecurValue} recurrenceRule The RRULE to add\n\t */\n\t addRecurrenceRule(recurrenceRule) {\n\t this._modify();\n\t this.resetCache();\n\t const property = new Property('RRULE', recurrenceRule);\n\t this._masterItem.addProperty(property);\n\t }\n\n\t /**\n\t * Removes a recurrence rule\n\t *\n\t * @param {RecurValue} recurrenceRule The RRULE to remove\n\t */\n\t removeRecurrenceRule(recurrenceRule) {\n\t this._modify();\n\t this.resetCache();\n\t for (const property of this._masterItem.getPropertyIterator('RRULE')) {\n\t if (property.getFirstValue() === recurrenceRule) {\n\t this._masterItem.deleteProperty(property);\n\t }\n\t }\n\t }\n\n\t /**\n\t * Removes all recurrence rules\n\t */\n\t clearAllRecurrenceRules() {\n\t this._modify();\n\t this.resetCache();\n\t this._masterItem.deleteAllProperties('RRULE');\n\t }\n\n\t /**\n\t * Gets an iterator over all recurrence\n\t *\n\t * @param {boolean} isNegative Whether or not to get EXDATES\n\t * @param {string} valueType Limit type of EXDATES\n\t */\n\t *getRecurrenceDateIterator(isNegative = false, valueType = null) {\n\t for (const property of this._getPropertiesForRecurrenceDate(isNegative, valueType)) {\n\t yield* property.getValueIterator();\n\t }\n\t }\n\n\t /**\n\t *\n\t * @param {boolean} isNegative Whether or not to get EXDATES\n\t * @param {string} valueType Limit type of EXDATES\n\t * @return {(DateTimeValue|PeriodValue)[]}\n\t */\n\t listAllRecurrenceDates(isNegative = false, valueType = null) {\n\t return Array.from(this.getRecurrenceDateIterator(isNegative, valueType));\n\t }\n\n\t /**\n\t * This adds a new recurrence-date value.\n\t * It automatically adds it to the first property of the same value-type\n\t * or creates a new one if necessary\n\t *\n\t * @param {boolean} isNegative Whether we are dealing with an EXDATE or RDATE\n\t * @param {DateTimeValue|PeriodValue} value EXDATE to add\n\t */\n\t addRecurrenceDate(isNegative = false, value) {\n\t this._modify();\n\t this.resetCache();\n\n\t // Only add DateTime Value if its of the same timezone\n\t let timezoneId = null;\n\t if (value instanceof DateTimeValue && !value.isDate) {\n\t timezoneId = value.timezoneId;\n\t }\n\t const valueType = this._getValueTypeByValue(value);\n\t const iterator = this._getPropertiesForRecurrenceDate(isNegative, valueType, timezoneId);\n\t const first = iterator.next.value;\n\t if (first instanceof Property) {\n\t const propertyValue = first.value;\n\t propertyValue.push(value);\n\t this.masterItem.markPropertyAsDirty(isNegative ? 'EXDATE' : 'RDATE');\n\t } else {\n\t const propertyName = this._getPropertyNameByIsNegative(isNegative);\n\t const property = new Property(propertyName, value);\n\t this._masterItem.addProperty(property);\n\t }\n\t }\n\n\t /**\n\t * Checks if a recurrenceID is an RDATE or EXDATE\n\t *\n\t * @param {boolean} isNegative Whether we are dealing with an EXDATE or RDATE\n\t * @param {DateTimeValue} recurrenceId Recurrence-Id to check\n\t * @return {boolean}\n\t */\n\t hasRecurrenceDate(isNegative = false, recurrenceId) {\n\t for (let value of this.getRecurrenceDateIterator(isNegative)) {\n\t if (value instanceof PeriodValue) {\n\t value = value.start;\n\t }\n\t if (value.compare(recurrenceId) === 0) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t }\n\n\t /**\n\t *\n\t * @param {boolean} isNegative Whether we are dealing with an EXDATE or RDATE\n\t * @param {DateTimeValue} recurrenceId Recurrence-Id to get\n\t * @return {null|DateTimeValue|PeriodValue}\n\t */\n\t getRecurrenceDate(isNegative = false, recurrenceId) {\n\t for (const value of this.getRecurrenceDateIterator(isNegative)) {\n\t let valueToCheck = value;\n\t if (valueToCheck instanceof PeriodValue) {\n\t valueToCheck = valueToCheck.start;\n\t }\n\t if (valueToCheck.compare(recurrenceId) === 0) {\n\t return value;\n\t }\n\t }\n\t return null;\n\t }\n\n\t /**\n\t * This deletes a recurrence-date value from this recurrence-set\n\t *\n\t * @param {boolean} isNegative Whether we are dealing with an EXDATE or RDATE\n\t * @param {DateTimeValue|PeriodValue} value The EXDATE/RDATE to remove\n\t */\n\t removeRecurrenceDate(isNegative = false, value) {\n\t this._modify();\n\t this.resetCache();\n\t const valueType = this._getValueTypeByValue(value);\n\t for (const property of this._getPropertiesForRecurrenceDate(isNegative, valueType)) {\n\t for (const valueToCheck of property.getValueIterator()) {\n\t if (value === valueToCheck) {\n\t const allValues = property.value;\n\t if (allValues.length === 1) {\n\t this.masterItem.deleteProperty(property);\n\t continue;\n\t }\n\t const index = allValues.indexOf(value);\n\t allValues.splice(index, 1);\n\t this.masterItem.markPropertyAsDirty(isNegative ? 'EXDATE' : 'RDATE');\n\t }\n\t }\n\t }\n\t }\n\n\t /**\n\t * Clears all recurrence-date information\n\t *\n\t * @param {boolean} isNegative Whether we are dealing with an EXDATE or RDATE\n\t * @param {string} valueType The type of RDATEs/EXDATEs to remove\n\t */\n\t clearAllRecurrenceDates(isNegative = false, valueType = null) {\n\t this._modify();\n\t this.resetCache();\n\t for (const property of this._getPropertiesForRecurrenceDate(isNegative, valueType)) {\n\t this._masterItem.deleteProperty(property);\n\t }\n\t }\n\n\t /**\n\t * Gets the property name for recurrence dates based on the isNegative boolean\n\t *\n\t * @param {boolean} isNegative Whether we are dealing with an EXDATE or RDATE\n\t * @return {string}\n\t * @private\n\t */\n\t _getPropertyNameByIsNegative(isNegative) {\n\t return isNegative ? 'EXDATE' : 'RDATE';\n\t }\n\n\t /**\n\t * Gets the value type based on the provided value\n\t *\n\t * @param {PeriodValue|DateTimeValue} value The value to get type of property from\n\t * @return {string}\n\t * @private\n\t */\n\t _getValueTypeByValue(value) {\n\t if (value instanceof PeriodValue) {\n\t return 'PERIOD';\n\t } else if (value.isDate) {\n\t return 'DATE';\n\t } else {\n\t return 'DATETIME';\n\t }\n\t }\n\n\t /**\n\t *\n\t * @param {boolean} isNegative Whether we are dealing with an EXDATE or RDATE\n\t * @param {string | null} valueType The type of values to get\n\t * @param {ICAL.Timezone=} timezoneId Filter by timezone\n\t * @private\n\t */\n\t *_getPropertiesForRecurrenceDate(isNegative, valueType, timezoneId = null) {\n\t const propertyName = this._getPropertyNameByIsNegative(isNegative);\n\t for (const property of this._masterItem.getPropertyIterator(propertyName)) {\n\t if (valueType === null) {\n\t yield property;\n\t } else if (uc(valueType) === 'PERIOD' && property.getFirstValue() instanceof PeriodValue) {\n\t yield property;\n\t } else if (uc(valueType) === 'DATE' && property.getFirstValue().isDate) {\n\t yield property;\n\t } else if (uc(valueType) === 'DATETIME' && !property.getFirstValue().isDate) {\n\t if (timezoneId === null || property.getFirstValue().timezoneId === timezoneId) {\n\t yield property;\n\t }\n\t }\n\t }\n\t }\n\n\t /**\n\t * Checks if the entire set of recurrence rules is finite\n\t *\n\t * @return {boolean}\n\t */\n\t isFinite() {\n\t return this.getRecurrenceRuleList().every(rule => rule.isFinite());\n\t }\n\n\t /**\n\t * @return {boolean}\n\t */\n\t isEmptyRecurrenceSet() {\n\t return this._getRecurExpansionObject().next() === undefined;\n\t }\n\n\t /**\n\t * Gets the occurrence at the exact given recurrenceId\n\t *\n\t * @param {DateTimeValue} recurrenceId RecurrenceId to get\n\t * @return {AbstractRecurringComponent|null}\n\t */\n\t getOccurrenceAtExactly(recurrenceId) {\n\t if (!this.masterItem.isRecurring()) {\n\t if (this.masterItem.getReferenceRecurrenceId().compare(recurrenceId) === 0) {\n\t return this.masterItem;\n\t }\n\t return null;\n\t }\n\t const iterator = this._getRecurExpansionObject();\n\t const icalRecurrenceId = recurrenceId.toICALJs();\n\t let next;\n\t while (next = iterator.next()) {\n\t if (next.compare(icalRecurrenceId) === 0) {\n\t // It's a match 🔥\n\t return this._getOccurrenceAtRecurrenceId(DateTimeValue.fromICALJs(next));\n\t }\n\t if (next.compare(icalRecurrenceId) === 1) {\n\t // We hit an occurrence in the future, return null\n\t return null;\n\t }\n\t }\n\t return null;\n\t }\n\n\t /**\n\t * Gets the closest occurrence to the given recurrenceId.\n\t * That's either the closest in the future, or in case the\n\t * recurrence-set ends before recurrenceId, the last one\n\t *\n\t * This function works solely on the basis of recurrence-ids.\n\t * It ignores the actual date of recurrence-exceptions.\n\t * Ideally we should fix it and provide a similar implementation\n\t * like getAllOccurrencesBetweenIterator, but for now it's the\n\t * accepted behavior.\n\t *\n\t * @param {DateTimeValue} recurrenceId RecurrenceId to get\n\t * @return {AbstractRecurringComponent}\n\t */\n\t getClosestOccurrence(recurrenceId) {\n\t if (!this.masterItem.isRecurring()) {\n\t return this.masterItem;\n\t }\n\t const iterator = this._getRecurExpansionObject();\n\t recurrenceId = recurrenceId.toICALJs();\n\t let previous = null;\n\t let next;\n\t while (next = iterator.next()) {\n\t if (next.compare(recurrenceId) === -1) {\n\t previous = next;\n\t } else {\n\t // This is the case when it's either equal or in the future\n\t const dateTimeValue = DateTimeValue.fromICALJs(next);\n\t return this._getOccurrenceAtRecurrenceId(dateTimeValue);\n\t }\n\t }\n\t const dateTimeValue = DateTimeValue.fromICALJs(previous);\n\t return this._getOccurrenceAtRecurrenceId(dateTimeValue);\n\t }\n\n\t /**\n\t * Counts all occurrences in the given time-range.\n\t * This function works solely on the basis of recurrence-ids.\n\t * Start and end are inclusive.\n\t *\n\t * @param {DateTimeValue} queriedTimeRangeStart Start of time-range\n\t * @param {DateTimeValue} queriedTimeRangeEnd End of time-range\n\t * @return {number} Count of occurrences in the given time-range\n\t */\n\t countAllOccurrencesBetween(queriedTimeRangeStart, queriedTimeRangeEnd) {\n\t if (!this.masterItem.isRecurring()) {\n\t if (typeof this.masterItem.isInTimeFrame === 'function' && !this.masterItem.isInTimeFrame(queriedTimeRangeStart, queriedTimeRangeEnd)) {\n\t return 0;\n\t }\n\t return 1;\n\t }\n\t const iterator = this._getRecurExpansionObject();\n\t const queriedICALJsTimeRangeStart = queriedTimeRangeStart.toICALJs();\n\t const queriedICALJsTimeRangeEnd = queriedTimeRangeEnd.toICALJs();\n\t let count = 0;\n\t let next;\n\t while (next = iterator.next()) {\n\t if (next.compare(queriedICALJsTimeRangeStart) === -1) {\n\t continue;\n\t }\n\t if (next.compare(queriedICALJsTimeRangeEnd) === 1) {\n\t break;\n\t }\n\t count += 1;\n\t }\n\t return count;\n\t }\n\n\t /**\n\t * Get all occurrences between start and end\n\t * Start and End are inclusive\n\t *\n\t * @param {DateTimeValue} queriedTimeRangeStart Start of time-range\n\t * @param {DateTimeValue} queriedTimeRangeEnd End of time-range\n\t */\n\t *getAllOccurrencesBetweenIterator(queriedTimeRangeStart, queriedTimeRangeEnd) {\n\t if (!this.masterItem.isRecurring()) {\n\t if (typeof this.masterItem.isInTimeFrame !== 'function') {\n\t yield this.masterItem;\n\t }\n\t if (this.masterItem.isInTimeFrame(queriedTimeRangeStart, queriedTimeRangeEnd)) {\n\t yield this.masterItem;\n\t }\n\t return;\n\t }\n\t const iterator = this._getRecurExpansionObject();\n\t const queriedICALJsTimeRangeStart = queriedTimeRangeStart.toICALJs();\n\t const queriedICALJsTimeRangeEnd = queriedTimeRangeEnd.toICALJs();\n\t const recurrenceIdKeys = Array.from(this._recurrenceExceptionItems.keys());\n\t const maximumRecurrenceId = Math.max.apply(Math, recurrenceIdKeys);\n\t let next;\n\t while (next = iterator.next()) {\n\t // We have to get the real occurrence to resolve RECURRENCE-IDs\n\t const dateTimeValue = DateTimeValue.fromICALJs(next);\n\t const occurrence = this._getOccurrenceAtRecurrenceId(dateTimeValue);\n\n\t // Check what type of recurrence object we are dealing with\n\t // Depending on that, the time to compare to changes\n\t // If we are dealing events, we have to compare to the end-date\n\t // If we are dealing with tasks, we will have to compare to the due-date\n\t // etc.\n\t // For now we are only implementing events, other components will come later\n\t let compareDate = null;\n\t switch (uc(occurrence.name)) {\n\t case 'VEVENT':\n\t case 'VTODO':\n\t compareDate = occurrence.endDate.toICALJs();\n\t break;\n\t case 'VJOURNAL':\n\t default:\n\t compareDate = next;\n\t break;\n\t }\n\n\t // If the date we are comparing to is before our time-range,\n\t // we don't want to yield this event\n\t if (compareDate.compare(queriedICALJsTimeRangeStart) === -1) {\n\t continue;\n\t }\n\n\t // If we have an object that is:\n\t // 1. either\n\t // 1.1 - no recurrence exception\n\t // or\n\t // 1.2 - a recurrence-exception that modifies the future\n\t // and\n\t // 2. starts after the queried time-range ends, then we stop expanding\n\t const startDate = occurrence.startDate.toICALJs();\n\t if ((!occurrence.isRecurrenceException() || occurrence.modifiesFuture()) && startDate.compare(queriedICALJsTimeRangeEnd) === 1) {\n\t // Just break if there are no recurrence-exceptions\n\t if (this._recurrenceExceptionItems.size === 0) {\n\t break;\n\t }\n\n\t // Keep iterating until our currently checked recurrenceId\n\t // is bigger than the maximum recurrence-id that we have.\n\t if (next.toUnixTime() > maximumRecurrenceId) {\n\t break;\n\t } else {\n\t continue;\n\t }\n\t }\n\t if (typeof occurrence.isInTimeFrame !== 'function') {\n\t yield occurrence;\n\t }\n\t if (occurrence.isInTimeFrame(queriedTimeRangeStart, queriedTimeRangeEnd)) {\n\t yield occurrence;\n\t }\n\t }\n\t }\n\n\t /**\n\t * Get all occurrences between start and end\n\t *\n\t * @param {DateTimeValue} start Start of time-range\n\t * @param {DateTimeValue} end End of time-range\n\t * @return {(*|null)[]}\n\t */\n\t getAllOccurrencesBetween(start, end) {\n\t return Array.from(this.getAllOccurrencesBetweenIterator(start, end));\n\t }\n\n\t /**\n\t * Update the UID of all components in the recurrence set\n\t *\n\t * @param {string} newUID The new UID of the calendar-document\n\t */\n\t updateUID(newUID) {\n\t this._masterItem.updatePropertyWithValue('UID', newUID);\n\t for (const recurrenceExceptionItem of this.getRecurrenceExceptionIterator()) {\n\t recurrenceExceptionItem.updatePropertyWithValue('UID', newUID);\n\t }\n\t }\n\n\t /**\n\t * Updates the recurrence-information accordingly,\n\t * whenever the start-date of the master-item changes\n\t *\n\t * @param {DateTimeValue} newStartDate The new start-date\n\t * @param {DateTimeValue} oldStartDate The old start-date\n\t */\n\t updateStartDateOfMasterItem(newStartDate, oldStartDate) {\n\t const difference = newStartDate.subtractDateWithTimezone(oldStartDate);\n\n\t // update EXDATE\n\t for (const exdate of this.getRecurrenceDateIterator(true)) {\n\t // If this EXDATE matches an RDATE, don't update, because we don't update RDATEs\n\t if (this.hasRecurrenceDate(false, exdate)) {\n\t continue;\n\t }\n\n\t // EXDATE are always either DATE or DATETIME,\n\t // no need to check for PERIOD\n\t exdate.addDuration(difference);\n\t }\n\t for (const recurrenceException of this.getRecurrenceExceptionIterator()) {\n\t // We don't edit RDATES, so don't update recurrence-ids if they\n\t // are based on an RDATE\n\t if (this.hasRecurrenceDate(false, recurrenceException.recurrenceId)) {\n\t continue;\n\t }\n\t this.removeRecurrenceException(recurrenceException);\n\t recurrenceException.recurrenceId.addDuration(difference);\n\t this.relateRecurrenceException(recurrenceException);\n\t }\n\n\t // update UNTIL of recurrence-rules\n\t for (const rrule of this.getRecurrenceRuleIterator()) {\n\t if (rrule.until) {\n\t rrule.until.addDuration(difference);\n\t }\n\t }\n\t }\n\n\t /**\n\t * Gets an object for the given recurrenceId\n\t * It does not verify that the given recurrenceId\n\t * is actually a valid recurrence of this calendar-document\n\t *\n\t * @param {DateTimeValue} recurrenceId Recurrence-Id to get\n\t * @return {AbstractRecurringComponent}\n\t * @private\n\t */\n\t _getOccurrenceAtRecurrenceId(recurrenceId) {\n\t if (this.hasRecurrenceExceptionForId(recurrenceId)) {\n\t const recurrenceException = this.getRecurrenceException(recurrenceId);\n\t if (!recurrenceException.canCreateRecurrenceExceptions()) {\n\t return recurrenceException;\n\t }\n\t return recurrenceException.forkItem(recurrenceId);\n\t } else if (this.hasRangeRecurrenceExceptionForId(recurrenceId)) {\n\t const rangeRecurrenceException = this.getRangeRecurrenceExceptionForId(recurrenceId);\n\t const difference = this.getRangeRecurrenceExceptionDiff(recurrenceId);\n\t return rangeRecurrenceException.forkItem(recurrenceId, difference);\n\t } else if (recurrenceId.compare(this._masterItem.startDate) === 0) {\n\t if (!this._masterItem.canCreateRecurrenceExceptions()) {\n\t return this._masterItem;\n\t }\n\t return this._masterItem.forkItem(recurrenceId);\n\t } else {\n\t return this._masterItem.forkItem(recurrenceId);\n\t }\n\t }\n\n\t /**\n\t * Resets the internal recur-expansion object.\n\t * This is necessary after each modification of the\n\t * recurrence-information\n\t */\n\t resetCache() {\n\t // TODO - implement me\n\t }\n\n\t /**\n\t * Gets a new ICAL.RecurExpansion object\n\t *\n\t * Inspired by how ICAL.JS RecurExpansion\n\t * serialises and unserialises its state\n\t *\n\t * @return {ICAL.RecurExpansion}\n\t * @private\n\t */\n\t _getRecurExpansionObject() {\n\t if (this._masterItem.startDate === null) {\n\t throw new RecurringWithoutDtStartError();\n\t }\n\t const dtstart = this._masterItem.startDate.toICALJs();\n\t let last = dtstart.clone();\n\t const ruleIterators = [];\n\t let ruleDateInc;\n\t const ruleDates = [];\n\t let ruleDate = null;\n\t const exDates = [];\n\t const complete = false;\n\t for (const ruleValue of this.getRecurrenceRuleIterator()) {\n\t ruleIterators.push(ruleValue.toICALJs().iterator(dtstart));\n\t ruleIterators[ruleIterators.length - 1].next();\n\t }\n\t for (let rDateValue of this.getRecurrenceDateIterator()) {\n\t if (rDateValue instanceof PeriodValue) {\n\t rDateValue = rDateValue.start;\n\t }\n\t rDateValue = rDateValue.toICALJs();\n\t const index = ICAL.helpers.binsearchInsert(ruleDates, rDateValue, (a, b) => a.compare(b));\n\t ruleDates.splice(index, 0, rDateValue);\n\t }\n\n\t // Is the first RDATE prior to our current DTSTART?\n\t if (ruleDates.length > 0 && ruleDates[0].compare(dtstart) === -1) {\n\t ruleDateInc = 0;\n\t last = ruleDates[0].clone();\n\t } else {\n\t ruleDateInc = ICAL.helpers.binsearchInsert(ruleDates, dtstart, (a, b) => a.compare(b));\n\t ruleDate = exDates[ruleDateInc];\n\t }\n\t for (let exDateValue of this.getRecurrenceDateIterator(true)) {\n\t exDateValue = exDateValue.toICALJs();\n\t const index = ICAL.helpers.binsearchInsert(exDates, exDateValue, (a, b) => a.compare(b));\n\t exDates.splice(index, 0, exDateValue);\n\t }\n\t const exDateInc = ICAL.helpers.binsearchInsert(exDates, dtstart, (a, b) => a.compare(b));\n\t const exDate = exDates[exDateInc];\n\t return new ICAL.RecurExpansion({\n\t dtstart,\n\t last,\n\t ruleIterators,\n\t ruleDateInc,\n\t exDateInc,\n\t ruleDates,\n\t ruleDate,\n\t exDates,\n\t exDate,\n\t complete\n\t });\n\t }\n\n\t /**\n\t * @private\n\t */\n\t _modify() {\n\t if (this._masterItem.isLocked()) {\n\t throw new ModificationNotAllowedError();\n\t }\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\n\t/**\n\t * @class Timezone\n\t */\n\tclass Timezone {\n\t /**\n\t * Constructor\n\t *\n\t * @param {string | ICAL.Timezone | ICAL.Component} timezoneId Id of the timezone\n\t * @param {string?} ics The iCalendar timezone definition\n\t */\n\t constructor(timezoneId, ics) {\n\t /**\n\t * Id of the timezone, used before initialising\n\t *\n\t * @type {string}\n\t * @private\n\t */\n\t this._timezoneId = null;\n\n\t /**\n\t * ICS representation of the timezone, used before initialising\n\t *\n\t * @type {string}\n\t * @private\n\t */\n\t this._ics = null;\n\n\t /**\n\t * @type {ICAL.Timezone|null}\n\t */\n\t this._innerValue = null;\n\n\t /**\n\t *\n\t * @type {boolean}\n\t * @private\n\t */\n\t this._initialized = false;\n\n\t // If the first parameter is already\n\t // an instance of ICAL.Timezone,\n\t // skip lazy loading\n\t if (timezoneId instanceof ICAL.Timezone) {\n\t this._innerValue = timezoneId;\n\t this._initialized = true;\n\t } else if (timezoneId instanceof ICAL.Component) {\n\t this._innerValue = new ICAL.Timezone(timezoneId);\n\t this._initialized = true;\n\t } else {\n\t this._timezoneId = timezoneId;\n\t this._ics = ics;\n\t }\n\t }\n\n\t /**\n\t * Gets the timezone id\n\t *\n\t * @return {string}\n\t */\n\t get timezoneId() {\n\t if (this._initialized) {\n\t return this._innerValue.tzid;\n\t }\n\t return this._timezoneId;\n\t }\n\n\t /**\n\t * Gets the UTC Offset for a given date in this timezone\n\t *\n\t * @param {number} year Year of the date\n\t * @param {number} month Month of the date (1-based)\n\t * @param {number} day Day of the date\n\t * @param {number} hour Hour of the date\n\t * @param {number} minute Minute of the date\n\t * @param {number} second Second of the date\n\t * @return {number}\n\t */\n\t offsetForArray(year, month, day, hour, minute, second) {\n\t this._initialize();\n\t const time = new ICAL.Time({\n\t year,\n\t month,\n\t day,\n\t hour,\n\t minute,\n\t second,\n\t isDate: false\n\t });\n\t return this._innerValue.utcOffset(time);\n\t }\n\n\t /**\n\t * Converts a timestamp to an array of year, month, day, hour, minute, second.\n\t *\n\t * @param {number} ms Timestamp in milliseconds\n\t * @return {number[]}\n\t */\n\t timestampToArray(ms) {\n\t this._initialize();\n\n\t // just create a dummy object because fromUnixTime is not exposed on ICAL.Time\n\t const time = ICAL.Time.fromData({\n\t year: 1970,\n\t month: 1,\n\t day: 1,\n\t hour: 0,\n\t minute: 0,\n\t second: 0\n\t });\n\t time.fromUnixTime(Math.floor(ms / 1000));\n\t const local = time.convertToZone(this._innerValue);\n\t return [local.year, local.month,\n\t // THIS is 1-based !\n\t local.day, local.hour, local.minute, local.second];\n\t }\n\n\t /**\n\t * Returns\n\t *\n\t * @return {ICAL.Timezone}\n\t */\n\t toICALTimezone() {\n\t this._initialize();\n\t return this._innerValue;\n\t }\n\n\t /**\n\t * Returns the corresponding ICAL.\n\t *\n\t * @return {ICAL.Component}\n\t */\n\t toICALJs() {\n\t this._initialize();\n\t return this._innerValue.component;\n\t }\n\n\t /**\n\t * Initialises the inner ICAL.Timezone component\n\t *\n\t * @private\n\t */\n\t _initialize() {\n\t if (!this._initialized) {\n\t const jCal = ICAL.parse(this._ics);\n\t const icalComp = new ICAL.Component(jCal);\n\t this._innerValue = new ICAL.Timezone(icalComp);\n\t this._initialized = true;\n\t }\n\t }\n\t}\n\tTimezone.utc = new Timezone(ICAL.Timezone.utcTimezone);\n\tTimezone.floating = new Timezone(ICAL.Timezone.localTimezone);\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class AlarmComponent\n\t * @classdesc\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.6.6\n\t */\n\tclass AlarmComponent extends AbstractComponent {\n\t /**\n\t * Adds a new attendee based on their name and email-address\n\t *\n\t * @param {string} name - Name of the attendee\n\t * @param {string} email - E-Mail address of the attendee\n\t * @return {boolean}\n\t */\n\t addAttendeeFromNameAndEMail(name, email) {\n\t const attendeeProperty = AttendeeProperty.fromNameAndEMail(name, email);\n\t return this.addProperty(attendeeProperty);\n\t }\n\n\t /**\n\t * Gets the trigger property\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.6.3\n\t *\n\t * @return {TriggerProperty}\n\t */\n\t get trigger() {\n\t return this.getFirstProperty('TRIGGER');\n\t }\n\n\t /**\n\t * Sets an absolute alarm\n\t *\n\t * @param {DateTimeValue} alarmTime - Absolute time for the trigger\n\t */\n\t setTriggerFromAbsolute(alarmTime) {\n\t const triggerProperty = TriggerProperty.fromAbsolute(alarmTime);\n\t this.deleteAllProperties('TRIGGER');\n\t this.addProperty(triggerProperty);\n\t }\n\n\t /**\n\t * Sets a relative trigger\n\t *\n\t * @param {DurationValue} alarmOffset - Relative time of the trigger, either related to start or end\n\t * @param {boolean=} relatedToStart - Related to Start or end?\n\t */\n\t setTriggerFromRelative(alarmOffset, relatedToStart = true) {\n\t const triggerProperty = TriggerProperty.fromRelativeAndRelated(alarmOffset, relatedToStart);\n\t this.deleteAllProperties('TRIGGER');\n\t this.addProperty(triggerProperty);\n\t }\n\t}\n\n\t/**\n\t * Action to be taken when this Alarm is due\n\t * Possible values:\n\t * - AUDIO\n\t * - DISPLAY\n\t * - EMAIL\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.6.1\n\t *\n\t * @name AlarmComponent#action\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AlarmComponent.prototype, 'action');\n\n\t/**\n\t * Description for this alarm\n\t * Can only be used in combination with action DISPLAY and EMAIL\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5\n\t *\n\t * @name AlarmComponent#description\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AlarmComponent.prototype, 'description');\n\n\t/**\n\t * Summary for this alarm\n\t * Can only be used in combination with action EMAIL\n\t * Will be used as the EMAIL's subject\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.12\n\t *\n\t * @name AlarmComponent#summary\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AlarmComponent.prototype, 'summary');\n\n\t/**\n\t * The duration specifies the delay period between repeated alarms.\n\t * This property must be specified along with the repeat property\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.2.5\n\t *\n\t * @name AlarmComponent#duration\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AlarmComponent.prototype, 'duration');\n\n\t/**\n\t * The number of times an alarm should be repeated.\n\t * This property must be specified along with the duration property\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.6.2\n\t *\n\t * @name AlarmComponent#repeat\n\t * @type {number}\n\t */\n\tadvertiseSingleOccurrenceProperty(AlarmComponent.prototype, 'repeat');\n\n\t/**\n\t * This attachment points to a sound file, can only be used in combination\n\t * with ACTION AUDIO\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.1\n\t *\n\t * @name AlarmComponent#attachment\n\t * @type {AttachmentProperty}\n\t */\n\tadvertiseSingleOccurrenceProperty(AlarmComponent.prototype, {\n\t name: 'attachment',\n\t iCalendarName: 'ATTACH'\n\t});\n\n\t/**\n\t * Get an iterator over all attendees\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1\n\t *\n\t * @name AlarmComponent#getAttendeeIterator\n\t * @function\n\t * @return {IterableIterator<AttendeeProperty>}\n\t */\n\n\t/**\n\t * Get a list of all attendees\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1\n\t *\n\t * @name AlarmComponent#getAttendeeList\n\t * @function\n\t * @return {AttendeeProperty[]}\n\t */\n\n\t/**\n\t * Adds a new attendee to this alarm-component\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1\n\t *\n\t * @name AlarmComponent#addAttendee\n\t * @function\n\t * @param {AttendeeProperty} attendee - The attendee object to add\n\t */\n\n\t/**\n\t * Removes an attendee from this alarm-component\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1\n\t *\n\t * @name AlarmComponent#removeAttendee\n\t * @function\n\t * @param {AttendeeProperty} attendee - The attendee object to remove\n\t */\n\n\t/**\n\t * Removes all attendees from this alarm-component\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1\n\t *\n\t * @name AlarmComponent#clearAllAttendees\n\t * @function\n\t */\n\tadvertiseMultipleOccurrenceProperty(AlarmComponent.prototype, 'attendee');\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * Gets the constructor for a component name\n\t * This will only return a constructor for components,\n\t * that can be nested inside other ones\n\t *\n\t * @param {string} compName - Component name to get default constructor for\n\t * @return {AlarmComponent|AbstractComponent}\n\t */\n\tfunction getConstructorForComponentName$1(compName) {\n\t switch (uc(compName)) {\n\t case 'VALARM':\n\t return AlarmComponent;\n\t default:\n\t return AbstractComponent;\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class AbstractRecurringComponent\n\t * @classdesc AbstractRecurringComponent is the basis for\n\t * EventComponent, JournalComponent and TodoComponent.\n\t *\n\t * It contains all the logic for recurrence-expansion and\n\t * recurrence-management plus all management for all\n\t * properties and all subcomponents that the three\n\t * components mentioned before have in common\n\t */\n\tclass AbstractRecurringComponent extends AbstractComponent {\n\t /**\n\t * @inheritDoc\n\t */\n\t constructor(...args) {\n\t super(...args);\n\n\t /**\n\t * In case this object is virtual, primary item refers to the master object\n\t * that this object was forked from.\n\t *\n\t * Otherwise primary item is null\n\t *\n\t * @type {AbstractRecurringComponent}\n\t * @private\n\t */\n\t this._primaryItem = null;\n\n\t /**\n\t * Indicator whether this is a direct fork of a primary item, representing\n\t * the very same recurrence id\n\t *\n\t * @type {boolean}\n\t * @private\n\t */\n\t this._isExactForkOfPrimary = false;\n\n\t /**\n\t * The original recurrence-id of this occurrence.\n\t * Mostly needed for range exceptions with a range\n\t *\n\t * @type {DateTimeValue|null}\n\t * @private\n\t */\n\t this._originalRecurrenceId = null;\n\n\t /**\n\t * Instance of the recurrence manager.\n\t * This object is shared among all instances\n\t * of a recurrence-set\n\t *\n\t * @type {RecurrenceManager}\n\t * @private\n\t */\n\t this._recurrenceManager = null;\n\n\t /**\n\t * Indicator whether this component was modified\n\t * In case it was, the last-modified property\n\t * needs to be updated before saving the event\n\t *\n\t * @type {boolean}\n\t * @private\n\t */\n\t this._dirty = false;\n\n\t /**\n\t * Indicator whether there have been significant changes\n\t * In case the changes are considered significant,\n\t * the sequence needs to be incremented\n\t *\n\t * @type {boolean}\n\t * @private\n\t */\n\t this._significantChange = false;\n\n\t /**\n\t * Id of this AbstractRecurringComponent\n\t *\n\t * @type {string | null}\n\t * @private\n\t */\n\t this._cachedId = null;\n\t }\n\n\t /**\n\t * Gets the primary-item of this recurring item\n\t *\n\t * @return {AbstractRecurringComponent}\n\t */\n\t get primaryItem() {\n\t return this._primaryItem;\n\t }\n\n\t /**\n\t * Sets the primary-item of this recurring item\n\t *\n\t * @param {AbstractRecurringComponent} primaryItem The new primary-item\n\t */\n\t set primaryItem(primaryItem) {\n\t this._modify();\n\t this._primaryItem = primaryItem;\n\t }\n\n\t /**\n\t * Gets whether or not this is a fork of the primary item\n\t * for the same recurrence-id\n\t *\n\t * @return {boolean}\n\t */\n\t get isExactForkOfPrimary() {\n\t return this._isExactForkOfPrimary;\n\t }\n\n\t /**\n\t * Sets the isExactForkOfPrimary indicator, see getter for description\n\t *\n\t * @param {boolean} isExactForkOfPrimary Whether or not this is an exact fork\n\t */\n\t set isExactForkOfPrimary(isExactForkOfPrimary) {\n\t this._isExactForkOfPrimary = isExactForkOfPrimary;\n\t }\n\n\t /**\n\t * Gets the original recurrence-id\n\t *\n\t * @return {DateTimeValue}\n\t */\n\t get originalRecurrenceId() {\n\t return this._originalRecurrenceId;\n\t }\n\n\t /**\n\t * Sets the original recurrence-id\n\t *\n\t * @param {DateTimeValue} originalRecurrenceId The new original recurrence-id\n\t */\n\t set originalRecurrenceId(originalRecurrenceId) {\n\t this._originalRecurrenceId = originalRecurrenceId;\n\t }\n\n\t /**\n\t * Gets the recurrence-manager of this recurrence-set\n\t *\n\t * @return {RecurrenceManager}\n\t */\n\t get recurrenceManager() {\n\t return this._recurrenceManager;\n\t }\n\n\t /**\n\t * Sets the recurrence-manager of this recurrence-set\n\t *\n\t * @param {RecurrenceManager} recurrenceManager The new recurrence-manager\n\t */\n\t set recurrenceManager(recurrenceManager) {\n\t this._recurrenceManager = recurrenceManager;\n\t }\n\n\t /**\n\t * Gets the master-item of this recurring item\n\t *\n\t * @return {AbstractRecurringComponent}\n\t */\n\t get masterItem() {\n\t return this.recurrenceManager.masterItem;\n\t }\n\n\t /**\n\t * Returns whether this item is the master item\n\t *\n\t * @return {boolean}\n\t */\n\t isMasterItem() {\n\t return this.masterItem === this;\n\t }\n\n\t /**\n\t * Gets a unique ID for this occurrence of the event\n\t *\n\t * Please note that if the same event occurs in multiple calendars,\n\t * this id will not be unique. Software using this library will have to\n\t * manually mix in the calendar id into this id\n\t *\n\t * @return {string}\n\t */\n\t get id() {\n\t if (this._cachedId) {\n\t return this._cachedId;\n\t }\n\t if (this.startDate === null) {\n\t this._cachedId = encodeURIComponent(this.uid);\n\t return this._cachedId;\n\t }\n\t this._cachedId = [encodeURIComponent(this.uid), encodeURIComponent(this.getReferenceRecurrenceId().unixTime.toString())].join('###');\n\t return this._cachedId;\n\t }\n\n\t /**\n\t * Gets the UID property\n\t *\n\t * @return {string | null}\n\t */\n\t get uid() {\n\t return this.getFirstPropertyFirstValue('UID');\n\t }\n\n\t /**\n\t * Sets the UID property and the UID property of all related exceptions\n\t *\n\t * @param {string} uid The new UID\n\t */\n\t set uid(uid) {\n\t this._recurrenceManager.updateUID(uid);\n\t }\n\n\t /**\n\t * Gets the start date of the event\n\t *\n\t * @return {DateTimeValue}\n\t */\n\t get startDate() {\n\t return this.getFirstPropertyFirstValue('dtstart');\n\t }\n\n\t /**\n\t * Sets the start date of the event\n\t *\n\t * @param {DateTimeValue} start The new start-date to set\n\t */\n\t set startDate(start) {\n\t const oldStartDate = this.startDate;\n\t this.updatePropertyWithValue('dtstart', start);\n\t if (this.isMasterItem()) {\n\t this._recurrenceManager.updateStartDateOfMasterItem(start, oldStartDate);\n\t }\n\t }\n\n\t /**\n\t * Checks whether this item is part of a recurring set\n\t *\n\t * @return {boolean}\n\t */\n\t isPartOfRecurrenceSet() {\n\t return this.masterItem.isRecurring();\n\t }\n\n\t /**\n\t * Checks whether this component is recurring\n\t *\n\t * @return {boolean}\n\t */\n\t isRecurring() {\n\t return this.hasProperty('RRULE') || this.hasProperty('RDATE');\n\t }\n\n\t /**\n\t * Checks whether this component is a recurrence-exception\n\t *\n\t * @return {boolean}\n\t */\n\t isRecurrenceException() {\n\t return this.hasProperty('RECURRENCE-ID');\n\t }\n\n\t /**\n\t * Checks wether this component is a recurrence-exception\n\t * and whether it's modifying the future\n\t *\n\t * @return {boolean}\n\t */\n\t modifiesFuture() {\n\t if (!this.isRecurrenceException()) {\n\t return false;\n\t }\n\t const property = this.getFirstProperty('RECURRENCE-ID');\n\t return property.getParameterFirstValue('RANGE') === 'THISANDFUTURE';\n\t }\n\n\t /**\n\t * Creates an occurrence at the given time\n\t *\n\t * This is an internal function for calendar-js, used by the recurrence-manager\n\t * Do not call from outside\n\t *\n\t * @param {DateTimeValue} recurrenceId The recurrence-Id of the forked item\n\t * @param {DurationValue=} startDiff to be used when The start-diff (used for RECURRENCE-ID;RANGE=THISANDFUTURE)\n\t * @return {AbstractRecurringComponent}\n\t */\n\t forkItem(recurrenceId, startDiff = null) {\n\t const occurrence = this.clone();\n\t occurrence.recurrenceManager = this.recurrenceManager;\n\t occurrence.primaryItem = this;\n\n\t // Exact match for master item or recurrence-exception\n\t if (occurrence.getReferenceRecurrenceId().compare(recurrenceId) === 0) {\n\t occurrence.isExactForkOfPrimary = true;\n\t }\n\t if (!occurrence.hasProperty('DTSTART')) {\n\t throw new TypeError('Can\\'t fork item without a DTSTART');\n\t }\n\n\t // Adjust RRULE COUNT if present\n\t const rrule = occurrence.getFirstPropertyFirstValue('RRULE');\n\t if (rrule?.count) {\n\t let index = occurrence.recurrenceManager.countAllOccurrencesBetween(occurrence.getReferenceRecurrenceId(), recurrenceId);\n\t index -= 1; // Don't count the forked occurrence\n\t rrule.count -= index;\n\t if (rrule.count < 1) {\n\t rrule.count = 1;\n\t }\n\t }\n\t if (occurrence.getFirstPropertyFirstValue('DTSTART').timezoneId !== recurrenceId.timezoneId) {\n\t const originalTimezone = occurrence.getFirstPropertyFirstValue('DTSTART').getICALTimezone();\n\t recurrenceId = recurrenceId.getInICALTimezone(originalTimezone);\n\t }\n\t occurrence.originalRecurrenceId = recurrenceId.clone();\n\t const dtStartValue = occurrence.getFirstPropertyFirstValue('DTSTART');\n\t let period = null;\n\t if (this._recurrenceManager.hasRecurrenceDate(false, recurrenceId)) {\n\t const recurrenceDate = this._recurrenceManager.getRecurrenceDate(false, recurrenceId);\n\t if (recurrenceDate instanceof PeriodValue) {\n\t period = recurrenceDate;\n\t }\n\t }\n\t let duration;\n\t if (occurrence.hasProperty('DTEND')) {\n\t const dtEndValue = occurrence.getFirstPropertyFirstValue('DTEND');\n\t duration = dtEndValue.subtractDateWithTimezone(dtStartValue);\n\t } else if (occurrence.hasProperty('DUE')) {\n\t const dueValue = occurrence.getFirstPropertyFirstValue('DUE');\n\t duration = dueValue.subtractDateWithTimezone(dtStartValue);\n\t }\n\t if (!(occurrence.isRecurrenceException() && occurrence.isExactForkOfPrimary)) {\n\t occurrence.updatePropertyWithValue('DTSTART', recurrenceId.clone());\n\t if (startDiff) {\n\t occurrence.startDate.addDuration(startDiff);\n\t }\n\t if (occurrence.hasProperty('DTEND')) {\n\t const dtEnd = occurrence.startDate.clone();\n\t dtEnd.addDuration(duration);\n\t occurrence.updatePropertyWithValue('DTEND', dtEnd);\n\t } else if (occurrence.hasProperty('DUE')) {\n\t const due = occurrence.startDate.clone();\n\t due.addDuration(duration);\n\t occurrence.updatePropertyWithValue('DUE', due);\n\t }\n\t if (period) {\n\t occurrence.deleteAllProperties('DTEND');\n\t occurrence.deleteAllProperties('DURATION');\n\t occurrence.updatePropertyWithValue('DTEND', period.end.clone());\n\t }\n\t }\n\t occurrence.resetDirty();\n\t return occurrence;\n\t }\n\n\t /**\n\t * Checks whether it's possible to create a recurrence exception for this event\n\t * It is possible\n\t *\n\t * @return {boolean}\n\t */\n\t canCreateRecurrenceExceptions() {\n\t let primaryIsRecurring = false;\n\t if (this.primaryItem && this.primaryItem.isRecurring()) {\n\t primaryIsRecurring = true;\n\t }\n\t return this.isRecurring() || this.modifiesFuture() || !this.isRecurring() && primaryIsRecurring;\n\t }\n\n\t /**\n\t * creates a recurrence exception based on this event\n\t * If the parameter thisAndAllFuture is set to true,\n\t * it will apply changes to this and all future occurrences\n\t *\n\t * @param {boolean} thisAndAllFuture Whether to create an exception for this and all future\n\t * @return {AbstractRecurringComponent[]} the AbstractRecurringComponent of the future events.\n\t * In case you set `thisAndAllFuture` to true, this will be an\n\t * AbstractRecurringComponent inside a entirely new calendar component\n\t */\n\t createRecurrenceException(thisAndAllFuture = false) {\n\t if (!this.canCreateRecurrenceExceptions()) {\n\t throw new Error('Can\\'t create recurrence-exceptions for non-recurring items');\n\t }\n\t const previousPrimaryItem = this.primaryItem;\n\n\t /**\n\t * The overall support for RANGE=THISANDFUTURE is really bad.\n\t * Instead, we have to create a new event/journal/task and\n\t * set an until date on the old one.\n\t *\n\t * Also see:\n\t * - https://github.com/nextcloud/calendar/issues/7#issuecomment-292574813\n\t * - https://github.com/nextcloud/calendar/issues/7#issuecomment-299169143\n\t *\n\t * Right now, this replaces all future occurrence modifications,\n\t * including recurrence-exceptions, RDATES and EXDATES.\n\t * This is also how other CUAs handle it, but i would be happy\n\t * to put that up for discussion.\n\t *\n\t * Keeping future RDates + their recurrence-exceptions would be rather easy.\n\t * Updating recurrence-exceptions, that are based off normal recurrence rules,\n\t * could be very expensive.\n\t */\n\t if (thisAndAllFuture) {\n\t if (this.isExactForkOfPrimary) {\n\t // master item\n\t if (this.primaryItem.isMasterItem()) {\n\t this._overridePrimaryItem();\n\t return [this, this];\n\t }\n\t }\n\t this.removeThisOccurrence(true);\n\t this.recurrenceManager = new RecurrenceManager(this);\n\t this._originalRecurrenceId = null;\n\t this.primaryItem = this;\n\t this.updatePropertyWithValue('UID', uuid.v4());\n\t this._cachedId = null;\n\t this.addRelation('SIBLING', previousPrimaryItem.uid);\n\t previousPrimaryItem.addRelation('SIBLING', this.uid);\n\n\t // delete to make sure all parameters are gone\n\t this.deleteAllProperties('RECURRENCE-ID');\n\t this.deleteAllProperties('RDATE');\n\t this.deleteAllProperties('EXDATE');\n\t this.updatePropertyWithValue('CREATED', DateTimeValue.fromJSDate(dateFactory(), true));\n\t this.updatePropertyWithValue('DTSTAMP', DateTimeValue.fromJSDate(dateFactory(), true));\n\t this.updatePropertyWithValue('LAST-MODIFIED', DateTimeValue.fromJSDate(dateFactory(), true));\n\t this.updatePropertyWithValue('SEQUENCE', 0);\n\t this._significantChange = false;\n\t this._dirty = false;\n\t this.root = this.root.constructor.fromEmpty();\n\t this.root.addComponent(this);\n\t this.parent = this.root;\n\n\t // this is a completely new event, we should set the RSVP of all attendees to true,\n\t // so that they receive an invitation to the new event, not only the cancellation of the old one\n\t for (const attendee of this.getAttendeeIterator()) {\n\t attendee.rsvp = true;\n\t }\n\t } else {\n\t // delete to make sure all parameters are gone\n\t this.deleteAllProperties('RECURRENCE-ID');\n\t this.recurrenceId = this.getReferenceRecurrenceId().clone();\n\t this.root.addComponent(this);\n\t this.recurrenceManager.relateRecurrenceException(this);\n\t this.primaryItem = this;\n\t this.deleteAllProperties('RDATE');\n\t this.deleteAllProperties('RRULE');\n\t this.deleteAllProperties('EXDATE');\n\t this.updatePropertyWithValue('CREATED', DateTimeValue.fromJSDate(dateFactory(), true));\n\t this.updatePropertyWithValue('DTSTAMP', DateTimeValue.fromJSDate(dateFactory(), true));\n\t this.updatePropertyWithValue('LAST-MODIFIED', DateTimeValue.fromJSDate(dateFactory(), true));\n\t this.updatePropertyWithValue('SEQUENCE', 0);\n\t if (this.recurrenceManager.hasRecurrenceDate(false, this.getReferenceRecurrenceId())) {\n\t const recurDate = this.recurrenceManager.getRecurrenceDate(false, this.getReferenceRecurrenceId());\n\t if (recurDate instanceof PeriodValue) {\n\t const valueDateTimeRecurDate = recurDate.start;\n\t this.recurrenceManager.removeRecurrenceDate(false, recurDate);\n\t this.recurrenceManager.addRecurrenceDate(false, valueDateTimeRecurDate);\n\t }\n\t }\n\t this.originalRecurrenceId = null;\n\t }\n\t return [previousPrimaryItem, this];\n\t }\n\n\t /**\n\t * Deletes this occurrence from the series of recurring events\n\t * If the parameter thisAndAllFuture is set to true,\n\t * it will remove this and all future occurrences\n\t *\n\t * @param {boolean} thisAndAllFuture Whether to create an exception for this and all future\n\t * @throws EmptyRecurrenceSetError Thrown, when deleting an occurrence results in no more events\n\t * @return {boolean} true if this deleted the last occurrence in set, false if there are occurrences left\n\t */\n\t removeThisOccurrence(thisAndAllFuture = false) {\n\t if (!this.isPartOfRecurrenceSet()) {\n\t // When deleting an object, that's not part of a recurring set,\n\t // the calendar-document would be empty.\n\t return true;\n\t }\n\t if (thisAndAllFuture) {\n\t // To get the UNTIL date, just deduct one second.\n\t // That's also how macOS does it, so this should be fairly\n\t // well supported among all clients\n\t const recurrenceId = this.getReferenceRecurrenceId().clone();\n\t const until = recurrenceId.getInTimezone(Timezone.utc);\n\t until.addDuration(DurationValue.fromSeconds(-1));\n\t for (const recurValue of this.recurrenceManager.getRecurrenceRuleIterator()) {\n\t recurValue.until = until.clone();\n\t }\n\t for (const recurDate of this.recurrenceManager.getRecurrenceDateIterator()) {\n\t let valueToCheck = recurDate;\n\t if (recurDate instanceof PeriodValue) {\n\t valueToCheck = valueToCheck.start;\n\t }\n\t if (recurrenceId.compare(valueToCheck) <= 0) {\n\t this.recurrenceManager.removeRecurrenceDate(false, recurDate);\n\t }\n\t }\n\t for (const exceptionDate of this.recurrenceManager.getRecurrenceDateIterator(true)) {\n\t if (recurrenceId.compare(exceptionDate) <= 0) {\n\t this.recurrenceManager.removeRecurrenceDate(true, exceptionDate);\n\t }\n\t }\n\t for (const exception of this.recurrenceManager.getRecurrenceExceptionList()) {\n\t if (recurrenceId.compare(exception.recurrenceId) <= 0) {\n\t this.root.deleteComponent(exception);\n\t this.recurrenceManager.removeRecurrenceException(exception);\n\t }\n\t }\n\t } else {\n\t // Make sure we don't leave orphaned recurrence-exceptions\n\t if (this.isRecurrenceException() && !this.modifiesFuture()) {\n\t this.root.deleteComponent(this);\n\t this.recurrenceManager.removeRecurrenceException(this);\n\t }\n\n\t // If this is based on a recurrence-date, simply delete it\n\t // otherwise add an exception-date\n\t if (this.recurrenceManager.hasRecurrenceDate(false, this.getReferenceRecurrenceId())) {\n\t const recurDate = this.recurrenceManager.getRecurrenceDate(false, this.getReferenceRecurrenceId());\n\t this.recurrenceManager.removeRecurrenceDate(false, recurDate);\n\t } else {\n\t this.recurrenceManager.addRecurrenceDate(true, this.getReferenceRecurrenceId().clone());\n\t }\n\t }\n\t return this.recurrenceManager.isEmptyRecurrenceSet();\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t clone() {\n\t const comp = super.clone();\n\t comp.resetDirty();\n\t return comp;\n\t }\n\n\t /**\n\t * Adds a new attendee\n\t *\n\t * @param {AttendeeProperty} attendee The attendee property to add\n\t * @private\n\t * @return {boolean}\n\t */\n\t _addAttendee(attendee) {\n\t // Check for different Attendee objects with the same uri\n\t for (const a of this.getAttendeeIterator()) {\n\t if (a.email === attendee.email) {\n\t return false;\n\t }\n\t }\n\t this.addProperty(attendee);\n\t return true;\n\t }\n\n\t /**\n\t * Adds a new attendee based on their name and email-address\n\t *\n\t * @param {string} name The name of the attendee to add\n\t * @param {string} email The email-address of the attendee to add\n\t * @return {boolean}\n\t */\n\t addAttendeeFromNameAndEMail(name, email) {\n\t const attendeeProperty = AttendeeProperty.fromNameAndEMail(name, email);\n\t return this._addAttendee(attendeeProperty);\n\t }\n\n\t /**\n\t * Adds a new attendee based on their properties\n\t *\n\t * @param {string} name The name of the attendee to add\n\t * @param {string} email The email-address of the attendee to add\n\t * @param {string} role The role of the attendee to add\n\t * @param {string} userType The type of attendee to add\n\t * @param {boolean} rsvp Whether or not to request a response from the attendee\n\t * @return {boolean}\n\t */\n\t addAttendeeFromNameEMailRoleUserTypeAndRSVP(name, email, role, userType, rsvp) {\n\t const attendeeProperty = AttendeeProperty.fromNameEMailRoleUserTypeAndRSVP(name, email, role, userType, rsvp, false);\n\t return this._addAttendee(attendeeProperty);\n\t }\n\n\t /**\n\t * Sets the organiser property from common-name and email address\n\t *\n\t * @param {string} name The name of the organizer\n\t * @param {string} email The email-address of the organizer\n\t */\n\t setOrganizerFromNameAndEMail(name, email) {\n\t this.deleteAllProperties('ORGANIZER');\n\t this.addProperty(AttendeeProperty.fromNameAndEMail(name, email, true));\n\t }\n\n\t /**\n\t * Adds a new attachment from raw data\n\t *\n\t * @param {string} data The data of the attachment\n\t * @param {string} formatType The mime-type of the attachment\n\t */\n\t addAttachmentFromData(data, formatType = null) {\n\t this.addProperty(AttachmentProperty.fromData(data, formatType));\n\t }\n\n\t /**\n\t * Adds a new attachment from a link\n\t *\n\t * @param {string} uri The URI of the attachment\n\t * @param {string} formatType The mime-type of the attachment\n\t */\n\t addAttachmentFromLink(uri, formatType = null) {\n\t this.addProperty(AttachmentProperty.fromLink(uri, formatType));\n\t }\n\n\t /**\n\t * Adds a new contact\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.2\n\t *\n\t * @param {string} contact The textual contact description to add\n\t */\n\t addContact(contact) {\n\t this.addProperty(new TextProperty('CONTACT', contact));\n\t }\n\n\t /**\n\t * Adds a new comment\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.4\n\t *\n\t * @param {string} comment The comment to add\n\t */\n\t addComment(comment) {\n\t this.addProperty(new TextProperty('COMMENT', comment));\n\t }\n\n\t /**\n\t * Adds a new image from raw data\n\t *\n\t * @param {string} data Data of the image to add\n\t * @param {string=} display What display-type the image is optimized for\n\t * @param {string=} formatType The mime-type of the image\n\t */\n\t addImageFromData(data, display = null, formatType = null) {\n\t this.addProperty(ImageProperty.fromData(data, display, formatType));\n\t }\n\n\t /**\n\t * Adds a new image from a link\n\t *\n\t * @param {string} uri The URI of the image to add\n\t * @param {string=} display What display-type the image is optimized for\n\t * @param {string=} formatType The mime-type of the image\n\t */\n\t addImageFromLink(uri, display = null, formatType = null) {\n\t this.addProperty(ImageProperty.fromLink(uri, display, formatType));\n\t }\n\n\t /**\n\t * Creates a new RELATED-TO property based on a relation-type and id\n\t * and adds it to this object\n\t *\n\t * @param {string} relType The type of relation to add\n\t * @param {string} relId The id of the related calendar-document\n\t */\n\t addRelation(relType, relId) {\n\t this.addProperty(RelationProperty.fromRelTypeAndId(relType, relId));\n\t }\n\n\t /**\n\t * Creates a new REQUEST-STATUS property based on code and message\n\t * and adds it to this object\n\t *\n\t * @param {number} code The status-code of the request status\n\t * @param {string} message The message of the request status\n\t */\n\t addRequestStatus(code, message) {\n\t this.addProperty(RequestStatusProperty.fromCodeAndMessage(code, message));\n\t }\n\n\t /**\n\t * Adds a new absolute alarm based on action and trigger time\n\t *\n\t * @param {string} action The type of alarm Action\n\t * @param {DateTimeValue} alarmTime The trigger time of the alarm\n\t * @return {AlarmComponent}\n\t */\n\t addAbsoluteAlarm(action, alarmTime) {\n\t const alarmComp = new AlarmComponent('VALARM', [['action', action], TriggerProperty.fromAbsolute(alarmTime)]);\n\t this.addComponent(alarmComp);\n\t return alarmComp;\n\t }\n\n\t /**\n\t * Adds a new relative alarm based on action, trigger time and relativeTo parameter\n\t *\n\t * @param {string} action The type of alarm Action\n\t * @param {DurationValue} alarmOffset The trigger time of the alarm\n\t * @param {boolean=} relatedToStart Whether or not the alarm is related to the event's start\n\t * @return {AlarmComponent}\n\t */\n\t addRelativeAlarm(action, alarmOffset, relatedToStart = true) {\n\t const alarmComp = new AlarmComponent('VALARM', [['action', action], TriggerProperty.fromRelativeAndRelated(alarmOffset, relatedToStart)]);\n\t this.addComponent(alarmComp);\n\t return alarmComp;\n\t }\n\n\t /**\n\t * Marks a certain property as edited\n\t *\n\t * @param {string} propertyName The name of the property\n\t */\n\t markPropertyAsDirty(propertyName) {\n\t this.markDirty();\n\n\t // Properties that must be considered a significant change\n\t // according to RFC 5546 Section 2.1.4\n\t const props = ['DTSTART', 'DTEND', 'DURATION', 'RRULE', 'RDATE', 'EXDATE', 'STATUS', ...getConfig('property-list-significant-change', [])];\n\t if (props.includes(uc(propertyName))) {\n\t this.markChangesAsSignificant();\n\t }\n\t }\n\n\t /**\n\t * Marks a certain component as edited\n\t *\n\t * @param {string} componentName The name of the component\n\t */\n\t markSubComponentAsDirty(componentName) {\n\t this.markDirty();\n\t if (getConfig('component-list-significant-change', []).includes(componentName)) {\n\t this.markChangesAsSignificant();\n\t }\n\t }\n\n\t /**\n\t * Returns whether or not this component is dirty\n\t *\n\t * @return {boolean}\n\t */\n\t isDirty() {\n\t return this._dirty || this._significantChange;\n\t }\n\n\t /**\n\t * Marks this object as dirty\n\t */\n\t markDirty() {\n\t this._dirty = true;\n\t }\n\n\t /**\n\t * Marks changes as significant. Can be called by the program using this lib\n\t */\n\t markChangesAsSignificant() {\n\t this._significantChange = true;\n\t }\n\n\t /**\n\t * Updates the event after modifications.\n\t *\n\t * @return {boolean} true if last-modified was updated\n\t */\n\t undirtify() {\n\t if (!this.isDirty()) {\n\t return false;\n\t }\n\t if (!this.hasProperty('SEQUENCE')) {\n\t this.sequence = 0;\n\t }\n\t this.updatePropertyWithValue('DTSTAMP', DateTimeValue.fromJSDate(dateFactory(), true));\n\t this.updatePropertyWithValue('LAST-MODIFIED', DateTimeValue.fromJSDate(dateFactory(), true));\n\t if (this._significantChange) {\n\t this.sequence++;\n\t }\n\t this.resetDirty();\n\t return true;\n\t }\n\n\t /**\n\t * Resets the dirty indicators without updating DTSTAMP or LAST-MODIFIED\n\t */\n\t resetDirty() {\n\t this._dirty = false;\n\t this._significantChange = false;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t updatePropertyWithValue(propertyName, value) {\n\t super.updatePropertyWithValue(propertyName, value);\n\t if (uc(propertyName) === 'UID') {\n\t this._cachedId = null;\n\t }\n\t this.markPropertyAsDirty(propertyName);\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t addProperty(property) {\n\t this.markPropertyAsDirty(property.name);\n\t property.subscribe(() => this.markPropertyAsDirty(property.name));\n\t return super.addProperty(property);\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t deleteProperty(property) {\n\t this.markPropertyAsDirty(property.name);\n\t return super.deleteProperty(property);\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t deleteAllProperties(propertyName) {\n\t this.markPropertyAsDirty(propertyName);\n\t return super.deleteAllProperties(propertyName);\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t addComponent(component) {\n\t this.markSubComponentAsDirty(component.name);\n\t component.subscribe(() => this.markSubComponentAsDirty(component.name));\n\t return super.addComponent(component);\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t deleteComponent(component) {\n\t this.markSubComponentAsDirty(component.name);\n\t return super.deleteComponent(component);\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t deleteAllComponents(componentName) {\n\t this.markSubComponentAsDirty(componentName);\n\t return super.deleteAllComponents(componentName);\n\t }\n\n\t /**\n\t * Gets a recurrence-id that has to be used to refer to this event.\n\t * This is used for recurrence-management\n\t *\n\t * @return {DateTimeValue|null}\n\t */\n\t getReferenceRecurrenceId() {\n\t if (this.originalRecurrenceId) {\n\t return this.originalRecurrenceId;\n\t } else if (this.recurrenceId) {\n\t return this.recurrenceId;\n\t } else if (this.startDate) {\n\t return this.startDate;\n\t }\n\t return null;\n\t }\n\n\t /**\n\t * Overrides the master item with this one\n\t *\n\t * @private\n\t */\n\t _overridePrimaryItem() {\n\t const oldStartDate = this.primaryItem.startDate;\n\t for (const property of this.primaryItem.getPropertyIterator()) {\n\t this.primaryItem.deleteProperty(property);\n\t }\n\t for (const property of this.getPropertyIterator()) {\n\t this.primaryItem.addProperty(property);\n\t }\n\t this.recurrenceManager.resetCache();\n\t if (this.startDate.compare(oldStartDate) !== 0) {\n\t this.recurrenceManager.updateStartDateOfMasterItem(this.startDate, oldStartDate);\n\t }\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t static _getConstructorForComponentName(componentName) {\n\t return getConstructorForComponentName$1(componentName);\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t static fromICALJs(...args) {\n\t const comp = super.fromICALJs(...args);\n\t comp.resetDirty();\n\t return comp;\n\t }\n\t}\n\n\t/**\n\t * Date-Time stamp of this object.\n\t * It has different meaning, based on whether or not a method is defined\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.7.2\n\t *\n\t * @name EventComponent#stampTime\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, {\n\t name: 'stampTime',\n\t iCalendarName: 'DTSTAMP'\n\t});\n\n\t/**\n\t * Recurrence-ID of this object, used for recurrence-exceptions\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.4\n\t *\n\t * @name EventComponent#recurrenceId\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, {\n\t name: 'recurrenceId',\n\t iCalendarName: 'RECURRENCE-ID'\n\t});\n\n\t/**\n\t * Special color for this event / journal / task\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.9\n\t *\n\t * @name EventComponent#color\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, 'color');\n\n\t/**\n\t * Creation Time of this event / journal / task\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.7.1\n\t *\n\t * @name EventComponent#creationTime\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, {\n\t name: 'creationTime',\n\t iCalendarName: 'CREATED'\n\t});\n\n\t/**\n\t * The time this event / journal / task\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.7.3\n\t *\n\t * @name EventComponent#modificationTime\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, {\n\t name: 'modificationTime',\n\t iCalendarName: 'LAST-MODIFIED'\n\t});\n\n\t/**\n\t * Organizer of this event / journal / task\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.3\n\t *\n\t * @name EventComponent#organizer\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, 'organizer');\n\n\t/**\n\t * Revision of this this event / journal / task\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.7.4\n\t *\n\t * @name EventComponent#sequence\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, 'sequence');\n\n\t/**\n\t * Status of this event / journal / task\n\t * This indicates whether an event is tentative / confirmed / cancelled\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.11\n\t *\n\t * @name EventComponent#status\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, 'status');\n\n\t/**\n\t * URL of a more dynamic rendition of this event / journal / task\n\t * DO NOT use this to simply point to a website merely related.\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.6\n\t *\n\t * @name EventComponent#url\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, 'url');\n\n\t/**\n\t * Title of this event / journal / task\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.12\n\t *\n\t * @name EventComponent#title\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, {\n\t name: 'title',\n\t iCalendarName: 'SUMMARY'\n\t});\n\n\t/**\n\t * Access class of this event / journal / task\n\t * This determines what other users can see when sharing\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.3\n\t *\n\t * @name EventComponent#accessClass\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, {\n\t name: 'accessClass',\n\t iCalendarName: 'class',\n\t allowedValues: ['PUBLIC', 'PRIVATE', 'CONFIDENTIAL'],\n\t defaultValue: 'PUBLIC',\n\t unknownValue: 'PRIVATE'\n\t});\n\n\t/**\n\t * Returns an iterator over all categories\n\t * If the parameter lang is given, it will only\n\t * return an iterator for Categories matching that language\n\t *\n\t * @name AbstractRecurringComponent#getCategoryIterator\n\t * @function\n\t * @param {string=} lang\n\t * @return {IterableIterator<string>}\n\t */\n\n\t/**\n\t * Returns a list of all categories\n\t * If the parameter lang is given, it will only\n\t * return an iterator for Categories matching that language\n\t *\n\t * @name AbstractRecurringComponent#getCategoryList\n\t * @function\n\t * @param {string=} lang\n\t * @return {string[]}\n\t */\n\n\t/**\n\t * Adds a new category\n\t *\n\t * @name AbstractRecurringComponent#addCategory\n\t * @function\n\t * @param {string} category\n\t * @param {string=} lang\n\t */\n\n\t/**\n\t * Removes a category\n\t *\n\t * @name AbstractRecurringComponent#removeCategory\n\t * @function\n\t * @param {string} category\n\t * @param {string=} lang\n\t */\n\n\t/**\n\t * Clear all categories of a given language\n\t *\n\t * @name AbstractRecurringComponent#clearAllCategories\n\t * @function\n\t */\n\tadvertiseMultiValueStringPropertySeparatedByLang(AbstractRecurringComponent.prototype, {\n\t name: 'category',\n\t pluralName: 'categories',\n\t iCalendarName: 'CATEGORIES'\n\t});\n\n\t/**\n\t * Returns an iterator over all attendees\n\t *\n\t * @name AbstractRecurringComponent#getAttendeeIterator\n\t * @function\n\t * @return {IterableIterator<AttendeeProperty>}\n\t */\n\n\t/**\n\t * Gets a list of all attendees\n\t *\n\t * @name AbstractRecurringComponent#getAttendeeList\n\t * @function\n\t * @return {AttachmentProperty[]}\n\t */\n\n\t/**\n\t * Removes an attendee from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#removeAttendee\n\t * @function\n\t * @param {AttendeeProperty} attendee\n\t */\n\n\t/**\n\t * Removes all attendees from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#clearAllAttendees\n\t * @function\n\t */\n\tadvertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, {\n\t name: 'attendee'\n\t});\n\n\t/**\n\t * Returns an iterator over all attachments\n\t *\n\t * @name AbstractRecurringComponent#getAttachmentIterator\n\t * @function\n\t * @return {IterableIterator<AttachmentProperty>}\n\t */\n\n\t/**\n\t * Gets a list of all attachments\n\t *\n\t * @name AbstractRecurringComponent#getAttachmentList\n\t * @function\n\t * @return {AttachmentProperty[]}\n\t */\n\n\t/**\n\t * Removes one attachment from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#removeAttachment\n\t * @function\n\t * @param {AttachmentProperty} attachment\n\t */\n\n\t/**\n\t * Removes all attachments from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#clearAllAttachments\n\t * @function\n\t */\n\tadvertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, {\n\t name: 'attachment',\n\t iCalendarName: 'ATTACH'\n\t});\n\n\t/**\n\t * Returns an iterator over all relation properties\n\t *\n\t * @name AbstractRecurringComponent#getRelationIterator\n\t * @function\n\t * @return {IterableIterator<RelationProperty>}\n\t */\n\n\t/**\n\t * Returns a list of all relation properties\n\t *\n\t * @name AbstractRecurringComponent#getRelationList\n\t * @function\n\t * @return {RelationProperty[]}\n\t */\n\n\t/**\n\t * Removes a relation from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#removeRelation\n\t * @function\n\t * @param {RelationProperty} relation\n\t */\n\n\t/**\n\t * Removes all relations from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#clearAllRelations\n\t * @function\n\t */\n\tadvertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, {\n\t name: 'relation',\n\t iCalendarName: 'RELATED-TO'\n\t});\n\n\t/**\n\t * Returns an iterator over all comments in this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#getCommentIterator\n\t * @function\n\t * @return {IterableIterator<TextProperty>}\n\t */\n\n\t/**\n\t * Returns a list of all comments in this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#getCommentList\n\t * @function\n\t * @return {TextProperty[]}\n\t */\n\n\t/**\n\t * Removes a comment from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#removeComment\n\t * @function\n\t * @param {TextProperty} comment\n\t */\n\n\t/**\n\t * Removes all comments from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#clearAllComments\n\t * @function\n\t */\n\tadvertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, 'comment');\n\n\t/**\n\t * Returns an iterator over all contacts referenced in this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#getContactIterator\n\t * @function\n\t * @return {IterableIterator<TextProperty>}\n\t */\n\n\t/**\n\t * Returns a list of all contacts referenced in this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#getContactList\n\t * @function\n\t * @return {TextProperty[]}\n\t */\n\n\t/**\n\t * Removes one contact from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#removeContact\n\t * @function\n\t * @param {TextProperty} contact\n\t */\n\n\t/**\n\t * Removes all contacts from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#clearAllContacts\n\t * @function\n\t */\n\tadvertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, 'contact');\n\n\t/**\n\t * Returns an iterator over all image properties\n\t *\n\t * @name AbstractRecurringComponent#getImageIterator\n\t * @function\n\t * @return {IterableIterator<ImageProperty>}\n\t */\n\n\t/**\n\t * Returns a list of all image properties\n\t *\n\t * @name AbstractRecurringComponent#getImageList\n\t * @function\n\t * @return {ImageProperty[]}\n\t */\n\n\t/**\n\t * Removes one image from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#removeImage\n\t * @function\n\t * @param {ImageProperty} image\n\t */\n\n\t/**\n\t * Removes all images from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#clearAllImages\n\t * @function\n\t */\n\tadvertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, 'image');\n\n\t/**\n\t * Returns an iterator over all request status\n\t *\n\t * @name AbstractRecurringComponent#getRequestStatusIterator\n\t * @function\n\t * @return {IterableIterator<RequestStatusProperty>}\n\t */\n\n\t/**\n\t * Returns a list of all request status\n\t *\n\t * @name AbstractRecurringComponent#getRequestStatusList\n\t * @function\n\t * @return {RequestStatusProperty[]}\n\t */\n\n\t/**\n\t * Removes one request status from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#removeRequestStatus\n\t * @function\n\t * @param {RequestStatusProperty} requestStatus\n\t */\n\n\t/**\n\t * Removes all request status from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#clearAllRequestStatus\n\t * @function\n\t */\n\tadvertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, {\n\t name: 'requestStatus',\n\t pluralName: 'requestStatus',\n\t iCalendarName: 'REQUEST-STATUS'\n\t});\n\n\t/**\n\t * Returns an iterator of all alarms\n\t *\n\t * @name AbstractRecurringComponent#getAlarmIterator\n\t * @function\n\t * @return {IterableIterator<AlarmComponent>}\n\t */\n\n\t/**\n\t * Returns a list of all alarms\n\t *\n\t * @name AbstractRecurringComponent#getAlarmList\n\t * @function\n\t * @return {AlarmComponent[]}\n\t */\n\n\t/**\n\t * Removes an alarm from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#removeAlarm\n\t * @function\n\t * @param {AlarmComponent} alarm\n\t */\n\n\t/**\n\t * Removes all alarms from this event / journal / task\n\t *\n\t * @name AbstractRecurringComponent#clearAllAlarms\n\t * @function\n\t */\n\tadvertiseComponent(AbstractRecurringComponent.prototype, 'alarm');\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * Gets kind of birthday event\n\t * returns \"BDAY\", \"DEATHDATE\", \"ANNIVERSARY\"\n\t * or null if this is not a birthday event\n\t *\n\t * @param {EventComponent} eventComponent The eventComponent of the birthday event\n\t * @return {null|string}\n\t */\n\tfunction getTypeOfBirthdayEvent(eventComponent) {\n\t return eventComponent.getFirstPropertyFirstValue('X-NEXTCLOUD-BC-FIELD-TYPE');\n\t}\n\n\t/**\n\t * Gets icon for the birthday type\n\t *\n\t * @param {EventComponent} eventComponent The eventComponent of the birthday event\n\t * @return {string|null}\n\t */\n\tfunction getIconForBirthday(eventComponent) {\n\t const birthdayType = getTypeOfBirthdayEvent(eventComponent);\n\t switch (birthdayType) {\n\t case 'BDAY':\n\t return '🎂';\n\t case 'DEATHDATE':\n\t return '⚰️';\n\t case 'ANNIVERSARY':\n\t return '💍';\n\t default:\n\t return null;\n\t }\n\t}\n\n\t/**\n\t * Returns the age of the birthday person or null of no birth-year given\n\t *\n\t * @param {EventComponent} eventComponent The eventComponent of the birthday event\n\t * @param {number} yearOfOccurrence The year to calculate the age for\n\t * @return {null|number}\n\t */\n\tfunction getAgeOfBirthday(eventComponent, yearOfOccurrence) {\n\t if (!eventComponent.hasProperty('X-NEXTCLOUD-BC-YEAR')) {\n\t return null;\n\t }\n\t const yearOfBirth = eventComponent.getFirstPropertyFirstValue('X-NEXTCLOUD-BC-YEAR');\n\t return parseInt(yearOfOccurrence, 10) - parseInt(yearOfBirth, 10);\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class EventComponent\n\t * @classdesc\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.6.1\n\t */\n\tclass EventComponent extends AbstractRecurringComponent {\n\t /**\n\t * Returns whether this event is an all-day event\n\t *\n\t * @return {boolean}\n\t */\n\t isAllDay() {\n\t return this.startDate.isDate && this.endDate.isDate;\n\t }\n\n\t /**\n\t * Checks whether it's possible to switch from date-time to date or vise-versa\n\t *\n\t * @return {boolean}\n\t */\n\t canModifyAllDay() {\n\t return !this.recurrenceManager.masterItem.isRecurring();\n\t }\n\n\t /**\n\t * Gets the calculated end-date of the event\n\t *\n\t * Quote from RFC 5545 3.6.1:\n\t * The \"DTSTART\" property for a \"VEVENT\" specifies the inclusive\n\t * start of the event. For recurring events, it also specifies the\n\t * very first instance in the recurrence set. The \"DTEND\" property\n\t * for a \"VEVENT\" calendar component specifies the non-inclusive end\n\t * of the event. For cases where a \"VEVENT\" calendar component\n\t * specifies a \"DTSTART\" property with a DATE value type but no\n\t * \"DTEND\" nor \"DURATION\" property, the event's duration is taken to\n\t * be one day. For cases where a \"VEVENT\" calendar component\n\t * specifies a \"DTSTART\" property with a DATE-TIME value type but no\n\t * \"DTEND\" property, the event ends on the same calendar date and\n\t * time of day specified by the \"DTSTART\" property.\n\t *\n\t * @return {DateTimeValue}\n\t */\n\t get endDate() {\n\t if (this.hasProperty('dtend')) {\n\t return this.getFirstPropertyFirstValue('dtend');\n\t }\n\t const dtend = this.startDate.clone();\n\t if (this.hasProperty('duration')) {\n\t dtend.addDuration(this.getFirstPropertyFirstValue('duration'));\n\t } else if (this.startDate.isDate) {\n\t dtend.addDuration(DurationValue.fromSeconds(60 * 60 * 24));\n\t } // There is nothing to do when this event is not allday\n\n\t return dtend;\n\t }\n\n\t /**\n\t * Sets the end time of the event\n\t *\n\t * @param {DateTimeValue} end The end of the event\n\t */\n\t set endDate(end) {\n\t this.deleteAllProperties('duration');\n\t this.updatePropertyWithValue('dtend', end);\n\t }\n\n\t /**\n\t * Gets the calculated duration of the event\n\t *\n\t * @return {DurationValue}\n\t */\n\t get duration() {\n\t if (this.hasProperty('duration')) {\n\t return this.getFirstPropertyFirstValue('duration');\n\t }\n\t return this.startDate.subtractDateWithTimezone(this.endDate);\n\t }\n\n\t /**\n\t * Sets the calculated duration of the event\n\t *\n\t * @param {DurationValue} duration The duration of the event\n\t */\n\t set duration(duration) {\n\t this.deleteAllProperties('dtend');\n\t this.updatePropertyWithValue('duration', duration);\n\t }\n\n\t /**\n\t * Sets the geographical position based on latitude and longitude\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.6\n\t *\n\t * @param {number} lat - latitude\n\t * @param {number} long - longitude\n\t */\n\t setGeographicalPositionFromLatitudeAndLongitude(lat, long) {\n\t this.deleteAllProperties('GEO');\n\t this.addProperty(GeoProperty.fromPosition(lat, long));\n\t }\n\n\t /**\n\t * Adds a new conference property based on URI, label and features\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.11\n\t *\n\t * @param {string} uri The URI of the conference system\n\t * @param {string=} label The label for the conference system\n\t * @param {string[]=} features The features of the conference system\n\t */\n\t addConference(uri, label = null, features = null) {\n\t this._modify();\n\t this.addProperty(ConferenceProperty.fromURILabelAndFeatures(uri, label, features));\n\t }\n\n\t /**\n\t * Adds a duration to the start of the event\n\t *\n\t * @param {DurationValue} duration The duration to add\n\t */\n\t addDurationToStart(duration) {\n\t this.startDate.addDuration(duration);\n\t }\n\n\t /**\n\t * Adds a duration to the end of the event\n\t *\n\t * @param {DurationValue} duration The duration to add\n\t */\n\t addDurationToEnd(duration) {\n\t const endDate = this.endDate;\n\t endDate.addDuration(duration);\n\t this.endDate = endDate;\n\t }\n\n\t /**\n\t * Shifts the entire event by the given duration\n\t *\n\t * @param {DurationValue} delta The duration to shift event by\n\t * @param {boolean} allDay Whether the updated event should be all-day or not\n\t * @param {Timezone} defaultTimezone The default timezone if moving from all-day to timed event\n\t * @param {DurationValue} defaultAllDayDuration The default all-day duration if moving from timed to all-day\n\t * @param {DurationValue} defaultTimedDuration The default timed duration if moving from all-day to timed\n\t */\n\t shiftByDuration(delta, allDay, defaultTimezone, defaultAllDayDuration, defaultTimedDuration) {\n\t const currentAllDay = this.isAllDay();\n\t if (currentAllDay !== allDay && !this.canModifyAllDay()) {\n\t throw new TypeError('Can\\'t modify all-day of this event');\n\t }\n\t this.startDate.isDate = allDay;\n\t this.startDate.addDuration(delta);\n\n\t // If this event was moved from the all-day area into the time-grid,\n\t // then we have to add a timezone and the default duration\n\t if (currentAllDay && !allDay) {\n\t this.startDate.replaceTimezone(defaultTimezone);\n\t this.endDate = this.startDate.clone();\n\t this.endDate.addDuration(defaultTimedDuration);\n\t }\n\n\t // If this event was moved from the time-grid into the all-day area,\n\t // then we have to change the default duration\n\t if (!currentAllDay && allDay) {\n\t this.endDate = this.startDate.clone();\n\t this.endDate.addDuration(defaultAllDayDuration);\n\t }\n\n\t // If this event was only moved inside the time-grid or only inside\n\t // the all-day area, then we only have to adjust the end-date\n\t if (currentAllDay === allDay) {\n\t const endDate = this.endDate;\n\t endDate.addDuration(delta);\n\t this.endDate = endDate;\n\t }\n\t }\n\n\t /**\n\t * Checks if this is a birthday event\n\t *\n\t * @return {boolean}\n\t */\n\t isBirthdayEvent() {\n\t return getTypeOfBirthdayEvent(this) === 'BDAY';\n\t }\n\n\t /**\n\t * Gets the icon to the birthday event\n\t *\n\t * @return {string}\n\t */\n\t getIconForBirthdayEvent() {\n\t return getIconForBirthday(this);\n\t }\n\n\t /**\n\t * Calculates the age of the birthday\n\t *\n\t * @return {number}\n\t */\n\t getAgeForBirthdayEvent() {\n\t return getAgeOfBirthday(this, this.startDate.year);\n\t }\n\n\t /**\n\t * Serializes the entire series to ICS\n\t *\n\t * @return {string}\n\t */\n\t toICSEntireSeries() {\n\t return this.root.toICS();\n\t }\n\n\t /**\n\t * Serializes exactly this recurrence to ICS\n\t * It removes all recurrence information\n\t *\n\t * @return {string}\n\t */\n\t toICSThisOccurrence() {\n\t const clone = this.clone();\n\t clone.deleteAllProperties('RRULE');\n\t clone.deleteAllProperties('EXRULE');\n\t clone.deleteAllProperties('RDATE');\n\t clone.deleteAllProperties('EXDATE');\n\t clone.deleteAllProperties('RECURRENCE-ID');\n\t clone.root = clone.root.constructor.fromEmpty();\n\t clone.parent = clone.root;\n\t clone.root.addComponent(clone);\n\t return clone.root.toICS();\n\t }\n\n\t /**\n\t * Checks if this event is in a given time-frame\n\t *\n\t * @param {DateTimeValue} start Start of time-range to check\n\t * @param {DateTimeValue} end End of time-range to check\n\t * @return {boolean}\n\t */\n\t isInTimeFrame(start, end) {\n\t return start.compare(this.endDate) <= 0 && end.compare(this.startDate) >= 0;\n\t }\n\t}\n\n\t/**\n\t * Time-transparency of this event.\n\t * If set to TRANSPARENT, this event will be ignored for FREE/BUSY calculations.\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.2.7\n\t *\n\t * @name EventComponent#timeTransparency\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(EventComponent.prototype, {\n\t name: 'timeTransparency',\n\t iCalendarName: 'TRANSP',\n\t allowedValues: ['OPAQUE', 'TRANSPARENT'],\n\t defaultValue: 'OPAQUE'\n\t});\n\n\t/**\n\t * Description of this event.\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5\n\t *\n\t * @name EventComponent#description\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(EventComponent.prototype, 'description');\n\n\t/**\n\t * Geographical position of this event\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.6\n\t *\n\t * @name EventComponent#geographicalPosition\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(EventComponent.prototype, {\n\t name: 'geographicalPosition',\n\t iCalendarName: 'GEO'\n\t});\n\n\t/**\n\t * Location that this event takes place in\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.7\n\t *\n\t * @name EventComponent#location\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(EventComponent.prototype, 'location');\n\n\t/**\n\t * Priority of this event\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.9\n\t *\n\t * @name EventComponent#priority\n\t * @type Number\n\t */\n\tadvertiseSingleOccurrenceProperty(EventComponent.prototype, {\n\t name: 'priority',\n\t allowedValues: Array(9).keys(),\n\t defaultValue: 0,\n\t unknownValue: 0\n\t});\n\n\t/**\n\t * Returns an iterator over all resources\n\t * If the parameter lang is given, it will only\n\t * return an iterator for Resources matching that language\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10\n\t *\n\t * @name EventComponent#getResourceIterator\n\t * @function\n\t * @param {string=} lang\n\t * @return {IterableIterator<string>}\n\t */\n\n\t/**\n\t * Returns a list of all resources\n\t * If the parameter lang is given, it will only\n\t * return an iterator for resources matching that language\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10\n\t *\n\t * @name EventComponent#getResourceList\n\t * @function\n\t * @param {string=} lang\n\t * @return {string[]}\n\t */\n\n\t/**\n\t * Adds a resource\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10\n\t *\n\t * @name EventComponent#addResource\n\t * @function\n\t * @param {string} resource\n\t * @param {string=} lang\n\t */\n\n\t/**\n\t * Removes a resource\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10\n\t *\n\t * @name EventComponent#removeResource\n\t * @function\n\t * @param {string} resource\n\t * @param {string=} lang\n\t */\n\n\t/**\n\t * Removes all resources from this event\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10\n\t *\n\t * @name EventComponent#clearAllResources\n\t * @function\n\t * @param {string=} lang\n\t */\n\tadvertiseMultiValueStringPropertySeparatedByLang(EventComponent.prototype, {\n\t name: 'resource',\n\t iCalendarName: 'RESOURCES'\n\t});\n\n\t/**\n\t * Gets an iterator over all conference properties\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.11\n\t *\n\t * @name EventComponent#getConferenceIterator\n\t * @function\n\t * @return {IterableIterator<ConferenceProperty>}\n\t */\n\n\t/**\n\t * Gets a list of all conference properties\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.11\n\t *\n\t * @name EventComponent#getConferenceList\n\t * @function\n\t * @return {ConferenceProperty[]}\n\t */\n\n\t/**\n\t * Removes a conference from this event\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.11\n\t *\n\t * @name EventComponent#removeConference\n\t * @function\n\t * @param {ConferenceProperty} conference\n\t */\n\n\t/**\n\t * Removes all conferences from this event\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.11\n\t *\n\t * @name EventComponent#clearAllConferences\n\t * @function\n\t */\n\tadvertiseMultipleOccurrenceProperty(EventComponent.prototype, 'conference');\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class FreeBusyComponent\n\t * @classdesc\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.6.4\n\t */\n\tclass FreeBusyComponent extends AbstractComponent {\n\t /**\n\t * Gets the start-date of the FreeBusy component\n\t *\n\t * @return {DateTimeValue}\n\t */\n\t get startDate() {\n\t return this.getFirstPropertyFirstValue('DTSTART');\n\t }\n\n\t /**\n\t * Sets the start-date of the FreeBusy component\n\t *\n\t * @param {DateTimeValue} startDate The start of the queried time-range\n\t */\n\t set startDate(startDate) {\n\t this._modify();\n\t this.updatePropertyWithValue('DTSTART', startDate.getInTimezone(Timezone.utc));\n\t }\n\n\t /**\n\t * Gets the end-date of the FreeBusy component\n\t *\n\t * @return {DateTimeValue}\n\t */\n\t get endDate() {\n\t return this.getFirstPropertyFirstValue('DTEND');\n\t }\n\n\t /**\n\t * Sets the start-date of the FreeBusy component\n\t *\n\t * @param {DateTimeValue} endDate The end of the queried time-range\n\t */\n\t set endDate(endDate) {\n\t this._modify();\n\t this.updatePropertyWithValue('DTEND', endDate.getInTimezone(Timezone.utc));\n\t }\n\n\t /**\n\t * Gets an iterator over all FreeBusyProperties\n\t */\n\t *getFreeBusyIterator() {\n\t yield* this.getPropertyIterator('FREEBUSY');\n\t }\n\n\t /**\n\t * Adds a new attendee based on their name and email-address\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1\n\t *\n\t * @param {string} name The name of the attendee to add\n\t * @param {string} email The email-address of the attendee to add\n\t */\n\t addAttendeeFromNameAndEMail(name, email) {\n\t this._modify();\n\t this.addProperty(AttendeeProperty.fromNameAndEMail(name, email));\n\t }\n\n\t /**\n\t * Sets the organiser property from common-name and email address\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.3\n\t *\n\t * @param {string} name The name of the organizer\n\t * @param {string} email The email-address of the organizer\n\t */\n\t setOrganizerFromNameAndEMail(name, email) {\n\t this._modify();\n\t this.deleteAllProperties('ORGANIZER');\n\t this.addProperty(AttendeeProperty.fromNameAndEMail(name, email, true));\n\t }\n\t}\n\n\t/**\n\t * The organizer of this FreeBusy component\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.3\n\t *\n\t * @name FreeBusyComponent#organizer\n\t * @type {AttendeeProperty}\n\t */\n\tadvertiseSingleOccurrenceProperty(FreeBusyComponent.prototype, 'organizer');\n\n\t/**\n\t * The UID of this FreeBusy component\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.7\n\t *\n\t * @name FreeBusyComponent#organizer\n\t * @type {AttendeeProperty}\n\t */\n\tadvertiseSingleOccurrenceProperty(FreeBusyComponent.prototype, 'uid');\n\n\t/**\n\t * Returns an iterator of all attendees\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1\n\t *\n\t * @name FreeBusyComponent#getAttendeeIterator\n\t * @function\n\t * @return {IterableIterator<AttendeeProperty>}\n\t */\n\n\t/**\n\t * Returns a list of all attendees\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1\n\t *\n\t * @name FreeBusyComponent#getAttendeeList\n\t * @function\n\t * @return {AttendeeProperty[]}\n\t */\n\n\t/**\n\t * Removes an attendee\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1\n\t *\n\t * @name FreeBusyComponent#removeAttendee\n\t * @function\n\t * @param {AttendeeProperty} attendee\n\t */\n\n\t/**\n\t * Removes all attendees\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1\n\t *\n\t * @name FreeBusyComponent#clearAllAttendees\n\t * @function\n\t */\n\tadvertiseMultipleOccurrenceProperty(FreeBusyComponent.prototype, 'attendee');\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class JournalComponent\n\t * @classdesc\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.6.3\n\t */\n\tclass JournalComponent extends AbstractRecurringComponent {\n\t /**\n\t * Adds a new description property\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5\n\t *\n\t * @param {string} description The description text\n\t */\n\t addDescription(description) {\n\t this.addProperty(new TextProperty('DESCRIPTION', description));\n\t }\n\t}\n\n\t/**\n\t * Gets an iterator over all description properties\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5\n\t *\n\t * @name JournalComponent#getDescriptionIterator\n\t * @function\n\t * @return {IterableIterator<ConferenceProperty>}\n\t */\n\n\t/**\n\t * Gets a list of all description properties\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5\n\t *\n\t * @name JournalComponent#getDescriptionList\n\t * @function\n\t * @return {ConferenceProperty[]}\n\t */\n\n\t/**\n\t * Removes a description from this event\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5\n\t *\n\t * @name JournalComponent#removeDescription\n\t * @function\n\t * @param {ConferenceProperty} conference\n\t */\n\n\t/**\n\t * Removes all descriptions from this event\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5\n\t *\n\t * @name JournalComponent#clearAllDescriptions\n\t * @function\n\t */\n\tadvertiseMultipleOccurrenceProperty(JournalComponent.prototype, 'description');\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class TimezoneComponent\n\t * @classdesc\n\t *\n\t * There are no advertised properties / components for the TimezoneComponent,\n\t * since we don't care about it.\n\t * Editing / accessing the timezone information directly is not a use-case\n\t * All the timezone-handling is done by the underlying ICAL.JS\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.6.5\n\t */\n\tclass TimezoneComponent extends AbstractComponent {\n\t /**\n\t * Returns a calendar-js Timezone object\n\t *\n\t * @return {Timezone}\n\t */\n\t toTimezone() {\n\t return new Timezone(this.toICALJs());\n\t }\n\t}\n\n\t/**\n\t * The timezoneId of this timezone-component\n\t *\n\t * @name TimezoneComponent#timezoneId\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(TimezoneComponent.prototype, {\n\t name: 'timezoneId',\n\t iCalendarName: 'tzid'\n\t});\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class ToDoComponent\n\t * @classdesc\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.6.2\n\t */\n\tclass ToDoComponent extends AbstractRecurringComponent {\n\t /**\n\t * Returns whether this event is an all-day event\n\t *\n\t * @return {boolean}\n\t */\n\t isAllDay() {\n\t const propertiesToCheck = ['DTSTART', 'DUE'];\n\t for (const propertyToCheck of propertiesToCheck) {\n\t if (this.hasProperty(propertyToCheck)) {\n\t return this.getFirstPropertyFirstValue(propertyToCheck).isDate;\n\t }\n\t }\n\n\t // If a task is not associated with any date, it is defined to\n\t // occur on any successive date until it is completed.\n\t // We are treating it as all-day in that case.\n\t return true;\n\t }\n\n\t /**\n\t * Checks whether it's possible to switch from date-time to date or vise-versa\n\t *\n\t * @return {boolean}\n\t */\n\t canModifyAllDay() {\n\t if (!this.hasProperty('dtstart') && !this.hasProperty('due')) {\n\t return false;\n\t }\n\t return !this.recurrenceManager.masterItem.isRecurring();\n\t }\n\n\t /**\n\t * Gets the calculated end-date of the task\n\t *\n\t * If there is a due-date, we will just return that.\n\t * If there is a start-date and a duration, we will\n\t * calculate the end-date based on that.\n\t *\n\t * If there is neither a due-date nor a combination\n\t * of start-date and duration, we just return null\n\t *\n\t * @return {DateTimeValue|null}\n\t */\n\t get endDate() {\n\t if (this.hasProperty('due')) {\n\t return this.getFirstPropertyFirstValue('due');\n\t }\n\t if (!this.hasProperty('dtstart') || !this.hasProperty('duration')) {\n\t return null;\n\t }\n\t const endDate = this.startDate.clone();\n\t endDate.addDuration(this.getFirstPropertyFirstValue('duration'));\n\t return endDate;\n\t }\n\n\t /**\n\t * Shifts the entire task by the given duration\n\t *\n\t * @param {DurationValue} delta The duration to shift event by\n\t * @param {boolean} allDay Whether the updated event should be all-day or not\n\t * @param {Timezone} defaultTimezone The default timezone if moving from all-day to timed event\n\t * @param {DurationValue} defaultAllDayDuration The default all-day duration if moving from timed to all-day\n\t * @param {DurationValue} defaultTimedDuration The default timed duration if moving from all-day to timed\n\t */\n\t shiftByDuration(delta, allDay, defaultTimezone, defaultAllDayDuration, defaultTimedDuration) {\n\t const currentAllDay = this.isAllDay();\n\t if (!this.hasProperty('dtstart') && !this.hasProperty('due')) {\n\t throw new TypeError('This task does not have a start-date nor due-date');\n\t }\n\t if (currentAllDay !== allDay && !this.canModifyAllDay()) {\n\t throw new TypeError('Can\\'t modify all-day of this todo');\n\t }\n\n\t // If this task has a start-date, update it\n\t // This is especially important, if you shift\n\t // the task by a negative duration, because\n\t // dtstart always has to be prior to the due date\n\t if (this.hasProperty('dtstart')) {\n\t this.startDate.isDate = allDay;\n\t this.startDate.addDuration(delta);\n\t if (currentAllDay && !allDay) {\n\t this.startDate.replaceTimezone(defaultTimezone);\n\t }\n\t }\n\t if (this.hasProperty('due')) {\n\t this.dueTime.isDate = allDay;\n\t this.dueTime.addDuration(delta);\n\t if (currentAllDay && !allDay) {\n\t this.dueTime.replaceTimezone(defaultTimezone);\n\t }\n\t }\n\t }\n\n\t /**\n\t * Checks if this event is in a given time-frame\n\t *\n\t * @param {DateTimeValue} start Start of time-range to check\n\t * @param {DateTimeValue} end End of time-range to check\n\t * @return {boolean}\n\t */\n\t isInTimeFrame(start, end) {\n\t if (!this.hasProperty('dtstart') && !this.hasProperty('due')) {\n\t return true;\n\t }\n\t if (!this.hasProperty('dtstart') && this.hasProperty('due')) {\n\t return start.compare(this.endDate) <= 0;\n\t }\n\t return start.compare(this.endDate) <= 0 && end.compare(this.startDate) >= 0;\n\t }\n\n\t /**\n\t * Gets the geographical position property\n\t *\n\t * @return {GeoProperty}\n\t */\n\t get geographicalPosition() {\n\t return this.getFirstProperty('GEO');\n\t }\n\n\t /**\n\t * Sets the geographical position based on latitude and longitude\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.6\n\t *\n\t * @param {number} lat - latitude\n\t * @param {number} long - longitude\n\t */\n\t setGeographicalPositionFromLatitudeAndLongitude(lat, long) {\n\t this.deleteAllProperties('GEO');\n\t this.addProperty(GeoProperty.fromPosition(lat, long));\n\t }\n\n\t /**\n\t * Adds a new conference property based on URI, label and features\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.11\n\t *\n\t * @param {string} uri The URI of the conference\n\t * @param {string=} label The label of the conference\n\t * @param {string[]=} features Supported features of conference-system\n\t */\n\t addConference(uri, label = null, features = null) {\n\t this.addProperty(ConferenceProperty.fromURILabelAndFeatures(uri, label, features));\n\t }\n\n\t /**\n\t * Gets a recurrence-id that has to be used to refer to this task.\n\t * This is used for recurrence-management.\n\t *\n\t * Gracefully handles the case where a task has no start-date, but a due-date.\n\t *\n\t * @return {DateTimeValue|null}\n\t */\n\t getReferenceRecurrenceId() {\n\t return super.getReferenceRecurrenceId() ?? this.endDate;\n\t }\n\t}\n\n\t/**\n\t * The time when a task was completed\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.2.1\n\t *\n\t * @name ToDoComponent#completedTime\n\t * @type {DateTimeValue}\n\t */\n\tadvertiseSingleOccurrenceProperty(ToDoComponent.prototype, {\n\t name: 'completedTime',\n\t iCalendarName: 'COMPLETED'\n\t});\n\n\t/**\n\t * The time when a task is due\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.2.3\n\t *\n\t * @name ToDoComponent#dueTime\n\t * @type {DateTimeValue}\n\t */\n\tadvertiseSingleOccurrenceProperty(ToDoComponent.prototype, {\n\t name: 'dueTime',\n\t iCalendarName: 'DUE'\n\t});\n\n\t/**\n\t * The time when a task was completed\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.2.5\n\t *\n\t * @name ToDoComponent#duration\n\t * @type {DurationValue}\n\t */\n\tadvertiseSingleOccurrenceProperty(ToDoComponent.prototype, {\n\t name: 'duration'\n\t});\n\n\t/**\n\t * The percentage a task was already fulfilled\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.8\n\t *\n\t * @name ToDoComponent#percent\n\t * @type {number}\n\t */\n\tadvertiseSingleOccurrenceProperty(ToDoComponent.prototype, {\n\t name: 'percent',\n\t iCalendarName: 'PERCENT-COMPLETE'\n\t});\n\n\t/**\n\t * Description of this task.\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5\n\t *\n\t * @name ToDoComponent#description\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(ToDoComponent.prototype, 'description');\n\n\t/**\n\t * Location of this task.\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.7\n\t *\n\t * @name ToDoComponent#location\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(ToDoComponent.prototype, 'location');\n\n\t/**\n\t * Priority of this task.\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.9\n\t *\n\t * @name ToDoComponent#priority\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(ToDoComponent.prototype, {\n\t name: 'priority',\n\t allowedValues: Array.from(Array(10).keys()),\n\t defaultValue: 0,\n\t unknownValue: 0\n\t});\n\n\t/**\n\t * Returns an iterator over all resources\n\t * If the parameter lang is given, it will only\n\t * return an iterator for Resources matching that language\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10\n\t *\n\t * @name ToDoComponent#getResourceIterator\n\t * @function\n\t * @param {string=} lang\n\t * @return {IterableIterator<string>}\n\t */\n\n\t/**\n\t * Returns a list of all resources\n\t * If the parameter lang is given, it will only\n\t * return an iterator for resources matching that language\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10\n\t *\n\t * @name ToDoComponent#getResourceList\n\t * @function\n\t * @param {string=} lang\n\t * @return {string[]}\n\t */\n\n\t/**\n\t * Adds a resource\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10\n\t *\n\t * @name ToDoComponent#addResource\n\t * @function\n\t * @param {string} resource\n\t * @param {string=} lang\n\t */\n\n\t/**\n\t * Removes a resource\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10\n\t *\n\t * @name ToDoComponent#removeResource\n\t * @function\n\t * @param {string} resource\n\t * @param {string=} lang\n\t */\n\n\t/**\n\t * Removes all resources from this task\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10\n\t *\n\t * @name ToDoComponent#clearAllResources\n\t * @function\n\t * @param {string=} lang\n\t */\n\tadvertiseMultiValueStringPropertySeparatedByLang(ToDoComponent.prototype, {\n\t name: 'resource',\n\t iCalendarName: 'RESOURCES'\n\t});\n\n\t/**\n\t * Gets an iterator over all conference properties\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.11\n\t *\n\t * @name ToDoComponent#getConferenceIterator\n\t * @function\n\t * @return {IterableIterator<ConferenceProperty>}\n\t */\n\n\t/**\n\t * Gets a list of all conference properties\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.11\n\t *\n\t * @name ToDoComponent#getConferenceList\n\t * @function\n\t * @return {ConferenceProperty[]}\n\t */\n\n\t/**\n\t * Removes a conference from this event\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.11\n\t *\n\t * @name ToDoComponent#removeConference\n\t * @function\n\t * @param {ConferenceProperty} conference\n\t */\n\n\t/**\n\t * Removes all conferences from this event\n\t *\n\t * @url https://tools.ietf.org/html/rfc7986#section-5.11\n\t *\n\t * @name ToDoComponent#clearAllConferences\n\t * @function\n\t */\n\tadvertiseMultipleOccurrenceProperty(ToDoComponent.prototype, 'conference');\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * Gets the constructor for a component name\n\t * This will only return a constructor for components,\n\t * that can be used in the root of a calendar-document\n\t *\n\t * @param {string} compName Name of the component to get constructor for\n\t * @return {AbstractComponent|ToDoComponent|JournalComponent|FreeBusyComponent|TimezoneComponent|EventComponent}\n\t */\n\tfunction getConstructorForComponentName(compName) {\n\t switch (uc(compName)) {\n\t case 'VEVENT':\n\t return EventComponent;\n\t case 'VFREEBUSY':\n\t return FreeBusyComponent;\n\t case 'VJOURNAL':\n\t return JournalComponent;\n\t case 'VTIMEZONE':\n\t return TimezoneComponent;\n\t case 'VTODO':\n\t return ToDoComponent;\n\t default:\n\t return AbstractComponent;\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * This class represents one VCALENDAR block\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.4\n\t */\n\tclass CalendarComponent extends AbstractComponent {\n\t /**\n\t * Constructor\n\t *\n\t * @inheritDoc\n\t */\n\t constructor(name = 'VCALENDAR', properties = [], components = []) {\n\t super(name, properties, components);\n\t this.root = this;\n\t this.parent = null;\n\t }\n\n\t /**\n\t * Gets an iterator over all VTIMEZONE components\n\t */\n\t *getTimezoneIterator() {\n\t yield* this.getComponentIterator('vtimezone');\n\t }\n\n\t /**\n\t * Gets an iterator over all VObject components\n\t */\n\t *getVObjectIterator() {\n\t yield* this.getEventIterator();\n\t yield* this.getJournalIterator();\n\t yield* this.getTodoIterator();\n\t }\n\n\t /**\n\t * Gets an iterator over all VEVENT components\n\t */\n\t *getEventIterator() {\n\t yield* this.getComponentIterator('vevent');\n\t }\n\n\t /**\n\t * Gets an iterator over all VFREEBUSY components\n\t */\n\t *getFreebusyIterator() {\n\t yield* this.getComponentIterator('vfreebusy');\n\t }\n\n\t /**\n\t * Gets an iterator over all VJOURNAL components\n\t */\n\t *getJournalIterator() {\n\t yield* this.getComponentIterator('vjournal');\n\t }\n\n\t /**\n\t * Gets an iterator over all VTODO components\n\t */\n\t *getTodoIterator() {\n\t yield* this.getComponentIterator('vtodo');\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t static _getConstructorForComponentName(componentName) {\n\t return getConstructorForComponentName(componentName);\n\t }\n\n\t /**\n\t * Converts this calendar component into text/calendar\n\t *\n\t * @param {boolean} cleanUpTimezones Whether or not to clean up timezone data\n\t * @return {string}\n\t */\n\t toICS(cleanUpTimezones = true) {\n\t for (const vObject of this.getVObjectIterator()) {\n\t vObject.undirtify();\n\t }\n\t const icalRoot = this.toICALJs();\n\t if (cleanUpTimezones) {\n\t ICAL.helpers.updateTimezones(icalRoot);\n\t }\n\t return icalRoot.toString();\n\t }\n\n\t /**\n\t * Creates a new empty calendar-component\n\t *\n\t * @param {[string][]=} additionalProps Additional props to add to empty calendar-document\n\t * @return {CalendarComponent}\n\t */\n\t static fromEmpty(additionalProps = []) {\n\t return new this('VCALENDAR', [['prodid', getConfig('PRODID', '-//IDN georgehrke.com//calendar-js//EN')], ['calscale', 'GREGORIAN'], ['version', '2.0']].concat(additionalProps));\n\t }\n\n\t /**\n\t * Creates a new calendar-component with a method\n\t *\n\t * @param {string} method The method for the calendar-document\n\t * @return {CalendarComponent}\n\t */\n\t static fromMethod(method) {\n\t return this.fromEmpty([['method', method]]);\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t static fromICALJs(icalValue) {\n\t const comp = super.fromICALJs(icalValue);\n\t comp.root = comp;\n\t return comp;\n\t }\n\t}\n\n\t/**\n\t * ProductId representing the software that created this calendar-document\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.7.3\n\t *\n\t * @name CalendarComponent#productId\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(CalendarComponent.prototype, {\n\t name: 'productId',\n\t iCalendarName: 'PRODID'\n\t});\n\n\t/**\n\t * iCalendar version of this calendar-document\n\t * minver and maxver parameters are not supported, since they\n\t * are virtually used by no calendaring-software\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.7.4\n\t *\n\t * @name CalendarComponent#version\n\t * @type {string}\n\t */\n\n\tadvertiseSingleOccurrenceProperty(CalendarComponent.prototype, {\n\t name: 'version'\n\t});\n\n\t/**\n\t * Calendar-scale used in this calendar-document\n\t * The default and only supported calendar-scale is GREGORIAN.\n\t * There is an iCalendar-extension about non-gregorian RRULES,\n\t * but that is not supported by calendar-js at the moment\n\t *\n\t * @see https://tools.ietf.org/html/rfc7529\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.7.1\n\t *\n\t * @name CalendarComponent#calendarScale\n\t * @type {string}\n\t * @default \"GREGORIAN\"\n\t */\n\tadvertiseSingleOccurrenceProperty(CalendarComponent.prototype, {\n\t name: 'calendarScale',\n\t iCalendarName: 'CALSCALE',\n\t defaultValue: 'GREGORIAN'\n\t});\n\n\t/**\n\t * Method of this calendar-document when being used in an iTIP message\n\t * Please see https://tools.ietf.org/html/rfc5546#section-3.2 for more information\n\t *\n\t * @url https://tools.ietf.org/html/rfc5545#section-3.7.2\n\t *\n\t * @name CalendarComponent#method\n\t * @type {string}\n\t */\n\tadvertiseSingleOccurrenceProperty(CalendarComponent.prototype, {\n\t name: 'method'\n\t});\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class AbstractRepairStep\n\t * @classdesc A repair step is used to fix calendar-data before it is parsed\n\t */\n\tclass AbstractRepairStep {\n\t /**\n\t * @class\n\t */\n\t constructor() {\n\t if (new.target === AbstractRepairStep) {\n\t throw new TypeError('Cannot instantiate abstract class AbstractRepairStep');\n\t }\n\t }\n\n\t /**\n\t * @param {string} input String representation of the data to repair\n\t */\n\t repair(input) {\n\t throw new TypeError('Abstract method not implemented by subclass');\n\t }\n\n\t /**\n\t * @return {number}\n\t */\n\t static priority() {\n\t return 0;\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class ICalendarAddMissingUIDRepairStep\n\t */\n\tclass ICalendarAddMissingUIDRepairStep extends AbstractRepairStep {\n\t /**\n\t * Please see the corresponding test file for an example of broken calendar-data\n\t *\n\t * @inheritDoc\n\t */\n\t repair(ics) {\n\t return ics.replace(/^BEGIN:(VEVENT|VTODO|VJOURNAL)$(((?!^END:(VEVENT|VTODO|VJOURNAL)$)(?!^UID.*$)(.|\\n))*)^END:(VEVENT|VTODO|VJOURNAL)$\\n/gm, (match, vobjectName, vObjectBlock) => {\n\t return 'BEGIN:' + vobjectName + '\\r\\n' + 'UID:' + uuid.v4() + vObjectBlock + 'END:' + vobjectName + '\\r\\n';\n\t });\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class ICalendarAddMissingValueDateDoubleColonRepairStep\n\t */\n\tclass ICalendarAddMissingValueDateDoubleColonRepairStep extends AbstractRepairStep {\n\t /**\n\t * Please see the corresponding test file for an example of broken calendar-data\n\t *\n\t * @inheritDoc\n\t */\n\t repair(ics) {\n\t return ics.replace(/^(DTSTART|DTEND)(.*):([0-9]{8})T(::)$/gm, (match, propName, parameters, date) => {\n\t return propName + ';VALUE=DATE:' + date;\n\t });\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class ICalendarAddMissingValueDateRepairStep\n\t */\n\tclass ICalendarAddMissingValueDateRepairStep extends AbstractRepairStep {\n\t /**\n\t * Please see the corresponding test file for an example of broken calendar-data\n\t *\n\t * @inheritDoc\n\t */\n\t repair(ics) {\n\t return ics.replace(/^(DTSTART|DTEND|EXDATE)(((?!VALUE=DATE).)*):([0-9]{8})$/gm, (match, propName, parameters, _, date) => {\n\t return propName + parameters + ';VALUE=DATE:' + date;\n\t });\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class ICalendarEmptyTriggerRepairStep\n\t * @classdesc This repair step fixes malformed TRIGGER properties\n\t */\n\tclass ICalendarEmptyTriggerRepairStep extends AbstractRepairStep {\n\t /**\n\t * Please see the corresponding test file for an example of broken calendar-data\n\t *\n\t * @inheritDoc\n\t */\n\t repair(ics) {\n\t return ics.replace(/^TRIGGER:P$/gm, 'TRIGGER:P0D').replace(/^TRIGGER:-P$/gm, 'TRIGGER:P0D');\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2020 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\tclass ICalendarIllegalCreatedRepairStep extends AbstractRepairStep {\n\t /**\n\t * Please see the corresponding test file for an example of broken calendar-data\n\t *\n\t * @inheritDoc\n\t */\n\t repair(ics) {\n\t return ics.replace(/^CREATED:00001231T000000Z$/gm, 'CREATED:19700101T000000Z');\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class ICalendarMultipleVCalendarBlocksRepairStep\n\t * @classdesc This repair step merges multiple BEGIN:VCALENDAR...END:VCALENDAR blocks\n\t */\n\tclass ICalendarMultipleVCalendarBlocksRepairStep extends AbstractRepairStep {\n\t /**\n\t * Please see the corresponding test file for an example of broken calendar-data\n\t *\n\t * @inheritDoc\n\t */\n\t repair(ics) {\n\t let containsProdId = false;\n\t let containsVersion = false;\n\t let containsCalscale = false;\n\t const includedTimezones = new Set();\n\t return ics.replace(/^END:VCALENDAR$(((?!^BEGIN:)(.|\\n))*)^BEGIN:VCALENDAR$\\n/gm, '').replace(/^PRODID:(.*)$\\n/gm, match => {\n\t if (containsProdId) {\n\t return '';\n\t }\n\t containsProdId = true;\n\t return match;\n\t }).replace(/^VERSION:(.*)$\\n/gm, match => {\n\t if (containsVersion) {\n\t return '';\n\t }\n\t containsVersion = true;\n\t return match;\n\t }).replace(/^CALSCALE:(.*)$\\n/gm, match => {\n\t if (containsCalscale) {\n\t return '';\n\t }\n\t containsCalscale = true;\n\t return match;\n\t }).replace(/^BEGIN:VTIMEZONE$(((?!^END:VTIMEZONE$)(.|\\n))*)^END:VTIMEZONE$\\n/gm, match => {\n\t const tzidMatcher = match.match(/^TZID:(.*)$/gm);\n\n\t // If this Timezone definition contains no TZID for some reason,\n\t // just remove it, because we can't use it anyway\n\t if (tzidMatcher === null) {\n\t return '';\n\t }\n\t const tzid = uc(tzidMatcher[0].slice(5));\n\t if (includedTimezones.has(tzid)) {\n\t // If we already included this timezone, just skip\n\t return '';\n\t }\n\t includedTimezones.add(tzid);\n\t return match;\n\t });\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class ICalendarRemoveXNCGroupIdRepairStep\n\t * @classdesc This repair step removes the X-NC-GroupID parameter used in previous versions of Nextcloud\n\t */\n\tclass ICalendarRemoveXNCGroupIdRepairStep extends AbstractRepairStep {\n\t /**\n\t * Please see the corresponding test file for an example of broken calendar-data\n\t *\n\t * @inheritDoc\n\t */\n\t repair(ics) {\n\t return ics.replace(/(^.*)(;X-NC-GROUP-ID=\\d+)(:.*$)/gm, '$1$3');\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * Get an iterator over all repair steps for iCalendar documents\n\t */\n\tfunction* getRepairSteps() {\n\t yield ICalendarAddMissingUIDRepairStep;\n\t yield ICalendarAddMissingValueDateDoubleColonRepairStep;\n\t yield ICalendarAddMissingValueDateRepairStep;\n\t yield ICalendarEmptyTriggerRepairStep;\n\t yield ICalendarIllegalCreatedRepairStep;\n\t yield ICalendarMultipleVCalendarBlocksRepairStep;\n\t yield ICalendarRemoveXNCGroupIdRepairStep;\n\t}\n\n\tvar version = \"2.2023c\";\n\tvar aliases = {\n\t\t\"AUS Central Standard Time\": {\n\t\t\taliasTo: \"Australia/Darwin\"\n\t\t},\n\t\t\"AUS Eastern Standard Time\": {\n\t\t\taliasTo: \"Australia/Sydney\"\n\t\t},\n\t\t\"Afghanistan Standard Time\": {\n\t\t\taliasTo: \"Asia/Kabul\"\n\t\t},\n\t\t\"Africa/Asmera\": {\n\t\t\taliasTo: \"Africa/Asmara\"\n\t\t},\n\t\t\"Africa/Timbuktu\": {\n\t\t\taliasTo: \"Africa/Bamako\"\n\t\t},\n\t\t\"Alaskan Standard Time\": {\n\t\t\taliasTo: \"America/Anchorage\"\n\t\t},\n\t\t\"America/Argentina/ComodRivadavia\": {\n\t\t\taliasTo: \"America/Argentina/Catamarca\"\n\t\t},\n\t\t\"America/Buenos_Aires\": {\n\t\t\taliasTo: \"America/Argentina/Buenos_Aires\"\n\t\t},\n\t\t\"America/Louisville\": {\n\t\t\taliasTo: \"America/Kentucky/Louisville\"\n\t\t},\n\t\t\"America/Montreal\": {\n\t\t\taliasTo: \"America/Toronto\"\n\t\t},\n\t\t\"America/Santa_Isabel\": {\n\t\t\taliasTo: \"America/Tijuana\"\n\t\t},\n\t\t\"Arab Standard Time\": {\n\t\t\taliasTo: \"Asia/Riyadh\"\n\t\t},\n\t\t\"Arabian Standard Time\": {\n\t\t\taliasTo: \"Asia/Dubai\"\n\t\t},\n\t\t\"Arabic Standard Time\": {\n\t\t\taliasTo: \"Asia/Baghdad\"\n\t\t},\n\t\t\"Argentina Standard Time\": {\n\t\t\taliasTo: \"America/Argentina/Buenos_Aires\"\n\t\t},\n\t\t\"Asia/Calcutta\": {\n\t\t\taliasTo: \"Asia/Kolkata\"\n\t\t},\n\t\t\"Asia/Katmandu\": {\n\t\t\taliasTo: \"Asia/Kathmandu\"\n\t\t},\n\t\t\"Asia/Rangoon\": {\n\t\t\taliasTo: \"Asia/Yangon\"\n\t\t},\n\t\t\"Asia/Saigon\": {\n\t\t\taliasTo: \"Asia/Ho_Chi_Minh\"\n\t\t},\n\t\t\"Atlantic Standard Time\": {\n\t\t\taliasTo: \"America/Halifax\"\n\t\t},\n\t\t\"Atlantic/Faeroe\": {\n\t\t\taliasTo: \"Atlantic/Faroe\"\n\t\t},\n\t\t\"Atlantic/Jan_Mayen\": {\n\t\t\taliasTo: \"Europe/Oslo\"\n\t\t},\n\t\t\"Azerbaijan Standard Time\": {\n\t\t\taliasTo: \"Asia/Baku\"\n\t\t},\n\t\t\"Azores Standard Time\": {\n\t\t\taliasTo: \"Atlantic/Azores\"\n\t\t},\n\t\t\"Bahia Standard Time\": {\n\t\t\taliasTo: \"America/Bahia\"\n\t\t},\n\t\t\"Bangladesh Standard Time\": {\n\t\t\taliasTo: \"Asia/Dhaka\"\n\t\t},\n\t\t\"Belarus Standard Time\": {\n\t\t\taliasTo: \"Europe/Minsk\"\n\t\t},\n\t\t\"Canada Central Standard Time\": {\n\t\t\taliasTo: \"America/Regina\"\n\t\t},\n\t\t\"Cape Verde Standard Time\": {\n\t\t\taliasTo: \"Atlantic/Cape_Verde\"\n\t\t},\n\t\t\"Caucasus Standard Time\": {\n\t\t\taliasTo: \"Asia/Yerevan\"\n\t\t},\n\t\t\"Cen. Australia Standard Time\": {\n\t\t\taliasTo: \"Australia/Adelaide\"\n\t\t},\n\t\t\"Central America Standard Time\": {\n\t\t\taliasTo: \"America/Guatemala\"\n\t\t},\n\t\t\"Central Asia Standard Time\": {\n\t\t\taliasTo: \"Asia/Almaty\"\n\t\t},\n\t\t\"Central Brazilian Standard Time\": {\n\t\t\taliasTo: \"America/Cuiaba\"\n\t\t},\n\t\t\"Central Europe Standard Time\": {\n\t\t\taliasTo: \"Europe/Budapest\"\n\t\t},\n\t\t\"Central European Standard Time\": {\n\t\t\taliasTo: \"Europe/Warsaw\"\n\t\t},\n\t\t\"Central Pacific Standard Time\": {\n\t\t\taliasTo: \"Pacific/Guadalcanal\"\n\t\t},\n\t\t\"Central Standard Time\": {\n\t\t\taliasTo: \"America/Chicago\"\n\t\t},\n\t\t\"Central Standard Time (Mexico)\": {\n\t\t\taliasTo: \"America/Mexico_City\"\n\t\t},\n\t\t\"China Standard Time\": {\n\t\t\taliasTo: \"Asia/Shanghai\"\n\t\t},\n\t\t\"E. Africa Standard Time\": {\n\t\t\taliasTo: \"Africa/Nairobi\"\n\t\t},\n\t\t\"E. Australia Standard Time\": {\n\t\t\taliasTo: \"Australia/Brisbane\"\n\t\t},\n\t\t\"E. South America Standard Time\": {\n\t\t\taliasTo: \"America/Sao_Paulo\"\n\t\t},\n\t\t\"Eastern Standard Time\": {\n\t\t\taliasTo: \"America/New_York\"\n\t\t},\n\t\t\"Egypt Standard Time\": {\n\t\t\taliasTo: \"Africa/Cairo\"\n\t\t},\n\t\t\"Ekaterinburg Standard Time\": {\n\t\t\taliasTo: \"Asia/Yekaterinburg\"\n\t\t},\n\t\t\"Etc/GMT\": {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\t\"Etc/GMT+0\": {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\t\"Etc/UCT\": {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\t\"Etc/UTC\": {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\t\"Etc/Unversal\": {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\t\"Etc/Zulu\": {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\t\"Europe/Belfast\": {\n\t\t\taliasTo: \"Europe/London\"\n\t\t},\n\t\t\"FLE Standard Time\": {\n\t\t\taliasTo: \"Europe/Kiev\"\n\t\t},\n\t\t\"Fiji Standard Time\": {\n\t\t\taliasTo: \"Pacific/Fiji\"\n\t\t},\n\t\tGMT: {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\t\"GMT Standard Time\": {\n\t\t\taliasTo: \"Europe/London\"\n\t\t},\n\t\t\"GMT+0\": {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\tGMT0: {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\t\"GTB Standard Time\": {\n\t\t\taliasTo: \"Europe/Bucharest\"\n\t\t},\n\t\t\"Georgian Standard Time\": {\n\t\t\taliasTo: \"Asia/Tbilisi\"\n\t\t},\n\t\t\"Greenland Standard Time\": {\n\t\t\taliasTo: \"America/Godthab\"\n\t\t},\n\t\tGreenwich: {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\t\"Greenwich Standard Time\": {\n\t\t\taliasTo: \"Atlantic/Reykjavik\"\n\t\t},\n\t\t\"Hawaiian Standard Time\": {\n\t\t\taliasTo: \"Pacific/Honolulu\"\n\t\t},\n\t\t\"India Standard Time\": {\n\t\t\taliasTo: \"Asia/Calcutta\"\n\t\t},\n\t\t\"Iran Standard Time\": {\n\t\t\taliasTo: \"Asia/Tehran\"\n\t\t},\n\t\t\"Israel Standard Time\": {\n\t\t\taliasTo: \"Asia/Jerusalem\"\n\t\t},\n\t\t\"Jordan Standard Time\": {\n\t\t\taliasTo: \"Asia/Amman\"\n\t\t},\n\t\t\"Kaliningrad Standard Time\": {\n\t\t\taliasTo: \"Europe/Kaliningrad\"\n\t\t},\n\t\t\"Korea Standard Time\": {\n\t\t\taliasTo: \"Asia/Seoul\"\n\t\t},\n\t\t\"Libya Standard Time\": {\n\t\t\taliasTo: \"Africa/Tripoli\"\n\t\t},\n\t\t\"Line Islands Standard Time\": {\n\t\t\taliasTo: \"Pacific/Kiritimati\"\n\t\t},\n\t\t\"Magadan Standard Time\": {\n\t\t\taliasTo: \"Asia/Magadan\"\n\t\t},\n\t\t\"Mauritius Standard Time\": {\n\t\t\taliasTo: \"Indian/Mauritius\"\n\t\t},\n\t\t\"Middle East Standard Time\": {\n\t\t\taliasTo: \"Asia/Beirut\"\n\t\t},\n\t\t\"Montevideo Standard Time\": {\n\t\t\taliasTo: \"America/Montevideo\"\n\t\t},\n\t\t\"Morocco Standard Time\": {\n\t\t\taliasTo: \"Africa/Casablanca\"\n\t\t},\n\t\t\"Mountain Standard Time\": {\n\t\t\taliasTo: \"America/Denver\"\n\t\t},\n\t\t\"Mountain Standard Time (Mexico)\": {\n\t\t\taliasTo: \"America/Chihuahua\"\n\t\t},\n\t\t\"Myanmar Standard Time\": {\n\t\t\taliasTo: \"Asia/Rangoon\"\n\t\t},\n\t\t\"N. Central Asia Standard Time\": {\n\t\t\taliasTo: \"Asia/Novosibirsk\"\n\t\t},\n\t\t\"Namibia Standard Time\": {\n\t\t\taliasTo: \"Africa/Windhoek\"\n\t\t},\n\t\t\"Nepal Standard Time\": {\n\t\t\taliasTo: \"Asia/Katmandu\"\n\t\t},\n\t\t\"New Zealand Standard Time\": {\n\t\t\taliasTo: \"Pacific/Auckland\"\n\t\t},\n\t\t\"Newfoundland Standard Time\": {\n\t\t\taliasTo: \"America/St_Johns\"\n\t\t},\n\t\t\"North Asia East Standard Time\": {\n\t\t\taliasTo: \"Asia/Irkutsk\"\n\t\t},\n\t\t\"North Asia Standard Time\": {\n\t\t\taliasTo: \"Asia/Krasnoyarsk\"\n\t\t},\n\t\t\"Pacific SA Standard Time\": {\n\t\t\taliasTo: \"America/Santiago\"\n\t\t},\n\t\t\"Pacific Standard Time\": {\n\t\t\taliasTo: \"America/Los_Angeles\"\n\t\t},\n\t\t\"Pacific Standard Time (Mexico)\": {\n\t\t\taliasTo: \"America/Santa_Isabel\"\n\t\t},\n\t\t\"Pacific/Johnston\": {\n\t\t\taliasTo: \"Pacific/Honolulu\"\n\t\t},\n\t\t\"Pakistan Standard Time\": {\n\t\t\taliasTo: \"Asia/Karachi\"\n\t\t},\n\t\t\"Paraguay Standard Time\": {\n\t\t\taliasTo: \"America/Asuncion\"\n\t\t},\n\t\t\"Romance Standard Time\": {\n\t\t\taliasTo: \"Europe/Paris\"\n\t\t},\n\t\t\"Russia Time Zone 10\": {\n\t\t\taliasTo: \"Asia/Srednekolymsk\"\n\t\t},\n\t\t\"Russia Time Zone 11\": {\n\t\t\taliasTo: \"Asia/Kamchatka\"\n\t\t},\n\t\t\"Russia Time Zone 3\": {\n\t\t\taliasTo: \"Europe/Samara\"\n\t\t},\n\t\t\"Russian Standard Time\": {\n\t\t\taliasTo: \"Europe/Moscow\"\n\t\t},\n\t\t\"SA Eastern Standard Time\": {\n\t\t\taliasTo: \"America/Cayenne\"\n\t\t},\n\t\t\"SA Pacific Standard Time\": {\n\t\t\taliasTo: \"America/Bogota\"\n\t\t},\n\t\t\"SA Western Standard Time\": {\n\t\t\taliasTo: \"America/La_Paz\"\n\t\t},\n\t\t\"SE Asia Standard Time\": {\n\t\t\taliasTo: \"Asia/Bangkok\"\n\t\t},\n\t\t\"Samoa Standard Time\": {\n\t\t\taliasTo: \"Pacific/Apia\"\n\t\t},\n\t\t\"Singapore Standard Time\": {\n\t\t\taliasTo: \"Asia/Singapore\"\n\t\t},\n\t\t\"South Africa Standard Time\": {\n\t\t\taliasTo: \"Africa/Johannesburg\"\n\t\t},\n\t\t\"Sri Lanka Standard Time\": {\n\t\t\taliasTo: \"Asia/Colombo\"\n\t\t},\n\t\t\"Syria Standard Time\": {\n\t\t\taliasTo: \"Asia/Damascus\"\n\t\t},\n\t\t\"Taipei Standard Time\": {\n\t\t\taliasTo: \"Asia/Taipei\"\n\t\t},\n\t\t\"Tasmania Standard Time\": {\n\t\t\taliasTo: \"Australia/Hobart\"\n\t\t},\n\t\t\"Tokyo Standard Time\": {\n\t\t\taliasTo: \"Asia/Tokyo\"\n\t\t},\n\t\t\"Tonga Standard Time\": {\n\t\t\taliasTo: \"Pacific/Tongatapu\"\n\t\t},\n\t\t\"Turkey Standard Time\": {\n\t\t\taliasTo: \"Europe/Istanbul\"\n\t\t},\n\t\tUCT: {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\t\"US Eastern Standard Time\": {\n\t\t\taliasTo: \"America/Indiana/Indianapolis\"\n\t\t},\n\t\t\"US Mountain Standard Time\": {\n\t\t\taliasTo: \"America/Phoenix\"\n\t\t},\n\t\t\"US/Central\": {\n\t\t\taliasTo: \"America/Chicago\"\n\t\t},\n\t\t\"US/Eastern\": {\n\t\t\taliasTo: \"America/New_York\"\n\t\t},\n\t\t\"US/Mountain\": {\n\t\t\taliasTo: \"America/Denver\"\n\t\t},\n\t\t\"US/Pacific\": {\n\t\t\taliasTo: \"America/Los_Angeles\"\n\t\t},\n\t\t\"US/Pacific-New\": {\n\t\t\taliasTo: \"America/Los_Angeles\"\n\t\t},\n\t\t\"Ulaanbaatar Standard Time\": {\n\t\t\taliasTo: \"Asia/Ulaanbaatar\"\n\t\t},\n\t\tUniversal: {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\t\"Venezuela Standard Time\": {\n\t\t\taliasTo: \"America/Caracas\"\n\t\t},\n\t\t\"Vladivostok Standard Time\": {\n\t\t\taliasTo: \"Asia/Vladivostok\"\n\t\t},\n\t\t\"W. Australia Standard Time\": {\n\t\t\taliasTo: \"Australia/Perth\"\n\t\t},\n\t\t\"W. Central Africa Standard Time\": {\n\t\t\taliasTo: \"Africa/Lagos\"\n\t\t},\n\t\t\"W. Europe Standard Time\": {\n\t\t\taliasTo: \"Europe/Berlin\"\n\t\t},\n\t\t\"West Asia Standard Time\": {\n\t\t\taliasTo: \"Asia/Tashkent\"\n\t\t},\n\t\t\"West Pacific Standard Time\": {\n\t\t\taliasTo: \"Pacific/Port_Moresby\"\n\t\t},\n\t\t\"Yakutsk Standard Time\": {\n\t\t\taliasTo: \"Asia/Yakutsk\"\n\t\t},\n\t\tZ: {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\tZulu: {\n\t\t\taliasTo: \"UTC\"\n\t\t},\n\t\tutc: {\n\t\t\taliasTo: \"UTC\"\n\t\t}\n\t};\n\tvar zones = {\n\t\t\"Africa/Abidjan\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0051900\",\n\t\t\tlongitude: \"-0040200\"\n\t\t},\n\t\t\"Africa/Accra\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Addis_Ababa\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Algiers\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0364700\",\n\t\t\tlongitude: \"+0030300\"\n\t\t},\n\t\t\"Africa/Asmara\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Asmera\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Bamako\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Bangui\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Banjul\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Bissau\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0115100\",\n\t\t\tlongitude: \"-0153500\"\n\t\t},\n\t\t\"Africa/Blantyre\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Brazzaville\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Bujumbura\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Cairo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700424T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1FR\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701030T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0300300\",\n\t\t\tlongitude: \"+0311500\"\n\t\t},\n\t\t\"Africa/Casablanca\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:+01\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0333900\",\n\t\t\tlongitude: \"-0073500\"\n\t\t},\n\t\t\"Africa/Ceuta\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0355300\",\n\t\t\tlongitude: \"-0051900\"\n\t\t},\n\t\t\"Africa/Conakry\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Dakar\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Dar_es_Salaam\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Djibouti\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Douala\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/El_Aaiun\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:+01\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0270900\",\n\t\t\tlongitude: \"-0131200\"\n\t\t},\n\t\t\"Africa/Freetown\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Gaborone\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Harare\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Johannesburg\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:SAST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0261500\",\n\t\t\tlongitude: \"+0280000\"\n\t\t},\n\t\t\"Africa/Juba\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0045100\",\n\t\t\tlongitude: \"+0313700\"\n\t\t},\n\t\t\"Africa/Kampala\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Khartoum\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0153600\",\n\t\t\tlongitude: \"+0323200\"\n\t\t},\n\t\t\"Africa/Kigali\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Kinshasa\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Lagos\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0062700\",\n\t\t\tlongitude: \"+0032400\"\n\t\t},\n\t\t\"Africa/Libreville\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Lome\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Luanda\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Lubumbashi\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Lusaka\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Malabo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Maputo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0255800\",\n\t\t\tlongitude: \"+0323500\"\n\t\t},\n\t\t\"Africa/Maseru\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:SAST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Mbabane\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:SAST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Mogadishu\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Monrovia\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0061800\",\n\t\t\tlongitude: \"-0104700\"\n\t\t},\n\t\t\"Africa/Nairobi\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0011700\",\n\t\t\tlongitude: \"+0364900\"\n\t\t},\n\t\t\"Africa/Ndjamena\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0120700\",\n\t\t\tlongitude: \"+0150300\"\n\t\t},\n\t\t\"Africa/Niamey\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Nouakchott\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Ouagadougou\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Porto-Novo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Sao_Tome\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0002000\",\n\t\t\tlongitude: \"+0064400\"\n\t\t},\n\t\t\"Africa/Timbuktu\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Africa/Tripoli\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0325400\",\n\t\t\tlongitude: \"+0131100\"\n\t\t},\n\t\t\"Africa/Tunis\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0364800\",\n\t\t\tlongitude: \"+0101100\"\n\t\t},\n\t\t\"Africa/Windhoek\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0223400\",\n\t\t\tlongitude: \"+0170600\"\n\t\t},\n\t\t\"America/Adak\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-1000\\r\\nTZOFFSETTO:-0900\\r\\nTZNAME:HDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0900\\r\\nTZOFFSETTO:-1000\\r\\nTZNAME:HST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0515248\",\n\t\t\tlongitude: \"-1763929\"\n\t\t},\n\t\t\"America/Anchorage\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0900\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:AKDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0900\\r\\nTZNAME:AKST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0611305\",\n\t\t\tlongitude: \"-1495401\"\n\t\t},\n\t\t\"America/Anguilla\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Antigua\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Araguaina\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0071200\",\n\t\t\tlongitude: \"-0481200\"\n\t\t},\n\t\t\"America/Argentina/Buenos_Aires\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0343600\",\n\t\t\tlongitude: \"-0582700\"\n\t\t},\n\t\t\"America/Argentina/Catamarca\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0282800\",\n\t\t\tlongitude: \"-0654700\"\n\t\t},\n\t\t\"America/Argentina/ComodRivadavia\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Argentina/Cordoba\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0312400\",\n\t\t\tlongitude: \"-0641100\"\n\t\t},\n\t\t\"America/Argentina/Jujuy\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0241100\",\n\t\t\tlongitude: \"-0651800\"\n\t\t},\n\t\t\"America/Argentina/La_Rioja\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0292600\",\n\t\t\tlongitude: \"-0665100\"\n\t\t},\n\t\t\"America/Argentina/Mendoza\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0325300\",\n\t\t\tlongitude: \"-0684900\"\n\t\t},\n\t\t\"America/Argentina/Rio_Gallegos\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0513800\",\n\t\t\tlongitude: \"-0691300\"\n\t\t},\n\t\t\"America/Argentina/Salta\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0244700\",\n\t\t\tlongitude: \"-0652500\"\n\t\t},\n\t\t\"America/Argentina/San_Juan\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0313200\",\n\t\t\tlongitude: \"-0683100\"\n\t\t},\n\t\t\"America/Argentina/San_Luis\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0331900\",\n\t\t\tlongitude: \"-0662100\"\n\t\t},\n\t\t\"America/Argentina/Tucuman\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0264900\",\n\t\t\tlongitude: \"-0651300\"\n\t\t},\n\t\t\"America/Argentina/Ushuaia\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0544800\",\n\t\t\tlongitude: \"-0681800\"\n\t\t},\n\t\t\"America/Aruba\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Asuncion\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19701004T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:-04\\r\\nDTSTART:19700322T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=4SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0251600\",\n\t\t\tlongitude: \"-0574000\"\n\t\t},\n\t\t\"America/Atikokan\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Atka\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-1000\\r\\nTZOFFSETTO:-0900\\r\\nTZNAME:HDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0900\\r\\nTZOFFSETTO:-1000\\r\\nTZNAME:HST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Bahia\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0125900\",\n\t\t\tlongitude: \"-0383100\"\n\t\t},\n\t\t\"America/Bahia_Banderas\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0204800\",\n\t\t\tlongitude: \"-1051500\"\n\t\t},\n\t\t\"America/Barbados\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0130600\",\n\t\t\tlongitude: \"-0593700\"\n\t\t},\n\t\t\"America/Belem\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0012700\",\n\t\t\tlongitude: \"-0482900\"\n\t\t},\n\t\t\"America/Belize\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0173000\",\n\t\t\tlongitude: \"-0881200\"\n\t\t},\n\t\t\"America/Blanc-Sablon\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Boa_Vista\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:-04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0024900\",\n\t\t\tlongitude: \"-0604000\"\n\t\t},\n\t\t\"America/Bogota\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:-05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0043600\",\n\t\t\tlongitude: \"-0740500\"\n\t\t},\n\t\t\"America/Boise\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:MDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0433649\",\n\t\t\tlongitude: \"-1161209\"\n\t\t},\n\t\t\"America/Buenos_Aires\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Cambridge_Bay\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:MDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0690650\",\n\t\t\tlongitude: \"-1050310\"\n\t\t},\n\t\t\"America/Campo_Grande\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:-04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0202700\",\n\t\t\tlongitude: \"-0543700\"\n\t\t},\n\t\t\"America/Cancun\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0210500\",\n\t\t\tlongitude: \"-0864600\"\n\t\t},\n\t\t\"America/Caracas\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:-04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0103000\",\n\t\t\tlongitude: \"-0665600\"\n\t\t},\n\t\t\"America/Catamarca\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Cayenne\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0045600\",\n\t\t\tlongitude: \"-0522000\"\n\t\t},\n\t\t\"America/Cayman\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Chicago\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0415100\",\n\t\t\tlongitude: \"-0873900\"\n\t\t},\n\t\t\"America/Chihuahua\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0283800\",\n\t\t\tlongitude: \"-1060500\"\n\t\t},\n\t\t\"America/Ciudad_Juarez\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:MDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0314400\",\n\t\t\tlongitude: \"-1062900\"\n\t\t},\n\t\t\"America/Coral_Harbour\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Cordoba\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Costa_Rica\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0095600\",\n\t\t\tlongitude: \"-0840500\"\n\t\t},\n\t\t\"America/Creston\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Cuiaba\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:-04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0153500\",\n\t\t\tlongitude: \"-0560500\"\n\t\t},\n\t\t\"America/Curacao\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Danmarkshavn\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0764600\",\n\t\t\tlongitude: \"-0184000\"\n\t\t},\n\t\t\"America/Dawson\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0640400\",\n\t\t\tlongitude: \"-1392500\"\n\t\t},\n\t\t\"America/Dawson_Creek\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0554600\",\n\t\t\tlongitude: \"-1201400\"\n\t\t},\n\t\t\"America/Denver\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:MDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0394421\",\n\t\t\tlongitude: \"-1045903\"\n\t\t},\n\t\t\"America/Detroit\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0421953\",\n\t\t\tlongitude: \"-0830245\"\n\t\t},\n\t\t\"America/Dominica\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Edmonton\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:MDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0533300\",\n\t\t\tlongitude: \"-1132800\"\n\t\t},\n\t\t\"America/Eirunepe\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:-05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0064000\",\n\t\t\tlongitude: \"-0695200\"\n\t\t},\n\t\t\"America/El_Salvador\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0134200\",\n\t\t\tlongitude: \"-0891200\"\n\t\t},\n\t\t\"America/Ensenada\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:PDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:PST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Fort_Nelson\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0584800\",\n\t\t\tlongitude: \"-1224200\"\n\t\t},\n\t\t\"America/Fort_Wayne\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Fortaleza\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0034300\",\n\t\t\tlongitude: \"-0383000\"\n\t\t},\n\t\t\"America/Glace_Bay\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:ADT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0461200\",\n\t\t\tlongitude: \"-0595700\"\n\t\t},\n\t\t\"America/Godthab\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0200\\r\\nTZOFFSETTO:-0100\\r\\nTZNAME:-01\\r\\nDTSTART:19700328T230000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0100\\r\\nTZOFFSETTO:-0200\\r\\nTZNAME:-02\\r\\nDTSTART:19701025T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Goose_Bay\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:ADT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"+0532000\",\n\t\t\tlongitude: \"-0602500\"\n\t\t},\n\t\t\"America/Grand_Turk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"+0212800\",\n\t\t\tlongitude: \"-0710800\"\n\t\t},\n\t\t\"America/Grenada\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Guadeloupe\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Guatemala\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0143800\",\n\t\t\tlongitude: \"-0903100\"\n\t\t},\n\t\t\"America/Guayaquil\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:-05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0021000\",\n\t\t\tlongitude: \"-0795000\"\n\t\t},\n\t\t\"America/Guyana\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:-04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0064800\",\n\t\t\tlongitude: \"-0581000\"\n\t\t},\n\t\t\"America/Halifax\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:ADT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0443900\",\n\t\t\tlongitude: \"-0633600\"\n\t\t},\n\t\t\"America/Havana\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"+0230800\",\n\t\t\tlongitude: \"-0822200\"\n\t\t},\n\t\t\"America/Hermosillo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0290400\",\n\t\t\tlongitude: \"-1105800\"\n\t\t},\n\t\t\"America/Indiana/Indianapolis\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0394606\",\n\t\t\tlongitude: \"-0860929\"\n\t\t},\n\t\t\"America/Indiana/Knox\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0411745\",\n\t\t\tlongitude: \"-0863730\"\n\t\t},\n\t\t\"America/Indiana/Marengo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0382232\",\n\t\t\tlongitude: \"-0862041\"\n\t\t},\n\t\t\"America/Indiana/Petersburg\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0382931\",\n\t\t\tlongitude: \"-0871643\"\n\t\t},\n\t\t\"America/Indiana/Tell_City\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0375711\",\n\t\t\tlongitude: \"-0864541\"\n\t\t},\n\t\t\"America/Indiana/Vevay\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0384452\",\n\t\t\tlongitude: \"-0850402\"\n\t\t},\n\t\t\"America/Indiana/Vincennes\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0384038\",\n\t\t\tlongitude: \"-0873143\"\n\t\t},\n\t\t\"America/Indiana/Winamac\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"+0410305\",\n\t\t\tlongitude: \"-0863611\"\n\t\t},\n\t\t\"America/Indianapolis\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Inuvik\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:MDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0682059\",\n\t\t\tlongitude: \"-1334300\"\n\t\t},\n\t\t\"America/Iqaluit\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0634400\",\n\t\t\tlongitude: \"-0682800\"\n\t\t},\n\t\t\"America/Jamaica\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0175805\",\n\t\t\tlongitude: \"-0764736\"\n\t\t},\n\t\t\"America/Jujuy\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Juneau\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0900\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:AKDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0900\\r\\nTZNAME:AKST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0581807\",\n\t\t\tlongitude: \"-1342511\"\n\t\t},\n\t\t\"America/Kentucky/Louisville\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0381515\",\n\t\t\tlongitude: \"-0854534\"\n\t\t},\n\t\t\"America/Kentucky/Monticello\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0364947\",\n\t\t\tlongitude: \"-0845057\"\n\t\t},\n\t\t\"America/Knox_IN\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Kralendijk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/La_Paz\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:-04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0163000\",\n\t\t\tlongitude: \"-0680900\"\n\t\t},\n\t\t\"America/Lima\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:-05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0120300\",\n\t\t\tlongitude: \"-0770300\"\n\t\t},\n\t\t\"America/Los_Angeles\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:PDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:PST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0340308\",\n\t\t\tlongitude: \"-1181434\"\n\t\t},\n\t\t\"America/Louisville\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Lower_Princes\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Maceio\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0094000\",\n\t\t\tlongitude: \"-0354300\"\n\t\t},\n\t\t\"America/Managua\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0120900\",\n\t\t\tlongitude: \"-0861700\"\n\t\t},\n\t\t\"America/Manaus\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:-04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0030800\",\n\t\t\tlongitude: \"-0600100\"\n\t\t},\n\t\t\"America/Marigot\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Martinique\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0143600\",\n\t\t\tlongitude: \"-0610500\"\n\t\t},\n\t\t\"America/Matamoros\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0255000\",\n\t\t\tlongitude: \"-0973000\"\n\t\t},\n\t\t\"America/Mazatlan\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0231300\",\n\t\t\tlongitude: \"-1062500\"\n\t\t},\n\t\t\"America/Mendoza\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Menominee\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0450628\",\n\t\t\tlongitude: \"-0873651\"\n\t\t},\n\t\t\"America/Merida\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0205800\",\n\t\t\tlongitude: \"-0893700\"\n\t\t},\n\t\t\"America/Metlakatla\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0900\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:AKDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0900\\r\\nTZNAME:AKST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0550737\",\n\t\t\tlongitude: \"-1313435\"\n\t\t},\n\t\t\"America/Mexico_City\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0192400\",\n\t\t\tlongitude: \"-0990900\"\n\t\t},\n\t\t\"America/Miquelon\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0200\\r\\nTZNAME:-02\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0200\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0470300\",\n\t\t\tlongitude: \"-0562000\"\n\t\t},\n\t\t\"America/Moncton\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:ADT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0460600\",\n\t\t\tlongitude: \"-0644700\"\n\t\t},\n\t\t\"America/Monterrey\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0254000\",\n\t\t\tlongitude: \"-1001900\"\n\t\t},\n\t\t\"America/Montevideo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0345433\",\n\t\t\tlongitude: \"-0561245\"\n\t\t},\n\t\t\"America/Montreal\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Montserrat\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Nassau\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/New_York\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0404251\",\n\t\t\tlongitude: \"-0740023\"\n\t\t},\n\t\t\"America/Nipigon\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Nome\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0900\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:AKDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0900\\r\\nTZNAME:AKST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0643004\",\n\t\t\tlongitude: \"-1652423\"\n\t\t},\n\t\t\"America/Noronha\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0200\\r\\nTZOFFSETTO:-0200\\r\\nTZNAME:-02\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0035100\",\n\t\t\tlongitude: \"-0322500\"\n\t\t},\n\t\t\"America/North_Dakota/Beulah\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0471551\",\n\t\t\tlongitude: \"-1014640\"\n\t\t},\n\t\t\"America/North_Dakota/Center\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0470659\",\n\t\t\tlongitude: \"-1011757\"\n\t\t},\n\t\t\"America/North_Dakota/New_Salem\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0465042\",\n\t\t\tlongitude: \"-1012439\"\n\t\t},\n\t\t\"America/Nuuk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0200\\r\\nTZOFFSETTO:-0100\\r\\nTZNAME:-01\\r\\nDTSTART:19700328T230000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0100\\r\\nTZOFFSETTO:-0200\\r\\nTZNAME:-02\\r\\nDTSTART:19701025T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0641100\",\n\t\t\tlongitude: \"-0514400\"\n\t\t},\n\t\t\"America/Ojinaga\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0293400\",\n\t\t\tlongitude: \"-1042500\"\n\t\t},\n\t\t\"America/Panama\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0085800\",\n\t\t\tlongitude: \"-0793200\"\n\t\t},\n\t\t\"America/Pangnirtung\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Paramaribo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0055000\",\n\t\t\tlongitude: \"-0551000\"\n\t\t},\n\t\t\"America/Phoenix\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0332654\",\n\t\t\tlongitude: \"-1120424\"\n\t\t},\n\t\t\"America/Port-au-Prince\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0183200\",\n\t\t\tlongitude: \"-0722000\"\n\t\t},\n\t\t\"America/Port_of_Spain\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Porto_Acre\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:-05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Porto_Velho\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:-04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0084600\",\n\t\t\tlongitude: \"-0635400\"\n\t\t},\n\t\t\"America/Puerto_Rico\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0182806\",\n\t\t\tlongitude: \"-0660622\"\n\t\t},\n\t\t\"America/Punta_Arenas\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0530900\",\n\t\t\tlongitude: \"-0705500\"\n\t\t},\n\t\t\"America/Rainy_River\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Rankin_Inlet\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0624900\",\n\t\t\tlongitude: \"-0920459\"\n\t\t},\n\t\t\"America/Recife\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0080300\",\n\t\t\tlongitude: \"-0345400\"\n\t\t},\n\t\t\"America/Regina\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0502400\",\n\t\t\tlongitude: \"-1043900\"\n\t\t},\n\t\t\"America/Resolute\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"+0744144\",\n\t\t\tlongitude: \"-0944945\"\n\t\t},\n\t\t\"America/Rio_Branco\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:-05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0095800\",\n\t\t\tlongitude: \"-0674800\"\n\t\t},\n\t\t\"America/Rosario\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Santa_Isabel\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:PDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:PST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Santarem\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0022600\",\n\t\t\tlongitude: \"-0545200\"\n\t\t},\n\t\t\"America/Santiago\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:-04\\r\\nDTSTART:19700405T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700906T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"-0332700\",\n\t\t\tlongitude: \"-0704000\"\n\t\t},\n\t\t\"America/Santo_Domingo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0182800\",\n\t\t\tlongitude: \"-0695400\"\n\t\t},\n\t\t\"America/Sao_Paulo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0233200\",\n\t\t\tlongitude: \"-0463700\"\n\t\t},\n\t\t\"America/Scoresbysund\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:+00\\r\\nDTSTART:19700329T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:-0100\\r\\nTZNAME:-01\\r\\nDTSTART:19701025T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0702900\",\n\t\t\tlongitude: \"-0215800\"\n\t\t},\n\t\t\"America/Shiprock\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:MDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Sitka\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0900\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:AKDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0900\\r\\nTZNAME:AKST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0571035\",\n\t\t\tlongitude: \"-1351807\"\n\t\t},\n\t\t\"America/St_Barthelemy\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/St_Johns\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0230\\r\\nTZOFFSETTO:-0330\\r\\nTZNAME:NST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0330\\r\\nTZOFFSETTO:-0230\\r\\nTZNAME:NDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"+0473400\",\n\t\t\tlongitude: \"-0524300\"\n\t\t},\n\t\t\"America/St_Kitts\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/St_Lucia\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/St_Thomas\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/St_Vincent\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Swift_Current\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0501700\",\n\t\t\tlongitude: \"-1075000\"\n\t\t},\n\t\t\"America/Tegucigalpa\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0140600\",\n\t\t\tlongitude: \"-0871300\"\n\t\t},\n\t\t\"America/Thule\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:ADT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0763400\",\n\t\t\tlongitude: \"-0684700\"\n\t\t},\n\t\t\"America/Thunder_Bay\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Tijuana\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:PDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:PST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0323200\",\n\t\t\tlongitude: \"-1170100\"\n\t\t},\n\t\t\"America/Toronto\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0433900\",\n\t\t\tlongitude: \"-0792300\"\n\t\t},\n\t\t\"America/Tortola\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Vancouver\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:PDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:PST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0491600\",\n\t\t\tlongitude: \"-1230700\"\n\t\t},\n\t\t\"America/Virgin\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"America/Whitehorse\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0604300\",\n\t\t\tlongitude: \"-1350300\"\n\t\t},\n\t\t\"America/Winnipeg\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0495300\",\n\t\t\tlongitude: \"-0970900\"\n\t\t},\n\t\t\"America/Yakutat\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0900\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:AKDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0900\\r\\nTZNAME:AKST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0593249\",\n\t\t\tlongitude: \"-1394338\"\n\t\t},\n\t\t\"America/Yellowknife\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:MDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Antarctica/Casey\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0661700\",\n\t\t\tlongitude: \"+1103100\"\n\t\t},\n\t\t\"Antarctica/Davis\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0683500\",\n\t\t\tlongitude: \"+0775800\"\n\t\t},\n\t\t\"Antarctica/DumontDUrville\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:+10\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Antarctica/Macquarie\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:AEDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"-0543000\",\n\t\t\tlongitude: \"+1585700\"\n\t\t},\n\t\t\"Antarctica/Mawson\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0673600\",\n\t\t\tlongitude: \"+0625300\"\n\t\t},\n\t\t\"Antarctica/McMurdo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1300\\r\\nTZNAME:NZDT\\r\\nDTSTART:19700927T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1300\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:NZST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Antarctica/Palmer\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0644800\",\n\t\t\tlongitude: \"-0640600\"\n\t\t},\n\t\t\"Antarctica/Rothera\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0673400\",\n\t\t\tlongitude: \"-0680800\"\n\t\t},\n\t\t\"Antarctica/South_Pole\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1300\\r\\nTZNAME:NZDT\\r\\nDTSTART:19700927T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1300\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:NZST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Antarctica/Syowa\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:+03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Antarctica/Troll\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:+02\\r\\nDTSTART:19700329T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:+00\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0720041\",\n\t\t\tlongitude: \"+0023206\"\n\t\t},\n\t\t\"Antarctica/Vostok\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0600\\r\\nTZOFFSETTO:+0600\\r\\nTZNAME:+06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Arctic/Longyearbyen\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Aden\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:+03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Almaty\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0600\\r\\nTZOFFSETTO:+0600\\r\\nTZNAME:+06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0431500\",\n\t\t\tlongitude: \"+0765700\"\n\t\t},\n\t\t\"Asia/Amman\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:+03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0315700\",\n\t\t\tlongitude: \"+0355600\"\n\t\t},\n\t\t\"Asia/Anadyr\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:+12\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0644500\",\n\t\t\tlongitude: \"+1772900\"\n\t\t},\n\t\t\"Asia/Aqtau\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0443100\",\n\t\t\tlongitude: \"+0501600\"\n\t\t},\n\t\t\"Asia/Aqtobe\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0501700\",\n\t\t\tlongitude: \"+0571000\"\n\t\t},\n\t\t\"Asia/Ashgabat\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0375700\",\n\t\t\tlongitude: \"+0582300\"\n\t\t},\n\t\t\"Asia/Ashkhabad\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Atyrau\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0470700\",\n\t\t\tlongitude: \"+0515600\"\n\t\t},\n\t\t\"Asia/Baghdad\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:+03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0332100\",\n\t\t\tlongitude: \"+0442500\"\n\t\t},\n\t\t\"Asia/Bahrain\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:+03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Baku\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0400\\r\\nTZOFFSETTO:+0400\\r\\nTZNAME:+04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0402300\",\n\t\t\tlongitude: \"+0495100\"\n\t\t},\n\t\t\"Asia/Bangkok\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0134500\",\n\t\t\tlongitude: \"+1003100\"\n\t\t},\n\t\t\"Asia/Barnaul\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0532200\",\n\t\t\tlongitude: \"+0834500\"\n\t\t},\n\t\t\"Asia/Beirut\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0335300\",\n\t\t\tlongitude: \"+0353000\"\n\t\t},\n\t\t\"Asia/Bishkek\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0600\\r\\nTZOFFSETTO:+0600\\r\\nTZNAME:+06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0425400\",\n\t\t\tlongitude: \"+0743600\"\n\t\t},\n\t\t\"Asia/Brunei\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:+08\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Calcutta\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0530\\r\\nTZOFFSETTO:+0530\\r\\nTZNAME:IST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Chita\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0900\\r\\nTZOFFSETTO:+0900\\r\\nTZNAME:+09\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0520300\",\n\t\t\tlongitude: \"+1132800\"\n\t\t},\n\t\t\"Asia/Choibalsan\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:+08\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0480400\",\n\t\t\tlongitude: \"+1143000\"\n\t\t},\n\t\t\"Asia/Chongqing\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Chungking\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Colombo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0530\\r\\nTZOFFSETTO:+0530\\r\\nTZNAME:+0530\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0065600\",\n\t\t\tlongitude: \"+0795100\"\n\t\t},\n\t\t\"Asia/Dacca\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0600\\r\\nTZOFFSETTO:+0600\\r\\nTZNAME:+06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Damascus\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:+03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0333000\",\n\t\t\tlongitude: \"+0361800\"\n\t\t},\n\t\t\"Asia/Dhaka\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0600\\r\\nTZOFFSETTO:+0600\\r\\nTZNAME:+06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0234300\",\n\t\t\tlongitude: \"+0902500\"\n\t\t},\n\t\t\"Asia/Dili\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0900\\r\\nTZOFFSETTO:+0900\\r\\nTZNAME:+09\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0083300\",\n\t\t\tlongitude: \"+1253500\"\n\t\t},\n\t\t\"Asia/Dubai\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0400\\r\\nTZOFFSETTO:+0400\\r\\nTZNAME:+04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0251800\",\n\t\t\tlongitude: \"+0551800\"\n\t\t},\n\t\t\"Asia/Dushanbe\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0383500\",\n\t\t\tlongitude: \"+0684800\"\n\t\t},\n\t\t\"Asia/Famagusta\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0350700\",\n\t\t\tlongitude: \"+0335700\"\n\t\t},\n\t\t\"Asia/Gaza\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701031T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SA\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700328T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"+0313000\",\n\t\t\tlongitude: \"+0342800\"\n\t\t},\n\t\t\"Asia/Harbin\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Hebron\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701031T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SA\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700328T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"+0313200\",\n\t\t\tlongitude: \"+0350542\"\n\t\t},\n\t\t\"Asia/Ho_Chi_Minh\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0104500\",\n\t\t\tlongitude: \"+1064000\"\n\t\t},\n\t\t\"Asia/Hong_Kong\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:HKT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0221700\",\n\t\t\tlongitude: \"+1140900\"\n\t\t},\n\t\t\"Asia/Hovd\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0480100\",\n\t\t\tlongitude: \"+0913900\"\n\t\t},\n\t\t\"Asia/Irkutsk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:+08\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0521600\",\n\t\t\tlongitude: \"+1042000\"\n\t\t},\n\t\t\"Asia/Istanbul\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:+03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Jakarta\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:WIB\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0061000\",\n\t\t\tlongitude: \"+1064800\"\n\t\t},\n\t\t\"Asia/Jayapura\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0900\\r\\nTZOFFSETTO:+0900\\r\\nTZNAME:WIT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0023200\",\n\t\t\tlongitude: \"+1404200\"\n\t\t},\n\t\t\"Asia/Jerusalem\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:IDT\\r\\nDTSTART:19700327T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1FR\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:IST\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0314650\",\n\t\t\tlongitude: \"+0351326\"\n\t\t},\n\t\t\"Asia/Kabul\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0430\\r\\nTZOFFSETTO:+0430\\r\\nTZNAME:+0430\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0343100\",\n\t\t\tlongitude: \"+0691200\"\n\t\t},\n\t\t\"Asia/Kamchatka\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:+12\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0530100\",\n\t\t\tlongitude: \"+1583900\"\n\t\t},\n\t\t\"Asia/Karachi\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:PKT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0245200\",\n\t\t\tlongitude: \"+0670300\"\n\t\t},\n\t\t\"Asia/Kashgar\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0600\\r\\nTZOFFSETTO:+0600\\r\\nTZNAME:+06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Kathmandu\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0545\\r\\nTZOFFSETTO:+0545\\r\\nTZNAME:+0545\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0274300\",\n\t\t\tlongitude: \"+0851900\"\n\t\t},\n\t\t\"Asia/Katmandu\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0545\\r\\nTZOFFSETTO:+0545\\r\\nTZNAME:+0545\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Khandyga\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0900\\r\\nTZOFFSETTO:+0900\\r\\nTZNAME:+09\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0623923\",\n\t\t\tlongitude: \"+1353314\"\n\t\t},\n\t\t\"Asia/Kolkata\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0530\\r\\nTZOFFSETTO:+0530\\r\\nTZNAME:IST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0223200\",\n\t\t\tlongitude: \"+0882200\"\n\t\t},\n\t\t\"Asia/Krasnoyarsk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0560100\",\n\t\t\tlongitude: \"+0925000\"\n\t\t},\n\t\t\"Asia/Kuala_Lumpur\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:+08\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Kuching\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:+08\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0013300\",\n\t\t\tlongitude: \"+1102000\"\n\t\t},\n\t\t\"Asia/Kuwait\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:+03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Macao\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Macau\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0221150\",\n\t\t\tlongitude: \"+1133230\"\n\t\t},\n\t\t\"Asia/Magadan\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0593400\",\n\t\t\tlongitude: \"+1504800\"\n\t\t},\n\t\t\"Asia/Makassar\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:WITA\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0050700\",\n\t\t\tlongitude: \"+1192400\"\n\t\t},\n\t\t\"Asia/Manila\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:PST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0143500\",\n\t\t\tlongitude: \"+1210000\"\n\t\t},\n\t\t\"Asia/Muscat\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0400\\r\\nTZOFFSETTO:+0400\\r\\nTZNAME:+04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Nicosia\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"+0351000\",\n\t\t\tlongitude: \"+0332200\"\n\t\t},\n\t\t\"Asia/Novokuznetsk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0534500\",\n\t\t\tlongitude: \"+0870700\"\n\t\t},\n\t\t\"Asia/Novosibirsk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0550200\",\n\t\t\tlongitude: \"+0825500\"\n\t\t},\n\t\t\"Asia/Omsk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0600\\r\\nTZOFFSETTO:+0600\\r\\nTZNAME:+06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0550000\",\n\t\t\tlongitude: \"+0732400\"\n\t\t},\n\t\t\"Asia/Oral\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0511300\",\n\t\t\tlongitude: \"+0512100\"\n\t\t},\n\t\t\"Asia/Phnom_Penh\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Pontianak\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:WIB\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0000200\",\n\t\t\tlongitude: \"+1092000\"\n\t\t},\n\t\t\"Asia/Pyongyang\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0900\\r\\nTZOFFSETTO:+0900\\r\\nTZNAME:KST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0390100\",\n\t\t\tlongitude: \"+1254500\"\n\t\t},\n\t\t\"Asia/Qatar\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:+03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0251700\",\n\t\t\tlongitude: \"+0513200\"\n\t\t},\n\t\t\"Asia/Qostanay\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0600\\r\\nTZOFFSETTO:+0600\\r\\nTZNAME:+06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0531200\",\n\t\t\tlongitude: \"+0633700\"\n\t\t},\n\t\t\"Asia/Qyzylorda\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0444800\",\n\t\t\tlongitude: \"+0652800\"\n\t\t},\n\t\t\"Asia/Rangoon\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0630\\r\\nTZOFFSETTO:+0630\\r\\nTZNAME:+0630\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Riyadh\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:+03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0243800\",\n\t\t\tlongitude: \"+0464300\"\n\t\t},\n\t\t\"Asia/Saigon\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Sakhalin\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0465800\",\n\t\t\tlongitude: \"+1424200\"\n\t\t},\n\t\t\"Asia/Samarkand\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0394000\",\n\t\t\tlongitude: \"+0664800\"\n\t\t},\n\t\t\"Asia/Seoul\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0900\\r\\nTZOFFSETTO:+0900\\r\\nTZNAME:KST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0373300\",\n\t\t\tlongitude: \"+1265800\"\n\t\t},\n\t\t\"Asia/Shanghai\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0311400\",\n\t\t\tlongitude: \"+1212800\"\n\t\t},\n\t\t\"Asia/Singapore\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:+08\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0011700\",\n\t\t\tlongitude: \"+1035100\"\n\t\t},\n\t\t\"Asia/Srednekolymsk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0672800\",\n\t\t\tlongitude: \"+1534300\"\n\t\t},\n\t\t\"Asia/Taipei\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0250300\",\n\t\t\tlongitude: \"+1213000\"\n\t\t},\n\t\t\"Asia/Tashkent\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0412000\",\n\t\t\tlongitude: \"+0691800\"\n\t\t},\n\t\t\"Asia/Tbilisi\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0400\\r\\nTZOFFSETTO:+0400\\r\\nTZNAME:+04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0414300\",\n\t\t\tlongitude: \"+0444900\"\n\t\t},\n\t\t\"Asia/Tehran\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0330\\r\\nTZOFFSETTO:+0330\\r\\nTZNAME:+0330\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0354000\",\n\t\t\tlongitude: \"+0512600\"\n\t\t},\n\t\t\"Asia/Tel_Aviv\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:IDT\\r\\nDTSTART:19700327T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1FR\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:IST\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Thimbu\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0600\\r\\nTZOFFSETTO:+0600\\r\\nTZNAME:+06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Thimphu\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0600\\r\\nTZOFFSETTO:+0600\\r\\nTZNAME:+06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0272800\",\n\t\t\tlongitude: \"+0893900\"\n\t\t},\n\t\t\"Asia/Tokyo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0900\\r\\nTZOFFSETTO:+0900\\r\\nTZNAME:JST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0353916\",\n\t\t\tlongitude: \"+1394441\"\n\t\t},\n\t\t\"Asia/Tomsk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0563000\",\n\t\t\tlongitude: \"+0845800\"\n\t\t},\n\t\t\"Asia/Ujung_Pandang\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:WITA\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Ulaanbaatar\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:+08\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0475500\",\n\t\t\tlongitude: \"+1065300\"\n\t\t},\n\t\t\"Asia/Ulan_Bator\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:+08\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Urumqi\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0600\\r\\nTZOFFSETTO:+0600\\r\\nTZNAME:+06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0434800\",\n\t\t\tlongitude: \"+0873500\"\n\t\t},\n\t\t\"Asia/Ust-Nera\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:+10\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0643337\",\n\t\t\tlongitude: \"+1431336\"\n\t\t},\n\t\t\"Asia/Vientiane\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Asia/Vladivostok\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:+10\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0431000\",\n\t\t\tlongitude: \"+1315600\"\n\t\t},\n\t\t\"Asia/Yakutsk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0900\\r\\nTZOFFSETTO:+0900\\r\\nTZNAME:+09\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0620000\",\n\t\t\tlongitude: \"+1294000\"\n\t\t},\n\t\t\"Asia/Yangon\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0630\\r\\nTZOFFSETTO:+0630\\r\\nTZNAME:+0630\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0164700\",\n\t\t\tlongitude: \"+0961000\"\n\t\t},\n\t\t\"Asia/Yekaterinburg\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0565100\",\n\t\t\tlongitude: \"+0603600\"\n\t\t},\n\t\t\"Asia/Yerevan\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0400\\r\\nTZOFFSETTO:+0400\\r\\nTZNAME:+04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0401100\",\n\t\t\tlongitude: \"+0443000\"\n\t\t},\n\t\t\"Atlantic/Azores\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:+00\\r\\nDTSTART:19700329T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:-0100\\r\\nTZNAME:-01\\r\\nDTSTART:19701025T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0374400\",\n\t\t\tlongitude: \"-0254000\"\n\t\t},\n\t\t\"Atlantic/Bermuda\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:ADT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0321700\",\n\t\t\tlongitude: \"-0644600\"\n\t\t},\n\t\t\"Atlantic/Canary\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WEST\\r\\nDTSTART:19700329T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:WET\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0280600\",\n\t\t\tlongitude: \"-0152400\"\n\t\t},\n\t\t\"Atlantic/Cape_Verde\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0100\\r\\nTZOFFSETTO:-0100\\r\\nTZNAME:-01\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0145500\",\n\t\t\tlongitude: \"-0233100\"\n\t\t},\n\t\t\"Atlantic/Faeroe\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WEST\\r\\nDTSTART:19700329T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:WET\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Atlantic/Faroe\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WEST\\r\\nDTSTART:19700329T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:WET\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0620100\",\n\t\t\tlongitude: \"-0064600\"\n\t\t},\n\t\t\"Atlantic/Jan_Mayen\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Atlantic/Madeira\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WEST\\r\\nDTSTART:19700329T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:WET\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0323800\",\n\t\t\tlongitude: \"-0165400\"\n\t\t},\n\t\t\"Atlantic/Reykjavik\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Atlantic/South_Georgia\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0200\\r\\nTZOFFSETTO:-0200\\r\\nTZNAME:-02\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0541600\",\n\t\t\tlongitude: \"-0363200\"\n\t\t},\n\t\t\"Atlantic/St_Helena\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Atlantic/Stanley\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0514200\",\n\t\t\tlongitude: \"-0575100\"\n\t\t},\n\t\t\"Australia/ACT\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:AEDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Australia/Adelaide\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1030\\r\\nTZOFFSETTO:+0930\\r\\nTZNAME:ACST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0930\\r\\nTZOFFSETTO:+1030\\r\\nTZNAME:ACDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"-0345500\",\n\t\t\tlongitude: \"+1383500\"\n\t\t},\n\t\t\"Australia/Brisbane\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0272800\",\n\t\t\tlongitude: \"+1530200\"\n\t\t},\n\t\t\"Australia/Broken_Hill\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1030\\r\\nTZOFFSETTO:+0930\\r\\nTZNAME:ACST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0930\\r\\nTZOFFSETTO:+1030\\r\\nTZNAME:ACDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"-0315700\",\n\t\t\tlongitude: \"+1412700\"\n\t\t},\n\t\t\"Australia/Canberra\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:AEDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Australia/Currie\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:AEDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Australia/Darwin\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0930\\r\\nTZOFFSETTO:+0930\\r\\nTZNAME:ACST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0122800\",\n\t\t\tlongitude: \"+1305000\"\n\t\t},\n\t\t\"Australia/Eucla\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0845\\r\\nTZOFFSETTO:+0845\\r\\nTZNAME:+0845\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0314300\",\n\t\t\tlongitude: \"+1285200\"\n\t\t},\n\t\t\"Australia/Hobart\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:AEDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0425300\",\n\t\t\tlongitude: \"+1471900\"\n\t\t},\n\t\t\"Australia/LHI\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1030\\r\\nTZNAME:+1030\\r\\nDTSTART:19700405T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1030\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Australia/Lindeman\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0201600\",\n\t\t\tlongitude: \"+1490000\"\n\t\t},\n\t\t\"Australia/Lord_Howe\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1030\\r\\nTZNAME:+1030\\r\\nDTSTART:19700405T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1030\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"-0313300\",\n\t\t\tlongitude: \"+1590500\"\n\t\t},\n\t\t\"Australia/Melbourne\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:AEDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"-0374900\",\n\t\t\tlongitude: \"+1445800\"\n\t\t},\n\t\t\"Australia/NSW\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:AEDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Australia/North\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0930\\r\\nTZOFFSETTO:+0930\\r\\nTZNAME:ACST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Australia/Perth\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:AWST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0315700\",\n\t\t\tlongitude: \"+1155100\"\n\t\t},\n\t\t\"Australia/Queensland\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Australia/South\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1030\\r\\nTZOFFSETTO:+0930\\r\\nTZNAME:ACST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0930\\r\\nTZOFFSETTO:+1030\\r\\nTZNAME:ACDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Australia/Sydney\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:AEDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"-0335200\",\n\t\t\tlongitude: \"+1511300\"\n\t\t},\n\t\t\"Australia/Tasmania\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:AEDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Australia/Victoria\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:AEST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:AEDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Australia/West\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0800\\r\\nTZOFFSETTO:+0800\\r\\nTZNAME:AWST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Australia/Yancowinna\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1030\\r\\nTZOFFSETTO:+0930\\r\\nTZNAME:ACST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0930\\r\\nTZOFFSETTO:+1030\\r\\nTZNAME:ACDT\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Brazil/Acre\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:-05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Brazil/DeNoronha\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0200\\r\\nTZOFFSETTO:-0200\\r\\nTZNAME:-02\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Brazil/East\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Brazil/West\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:-04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Canada/Atlantic\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:ADT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:AST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Canada/Central\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Canada/Eastern\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Canada/Mountain\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:MDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Canada/Newfoundland\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0230\\r\\nTZOFFSETTO:-0330\\r\\nTZNAME:NST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0330\\r\\nTZOFFSETTO:-0230\\r\\nTZNAME:NDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Canada/Pacific\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:PDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:PST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Canada/Saskatchewan\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Canada/Yukon\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Chile/Continental\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0300\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:-04\\r\\nDTSTART:19700405T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0300\\r\\nTZNAME:-03\\r\\nDTSTART:19700906T000000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Chile/EasterIsland\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:-06\\r\\nDTSTART:19700404T220000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SA\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:-05\\r\\nDTSTART:19700905T220000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=1SA\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Amsterdam\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Andorra\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0423000\",\n\t\t\tlongitude: \"+0013100\"\n\t\t},\n\t\t\"Europe/Astrakhan\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0400\\r\\nTZOFFSETTO:+0400\\r\\nTZNAME:+04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0462100\",\n\t\t\tlongitude: \"+0480300\"\n\t\t},\n\t\t\"Europe/Athens\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0375800\",\n\t\t\tlongitude: \"+0234300\"\n\t\t},\n\t\t\"Europe/Belfast\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:BST\\r\\nDTSTART:19700329T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Belgrade\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0445000\",\n\t\t\tlongitude: \"+0203000\"\n\t\t},\n\t\t\"Europe/Berlin\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0523000\",\n\t\t\tlongitude: \"+0132200\"\n\t\t},\n\t\t\"Europe/Bratislava\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Brussels\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0505000\",\n\t\t\tlongitude: \"+0042000\"\n\t\t},\n\t\t\"Europe/Bucharest\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0442600\",\n\t\t\tlongitude: \"+0260600\"\n\t\t},\n\t\t\"Europe/Budapest\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0473000\",\n\t\t\tlongitude: \"+0190500\"\n\t\t},\n\t\t\"Europe/Busingen\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Chisinau\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0470000\",\n\t\t\tlongitude: \"+0285000\"\n\t\t},\n\t\t\"Europe/Copenhagen\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Dublin\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:IST\\r\\nDTSTART:19700329T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"+0532000\",\n\t\t\tlongitude: \"-0061500\"\n\t\t},\n\t\t\"Europe/Gibraltar\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0360800\",\n\t\t\tlongitude: \"-0052100\"\n\t\t},\n\t\t\"Europe/Guernsey\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:BST\\r\\nDTSTART:19700329T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Helsinki\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0601000\",\n\t\t\tlongitude: \"+0245800\"\n\t\t},\n\t\t\"Europe/Isle_of_Man\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:BST\\r\\nDTSTART:19700329T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Istanbul\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:+03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0410100\",\n\t\t\tlongitude: \"+0285800\"\n\t\t},\n\t\t\"Europe/Jersey\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:BST\\r\\nDTSTART:19700329T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Kaliningrad\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0544300\",\n\t\t\tlongitude: \"+0203000\"\n\t\t},\n\t\t\"Europe/Kiev\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Kirov\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:MSK\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0583600\",\n\t\t\tlongitude: \"+0493900\"\n\t\t},\n\t\t\"Europe/Kyiv\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"+0502600\",\n\t\t\tlongitude: \"+0303100\"\n\t\t},\n\t\t\"Europe/Lisbon\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:WET\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:WEST\\r\\nDTSTART:19700329T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"+0384300\",\n\t\t\tlongitude: \"-0090800\"\n\t\t},\n\t\t\"Europe/Ljubljana\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/London\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0000\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:BST\\r\\nDTSTART:19700329T010000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0000\\r\\nTZNAME:GMT\\r\\nDTSTART:19701025T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0513030\",\n\t\t\tlongitude: \"+0000731\"\n\t\t},\n\t\t\"Europe/Luxembourg\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Madrid\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0402400\",\n\t\t\tlongitude: \"-0034100\"\n\t\t},\n\t\t\"Europe/Malta\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0355400\",\n\t\t\tlongitude: \"+0143100\"\n\t\t},\n\t\t\"Europe/Mariehamn\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Minsk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:+03\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0535400\",\n\t\t\tlongitude: \"+0273400\"\n\t\t},\n\t\t\"Europe/Monaco\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Moscow\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:MSK\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0554521\",\n\t\t\tlongitude: \"+0373704\"\n\t\t},\n\t\t\"Europe/Nicosia\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Oslo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Paris\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0485200\",\n\t\t\tlongitude: \"+0022000\"\n\t\t},\n\t\t\"Europe/Podgorica\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Prague\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0500500\",\n\t\t\tlongitude: \"+0142600\"\n\t\t},\n\t\t\"Europe/Riga\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0565700\",\n\t\t\tlongitude: \"+0240600\"\n\t\t},\n\t\t\"Europe/Rome\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0415400\",\n\t\t\tlongitude: \"+0122900\"\n\t\t},\n\t\t\"Europe/Samara\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0400\\r\\nTZOFFSETTO:+0400\\r\\nTZNAME:+04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0531200\",\n\t\t\tlongitude: \"+0500900\"\n\t\t},\n\t\t\"Europe/San_Marino\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Sarajevo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Saratov\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0400\\r\\nTZOFFSETTO:+0400\\r\\nTZNAME:+04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0513400\",\n\t\t\tlongitude: \"+0460200\"\n\t\t},\n\t\t\"Europe/Simferopol\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:MSK\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0445700\",\n\t\t\tlongitude: \"+0340600\"\n\t\t},\n\t\t\"Europe/Skopje\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Sofia\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0424100\",\n\t\t\tlongitude: \"+0231900\"\n\t\t},\n\t\t\"Europe/Stockholm\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Tallinn\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0592500\",\n\t\t\tlongitude: \"+0244500\"\n\t\t},\n\t\t\"Europe/Tirane\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0412000\",\n\t\t\tlongitude: \"+0195000\"\n\t\t},\n\t\t\"Europe/Tiraspol\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Ulyanovsk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0400\\r\\nTZOFFSETTO:+0400\\r\\nTZNAME:+04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0542000\",\n\t\t\tlongitude: \"+0482400\"\n\t\t},\n\t\t\"Europe/Uzhgorod\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Vaduz\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Vatican\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Vienna\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0481300\",\n\t\t\tlongitude: \"+0162000\"\n\t\t},\n\t\t\"Europe/Vilnius\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0544100\",\n\t\t\tlongitude: \"+0251900\"\n\t\t},\n\t\t\"Europe/Volgograd\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:MSK\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0484400\",\n\t\t\tlongitude: \"+0442500\"\n\t\t},\n\t\t\"Europe/Warsaw\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0521500\",\n\t\t\tlongitude: \"+0210000\"\n\t\t},\n\t\t\"Europe/Zagreb\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Zaporozhye\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:EET\\r\\nDTSTART:19701025T040000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EEST\\r\\nDTSTART:19700329T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\"\n\t\t\t]\n\t\t},\n\t\t\"Europe/Zurich\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+0100\\r\\nTZOFFSETTO:+0200\\r\\nTZNAME:CEST\\r\\nDTSTART:19700329T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0200\\r\\nTZOFFSETTO:+0100\\r\\nTZNAME:CET\\r\\nDTSTART:19701025T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0472300\",\n\t\t\tlongitude: \"+0083200\"\n\t\t},\n\t\t\"Indian/Antananarivo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Indian/Chagos\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0600\\r\\nTZOFFSETTO:+0600\\r\\nTZNAME:+06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0072000\",\n\t\t\tlongitude: \"+0722500\"\n\t\t},\n\t\t\"Indian/Christmas\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0700\\r\\nTZOFFSETTO:+0700\\r\\nTZNAME:+07\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Indian/Cocos\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0630\\r\\nTZOFFSETTO:+0630\\r\\nTZNAME:+0630\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Indian/Comoro\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Indian/Kerguelen\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Indian/Mahe\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0400\\r\\nTZOFFSETTO:+0400\\r\\nTZNAME:+04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Indian/Maldives\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0500\\r\\nTZOFFSETTO:+0500\\r\\nTZNAME:+05\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0041000\",\n\t\t\tlongitude: \"+0733000\"\n\t\t},\n\t\t\"Indian/Mauritius\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0400\\r\\nTZOFFSETTO:+0400\\r\\nTZNAME:+04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0201000\",\n\t\t\tlongitude: \"+0573000\"\n\t\t},\n\t\t\"Indian/Mayotte\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0300\\r\\nTZOFFSETTO:+0300\\r\\nTZNAME:EAT\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Indian/Reunion\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0400\\r\\nTZOFFSETTO:+0400\\r\\nTZNAME:+04\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Mexico/BajaNorte\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:PDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:PST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Mexico/BajaSur\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Mexico/General\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Apia\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1300\\r\\nTZOFFSETTO:+1300\\r\\nTZNAME:+13\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0135000\",\n\t\t\tlongitude: \"-1714400\"\n\t\t},\n\t\t\"Pacific/Auckland\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1300\\r\\nTZNAME:NZDT\\r\\nDTSTART:19700927T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1300\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:NZST\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0365200\",\n\t\t\tlongitude: \"+1744600\"\n\t\t},\n\t\t\"Pacific/Bougainville\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0061300\",\n\t\t\tlongitude: \"+1553400\"\n\t\t},\n\t\t\"Pacific/Chatham\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1245\\r\\nTZOFFSETTO:+1345\\r\\nTZNAME:+1345\\r\\nDTSTART:19700927T024500\\r\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1345\\r\\nTZOFFSETTO:+1245\\r\\nTZNAME:+1245\\r\\nDTSTART:19700405T034500\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0435700\",\n\t\t\tlongitude: \"-1763300\"\n\t\t},\n\t\t\"Pacific/Chuuk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:+10\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Easter\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:-06\\r\\nDTSTART:19700404T220000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SA\\r\\nEND:STANDARD\",\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:-05\\r\\nDTSTART:19700905T220000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=1SA\\r\\nEND:DAYLIGHT\"\n\t\t\t],\n\t\t\tlatitude: \"-0270900\",\n\t\t\tlongitude: \"-1092600\"\n\t\t},\n\t\t\"Pacific/Efate\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0174000\",\n\t\t\tlongitude: \"+1682500\"\n\t\t},\n\t\t\"Pacific/Enderbury\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1300\\r\\nTZOFFSETTO:+1300\\r\\nTZNAME:+13\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Fakaofo\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1300\\r\\nTZOFFSETTO:+1300\\r\\nTZNAME:+13\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0092200\",\n\t\t\tlongitude: \"-1711400\"\n\t\t},\n\t\t\"Pacific/Fiji\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:+12\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0180800\",\n\t\t\tlongitude: \"+1782500\"\n\t\t},\n\t\t\"Pacific/Funafuti\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:+12\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Galapagos\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:-06\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0005400\",\n\t\t\tlongitude: \"-0893600\"\n\t\t},\n\t\t\"Pacific/Gambier\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0900\\r\\nTZOFFSETTO:-0900\\r\\nTZNAME:-09\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0230800\",\n\t\t\tlongitude: \"-1345700\"\n\t\t},\n\t\t\"Pacific/Guadalcanal\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0093200\",\n\t\t\tlongitude: \"+1601200\"\n\t\t},\n\t\t\"Pacific/Guam\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:ChST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0132800\",\n\t\t\tlongitude: \"+1444500\"\n\t\t},\n\t\t\"Pacific/Honolulu\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-1000\\r\\nTZOFFSETTO:-1000\\r\\nTZNAME:HST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0211825\",\n\t\t\tlongitude: \"-1575130\"\n\t\t},\n\t\t\"Pacific/Johnston\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-1000\\r\\nTZOFFSETTO:-1000\\r\\nTZNAME:HST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Kanton\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1300\\r\\nTZOFFSETTO:+1300\\r\\nTZNAME:+13\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0024700\",\n\t\t\tlongitude: \"-1714300\"\n\t\t},\n\t\t\"Pacific/Kiritimati\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1400\\r\\nTZOFFSETTO:+1400\\r\\nTZNAME:+14\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0015200\",\n\t\t\tlongitude: \"-1572000\"\n\t\t},\n\t\t\"Pacific/Kosrae\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0051900\",\n\t\t\tlongitude: \"+1625900\"\n\t\t},\n\t\t\"Pacific/Kwajalein\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:+12\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0090500\",\n\t\t\tlongitude: \"+1672000\"\n\t\t},\n\t\t\"Pacific/Majuro\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:+12\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Marquesas\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0930\\r\\nTZOFFSETTO:-0930\\r\\nTZNAME:-0930\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0090000\",\n\t\t\tlongitude: \"-1393000\"\n\t\t},\n\t\t\"Pacific/Midway\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-1100\\r\\nTZOFFSETTO:-1100\\r\\nTZNAME:SST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Nauru\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:+12\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0003100\",\n\t\t\tlongitude: \"+1665500\"\n\t\t},\n\t\t\"Pacific/Niue\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-1100\\r\\nTZOFFSETTO:-1100\\r\\nTZNAME:-11\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0190100\",\n\t\t\tlongitude: \"-1695500\"\n\t\t},\n\t\t\"Pacific/Norfolk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:+12\\r\\nDTSTART:19701004T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19700405T030000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0290300\",\n\t\t\tlongitude: \"+1675800\"\n\t\t},\n\t\t\"Pacific/Noumea\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0221600\",\n\t\t\tlongitude: \"+1662700\"\n\t\t},\n\t\t\"Pacific/Pago_Pago\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-1100\\r\\nTZOFFSETTO:-1100\\r\\nTZNAME:SST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0141600\",\n\t\t\tlongitude: \"-1704200\"\n\t\t},\n\t\t\"Pacific/Palau\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+0900\\r\\nTZOFFSETTO:+0900\\r\\nTZNAME:+09\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0072000\",\n\t\t\tlongitude: \"+1342900\"\n\t\t},\n\t\t\"Pacific/Pitcairn\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:-08\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0250400\",\n\t\t\tlongitude: \"-1300500\"\n\t\t},\n\t\t\"Pacific/Pohnpei\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Ponape\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1100\\r\\nTZOFFSETTO:+1100\\r\\nTZNAME:+11\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Port_Moresby\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:+10\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0093000\",\n\t\t\tlongitude: \"+1471000\"\n\t\t},\n\t\t\"Pacific/Rarotonga\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-1000\\r\\nTZOFFSETTO:-1000\\r\\nTZNAME:-10\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0211400\",\n\t\t\tlongitude: \"-1594600\"\n\t\t},\n\t\t\"Pacific/Saipan\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:ChST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Samoa\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-1100\\r\\nTZOFFSETTO:-1100\\r\\nTZNAME:SST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Tahiti\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-1000\\r\\nTZOFFSETTO:-1000\\r\\nTZNAME:-10\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0173200\",\n\t\t\tlongitude: \"-1493400\"\n\t\t},\n\t\t\"Pacific/Tarawa\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:+12\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"+0012500\",\n\t\t\tlongitude: \"+1730000\"\n\t\t},\n\t\t\"Pacific/Tongatapu\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1300\\r\\nTZOFFSETTO:+1300\\r\\nTZNAME:+13\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t],\n\t\t\tlatitude: \"-0210800\",\n\t\t\tlongitude: \"-1751200\"\n\t\t},\n\t\t\"Pacific/Truk\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:+10\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Wake\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:+12\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Wallis\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1200\\r\\nTZOFFSETTO:+1200\\r\\nTZNAME:+12\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"Pacific/Yap\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:+1000\\r\\nTZOFFSETTO:+1000\\r\\nTZNAME:+10\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"US/Alaska\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0900\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:AKDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0900\\r\\nTZNAME:AKST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"US/Aleutian\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-1000\\r\\nTZOFFSETTO:-0900\\r\\nTZNAME:HDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0900\\r\\nTZOFFSETTO:-1000\\r\\nTZNAME:HST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"US/Arizona\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"US/Central\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"US/East-Indiana\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"US/Eastern\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"US/Hawaii\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-1000\\r\\nTZOFFSETTO:-1000\\r\\nTZNAME:HST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"US/Indiana-Starke\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:CDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:CST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"US/Michigan\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0500\\r\\nTZOFFSETTO:-0400\\r\\nTZNAME:EDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0400\\r\\nTZOFFSETTO:-0500\\r\\nTZNAME:EST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"US/Mountain\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0600\\r\\nTZNAME:MDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0600\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:MST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"US/Pacific\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:DAYLIGHT\\r\\nTZOFFSETFROM:-0800\\r\\nTZOFFSETTO:-0700\\r\\nTZNAME:PDT\\r\\nDTSTART:19700308T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\r\\nEND:DAYLIGHT\",\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-0700\\r\\nTZOFFSETTO:-0800\\r\\nTZNAME:PST\\r\\nDTSTART:19701101T020000\\r\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t},\n\t\t\"US/Samoa\": {\n\t\t\tics: [\n\t\t\t\t\"BEGIN:STANDARD\\r\\nTZOFFSETFROM:-1100\\r\\nTZOFFSETTO:-1100\\r\\nTZNAME:SST\\r\\nDTSTART:19700101T000000\\r\\nEND:STANDARD\"\n\t\t\t]\n\t\t}\n\t};\n\tvar tzData = {\n\t\tversion: version,\n\t\taliases: aliases,\n\t\tzones: zones\n\t};\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class TimezoneManager\n\t */\n\tclass TimezoneManager {\n\t /**\n\t * Constructor\n\t */\n\t constructor() {\n\t /**\n\t * Map of aliases\n\t * Alias name => timezoneId\n\t *\n\t * @type {Map<string, string>}\n\t */\n\t this._aliases = new Map();\n\n\t /**\n\t * Map of Timezones\n\t * timezoneId => Timezone\n\t *\n\t * @type {Map<string, Timezone>}\n\t * @private\n\t */\n\t this._timezones = new Map();\n\t }\n\n\t /**\n\t * Gets a timezone for the given id\n\t *\n\t * @param {string} timezoneId The id of the timezone\n\t * @return {Timezone|null}\n\t */\n\t getTimezoneForId(timezoneId) {\n\t return this._getTimezoneForIdRec(timezoneId, 0);\n\t }\n\t _getTimezoneForIdRec(timezoneId, level) {\n\t if (this._timezones.has(timezoneId)) {\n\t return this._timezones.get(timezoneId);\n\t }\n\t if (level >= 20) {\n\t // too much recursion\n\t console.error('TimezoneManager.getTimezoneForIdRec() exceeds recursion limits');\n\t return null;\n\t }\n\t if (this._aliases.has(timezoneId)) {\n\t const resolvedTimezoneId = this._aliases.get(timezoneId);\n\t // can be a recursive alias:\n\t return this._getTimezoneForIdRec(resolvedTimezoneId, level + 1);\n\t }\n\t return null;\n\t }\n\n\t /**\n\t * Checks if there is a timezone for the given id stored in this manager\n\t *\n\t * @param {string} timezoneId The id of the timezone\n\t * @return {boolean}\n\t */\n\t hasTimezoneForId(timezoneId) {\n\t return this._timezones.has(timezoneId) || this._aliases.has(timezoneId);\n\t }\n\n\t /**\n\t * Checks if the given timezone id is an alias\n\t *\n\t * @param {string} timezoneId The id of the timezone\n\t * @return {boolean}\n\t */\n\t isAlias(timezoneId) {\n\t return !this._timezones.has(timezoneId) && this._aliases.has(timezoneId);\n\t }\n\n\t /**\n\t * Lists all timezones\n\t *\n\t * @param {boolean=} includeAliases Whether or not to include aliases\n\t * @return {string[]}\n\t */\n\t listAllTimezones(includeAliases = false) {\n\t const timezones = Array.from(this._timezones.keys());\n\t if (includeAliases) {\n\t return timezones.concat(Array.from(this._aliases.keys()));\n\t }\n\t return timezones;\n\t }\n\n\t /**\n\t * Registers a timezone\n\t *\n\t * @param {Timezone} timezone The timezone-object to register\n\t */\n\t registerTimezone(timezone) {\n\t this._timezones.set(timezone.timezoneId, timezone);\n\t }\n\t registerDefaultTimezones() {\n\t console.debug(`@nextcloud/calendar-js app is using version ${tzData.version} of the timezone database`);\n\t for (const tzid in tzData.zones) {\n\t if (Object.prototype.hasOwnProperty.call(tzData.zones, [tzid])) {\n\t const ics = ['BEGIN:VTIMEZONE', 'TZID:' + tzid, ...tzData.zones[tzid].ics, 'END:VTIMEZONE'].join('\\r\\n');\n\t this.registerTimezoneFromICS(tzid, ics);\n\t }\n\t }\n\t for (const tzid in tzData.aliases) {\n\t if (Object.prototype.hasOwnProperty.call(tzData.aliases, [tzid])) {\n\t this.registerAlias(tzid, tzData.aliases[tzid].aliasTo);\n\t }\n\t }\n\t }\n\n\t /**\n\t * Registers a timezone based on ics data\n\t *\n\t * @param {string} timezoneId The id of the timezone\n\t * @param {string} ics The iCalendar timezone definition\n\t */\n\t registerTimezoneFromICS(timezoneId, ics) {\n\t const timezone = new Timezone(timezoneId, ics);\n\t this.registerTimezone(timezone);\n\t }\n\n\t /**\n\t * Registers a new timezone-alias\n\t *\n\t * @param {string} aliasName The timezone-id of the alias\n\t * @param {string} timezoneId The timezone-id to resolve the alias to\n\t */\n\t registerAlias(aliasName, timezoneId) {\n\t this._aliases.set(aliasName, timezoneId);\n\t }\n\n\t /**\n\t * Unregisters a timezone\n\t *\n\t * @param {string} timezoneId Unregisters a timezone by Id\n\t */\n\t unregisterTimezones(timezoneId) {\n\t this._timezones.delete(timezoneId);\n\t }\n\n\t /**\n\t * Unregisters a timezone-alias\n\t *\n\t * @param {string} aliasName The alias to unregister\n\t */\n\t unregisterAlias(aliasName) {\n\t this._aliases.delete(aliasName);\n\t }\n\n\t /**\n\t * Clear all timezones\n\t */\n\t clearAllTimezones() {\n\t this._aliases = new Map();\n\t this._timezones = new Map();\n\t timezoneManager.registerTimezone(Timezone.utc);\n\t timezoneManager.registerTimezone(Timezone.floating);\n\t timezoneManager.registerAlias('GMT', Timezone.utc.timezoneId);\n\t timezoneManager.registerAlias('Z', Timezone.utc.timezoneId);\n\t }\n\t}\n\tconst timezoneManager = new TimezoneManager();\n\ttimezoneManager.clearAllTimezones();\n\n\t/**\n\t * Gets the default instance of the timezone manager\n\t *\n\t * @return {TimezoneManager}\n\t */\n\tfunction getTimezoneManager() {\n\t return timezoneManager;\n\t}\n\n\t/**\n\t *\n\t * @param {string} tzName Name of the timezone to check\n\t * @return {boolean}\n\t */\n\tfunction isOlsonTimezone(tzName) {\n\t const hasSlash = tzName.indexOf('/') !== -1;\n\t const hasSpace = tzName.indexOf(' ') !== -1;\n\t const startsWithETC = tzName.startsWith('Etc');\n\t const startsWithUS = tzName.startsWith('US/');\n\t return hasSlash && !hasSpace && !startsWithETC && !startsWithUS;\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class ICalendarParser\n\t * @classdesc\n\t */\n\tclass ICalendarParser extends AbstractParser {\n\t /**\n\t * @inheritDoc\n\t */\n\t constructor(...args) {\n\t super(...args);\n\n\t /**\n\t * The raw text/calendar data\n\t *\n\t * @type {string}\n\t * @protected\n\t */\n\t this._rawData = null;\n\n\t /**\n\t * The CalendarComponent representing the raw data\n\t *\n\t * @type {CalendarComponent}\n\t * @protected\n\t */\n\t this._calendarComponent = null;\n\n\t /**\n\t * A flag whether this calendar-data contains vevents\n\t *\n\t * @type {boolean}\n\t * @private\n\t */\n\t this._containsVEvents = false;\n\n\t /**\n\t * A flag whether this calendar-data contains vjournals\n\t *\n\t * @type {boolean}\n\t * @private\n\t */\n\t this._containsVJournals = false;\n\n\t /**\n\t * A flag whether this calendar-data contains vtodos\n\t *\n\t * @type {boolean}\n\t * @private\n\t */\n\t this._containsVTodos = false;\n\n\t /**\n\t * A flag whether this calendar-data contains vfreebusy\n\t *\n\t * @type {boolean}\n\t * @private\n\t */\n\t this._containsVFreeBusy = false;\n\n\t /**\n\t * A map containing all VObjects.\n\t * The key of this map is the UID\n\t * The value an array of all VObjects with that particular UID\n\t *\n\t * @type {Map<string, AbstractRecurringComponent[]>}\n\t * @private\n\t */\n\t this._items = new Map();\n\n\t /**\n\t * Items that are no recurrence-exceptions\n\t * The key of this map is the UID\n\t *\n\t * @type {Map<string, AbstractRecurringComponent>}\n\t * @private\n\t */\n\t this._masterItems = new Map();\n\n\t /**\n\t * Items that are recurrence exceptions\n\t *\n\t * @type {Map<string, AbstractRecurringComponent[]>}\n\t * @private\n\t */\n\t this._recurrenceExceptionItems = new Map();\n\n\t /**\n\t * Some recurrence-exceptions come without a master item\n\t * In that case we need to forge a master item\n\t *\n\t * @type {Map<string, AbstractRecurringComponent>}\n\t * @private\n\t */\n\t this._forgedMasterItems = new Map();\n\n\t /**\n\t * A list of timezone-components found in the calendar-data\n\t *\n\t * @type {Map<string, Timezone>}\n\t * @private\n\t */\n\t this._timezones = new Map();\n\n\t /**\n\t * A set of required timezones for each UID\n\t *\n\t * @type {Map<string, Set<string>>}\n\t * @private\n\t */\n\t this._requiredTimezones = new Map();\n\n\t /**\n\t * Instance of the default timezone-manager\n\t *\n\t * @type {TimezoneManager}\n\t * @private\n\t */\n\t this._defaultTimezoneManager = getTimezoneManager();\n\t }\n\n\t /**\n\t * Parses the actual calendar-data\n\t *\n\t * @param {string} ics The icalendar data to parse\n\t */\n\t parse(ics) {\n\t this._rawData = ics;\n\t this._applyRepairSteps();\n\n\t // If a timezone is not inside our TimezoneManager at the time of parsing\n\t // the internal zone will be marked as floating inside ICAL.Time\n\t // so before we start any actual parsing, we need to extract all timezones\n\t // and add them to the TimezoneManager\n\t this._extractTimezones();\n\t this._registerTimezones();\n\t this._createCalendarComponent();\n\t if (this._getOption('extractGlobalProperties', false)) {\n\t this._extractProperties();\n\t }\n\t this._processVObjects();\n\t if (this._getOption('processFreeBusy', false)) {\n\t this._processVFreeBusy();\n\t }\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t *getItemIterator() {\n\t for (const itemList of this._items.values()) {\n\t const calendarComp = CalendarComponent.fromEmpty();\n\t if (this._getOption('includeTimezones', false)) {\n\t this._addRequiredTimezonesToCalendarComp(calendarComp, itemList[0].uid);\n\t }\n\n\t // Preserve the original product id, just in case we need special handling for certain clients later on ...\n\t if (this._calendarComponent.hasProperty('PRODID')) {\n\t calendarComp.deleteAllProperties('PRODID');\n\t calendarComp.addProperty(this._calendarComponent.getFirstProperty('PRODID').clone());\n\t }\n\t if (this._getOption('preserveMethod', false)) {\n\t if (this._calendarComponent.hasProperty('METHOD')) {\n\t calendarComp.deleteAllProperties('METHOD');\n\t calendarComp.addProperty(this._calendarComponent.getFirstProperty('METHOD').clone());\n\t }\n\t }\n\t for (const item of itemList) {\n\t calendarComp.addComponent(item);\n\t }\n\t yield calendarComp;\n\t }\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t containsVEvents() {\n\t return this._containsVEvents;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t containsVJournals() {\n\t return this._containsVJournals;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t containsVTodos() {\n\t return this._containsVTodos;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t containsVFreeBusy() {\n\t return this._containsVFreeBusy;\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t getItemCount() {\n\t return Array.from(this._items.keys()).length;\n\t }\n\n\t /**\n\t * Applies all registered repair steps\n\t *\n\t * @private\n\t */\n\t _applyRepairSteps() {\n\t for (const RepairStep of getRepairSteps()) {\n\t const step = new RepairStep();\n\t this._rawData = step.repair(this._rawData);\n\t }\n\t }\n\n\t /**\n\t * Creates a calendar component based upon the repaired data\n\t *\n\t * @private\n\t */\n\t _createCalendarComponent() {\n\t const jCal = ICAL.parse(this._rawData);\n\t const icalComp = new ICAL.Component(jCal);\n\t this._calendarComponent = CalendarComponent.fromICALJs(icalComp);\n\t }\n\n\t /**\n\t * extracts properties\n\t *\n\t * @protected\n\t */\n\t _extractProperties() {\n\t this._extractPropertyAndPutResultIntoVariable(['name', 'x-wr-calname'], '_name');\n\t this._extractPropertyAndPutResultIntoVariable(['color', 'x-apple-calendar-color'], '_color');\n\t this._extractPropertyAndPutResultIntoVariable(['source'], '_sourceURL');\n\t this._extractPropertyAndPutResultIntoVariable(['refresh-interval', 'x-published-ttl'], '_refreshInterval');\n\t this._extractPropertyAndPutResultIntoVariable(['x-wr-timezone'], '_calendarTimezone');\n\t }\n\n\t /**\n\t * Extract a property and writes it into a class property\n\t * names must be an array, it will use the value of the fist\n\t * propertyname it can find\n\t *\n\t * @param {string[]} names The names of the properties to check\n\t * @param {string} variableName The variable name to save it under\n\t * @private\n\t */\n\t _extractPropertyAndPutResultIntoVariable(names, variableName) {\n\t for (const name of names) {\n\t if (this._calendarComponent.hasProperty(name)) {\n\t this[variableName] = this._calendarComponent.getFirstPropertyFirstValue(name);\n\t return;\n\t }\n\t }\n\t }\n\n\t /**\n\t * Extracts timezones from the calendar component\n\t *\n\t * @protected\n\t */\n\t _extractTimezones() {\n\t const matches = this._rawData.match(/^BEGIN:VTIMEZONE$(((?!^END:VTIMEZONE$)(.|\\n))*)^END:VTIMEZONE$\\n/gm);\n\t if (!matches) {\n\t return;\n\t }\n\t for (const match of matches) {\n\t const tzidMatcher = match.match(/^TZID:(.*)$/gm);\n\t if (!tzidMatcher) {\n\t continue;\n\t }\n\t const tzid = tzidMatcher[0].slice(5);\n\t const timezone = new Timezone(tzid, match);\n\t this._timezones.set(tzid, timezone);\n\t }\n\t }\n\n\t /**\n\t * Registers unknown timezones into our timezone-manager\n\t *\n\t * @protected\n\t */\n\t _registerTimezones() {\n\t for (const [tzid, timezone] of this._timezones) {\n\t if (!this._defaultTimezoneManager.hasTimezoneForId(tzid)) {\n\t this._defaultTimezoneManager.registerTimezone(timezone);\n\t }\n\t }\n\t }\n\n\t /**\n\t * Processes the parsed vobjects\n\t *\n\t * @protected\n\t */\n\t _processVObjects() {\n\t for (const vObject of this._calendarComponent.getVObjectIterator()) {\n\t this._addItem(vObject);\n\t this._markCompTypeAsSeen(vObject.name);\n\t if (vObject.isRecurrenceException()) {\n\t this._addRecurrenceException(vObject);\n\t } else {\n\t vObject.recurrenceManager = new RecurrenceManager(vObject);\n\t this._masterItems.set(vObject.uid, vObject);\n\t }\n\t for (const propertyToCheck of vObject.getPropertyIterator()) {\n\t for (const value of propertyToCheck.getValueIterator()) {\n\t if (value instanceof DateTimeValue && value.timezoneId) {\n\t this._addRequiredTimezone(vObject.uid, value.timezoneId);\n\t }\n\t }\n\t }\n\n\t // TRIGGER is supposed to be stored in UTC only,\n\t // but not all clients stick to this\n\t for (const alarm of vObject.getAlarmIterator()) {\n\t for (const propertyToCheck of alarm.getPropertyIterator()) {\n\t for (const value of propertyToCheck.getValueIterator()) {\n\t if (value instanceof DateTimeValue && value.timezoneId) {\n\t this._addRequiredTimezone(vObject.uid, value.timezoneId);\n\t }\n\t }\n\t }\n\t }\n\t if (this._getOption('removeRSVPForAttendees', false)) {\n\t for (const attendee of vObject.getAttendeeIterator()) {\n\t attendee.deleteParameter('RSVP');\n\t }\n\t }\n\t }\n\t for (const recurrenceExceptionList of this._recurrenceExceptionItems.values()) {\n\t for (const recurrenceException of recurrenceExceptionList) {\n\t // Check if there is a master item for this recurrence exception\n\t // otherwise we have to forge one\n\t if (!this._masterItems.has(recurrenceException.uid)) {\n\t const constructor = getConstructorForComponentName(recurrenceException.name);\n\t const forgedMaster = new constructor(recurrenceException.name, [['UID', recurrenceException.uid], ['DTSTAMP', recurrenceException.stampTime.clone()], ['DTSTART', recurrenceException.recurrenceId.clone()]]);\n\t forgedMaster.recurrenceManager = new RecurrenceManager(forgedMaster);\n\t this._forgedMasterItems.set(recurrenceException.uid, forgedMaster);\n\t this._masterItems.set(recurrenceException.uid, forgedMaster);\n\t this._addItem(forgedMaster);\n\t } else {\n\t const master = this._masterItems.get(recurrenceException.uid);\n\n\t // This should usually not be the case,\n\t // only if the calendar-data is seriously broken.\n\t // Let's try to handle it anyway by adding it to\n\t // forgedMasterItems, we will simply add RDATEs\n\t // in the next step to make it recur\n\t if (!master.isRecurring()) {\n\t this._forgedMasterItems.set(master.uid, master);\n\t }\n\t }\n\t if (this._forgedMasterItems.has(recurrenceException.uid)) {\n\t const forgedMaster = this._forgedMasterItems.get(recurrenceException.uid);\n\t forgedMaster.recurrenceManager.addRecurrenceDate(false, recurrenceException.recurrenceId.clone());\n\t }\n\t const masterItem = this._masterItems.get(recurrenceException.uid);\n\t masterItem.recurrenceManager.relateRecurrenceException(recurrenceException);\n\t }\n\t }\n\t }\n\n\t /**\n\t * Process FreeBusy components\n\t *\n\t * @private\n\t */\n\t _processVFreeBusy() {\n\t for (const vObject of this._calendarComponent.getFreebusyIterator()) {\n\t this._addItem(vObject);\n\t this._markCompTypeAsSeen(vObject.name);\n\t for (const propertyToCheck of vObject.getPropertyIterator()) {\n\t for (const value of propertyToCheck.getValueIterator()) {\n\t if (value instanceof DateTimeValue && value.timezoneId) {\n\t this._addRequiredTimezone(vObject.uid, value.timezoneId);\n\t }\n\t }\n\t }\n\t }\n\t }\n\n\t /**\n\t *\n\t * @param {AbstractRecurringComponent} item The recurrence-item to register\n\t * @private\n\t */\n\t _addRecurrenceException(item) {\n\t if (this._recurrenceExceptionItems.has(item.uid)) {\n\t const arr = this._recurrenceExceptionItems.get(item.uid);\n\t arr.push(item);\n\t } else {\n\t this._recurrenceExceptionItems.set(item.uid, [item]);\n\t }\n\t }\n\n\t /**\n\t *\n\t * @param {AbstractRecurringComponent} item The item to register\n\t * @private\n\t */\n\t _addItem(item) {\n\t if (this._items.has(item.uid)) {\n\t const arr = this._items.get(item.uid);\n\t arr.push(item);\n\t } else {\n\t this._items.set(item.uid, [item]);\n\t }\n\t }\n\n\t /**\n\t *\n\t * @param {string} uid The uid of the calendar-object\n\t * @param {string} timezoneId The timezoneId required by the object\n\t * @private\n\t */\n\t _addRequiredTimezone(uid, timezoneId) {\n\t if (timezoneId === 'UTC' || timezoneId === 'floating' || timezoneId === 'GMT' || timezoneId === 'Z') {\n\t return;\n\t }\n\t if (this._requiredTimezones.has(uid)) {\n\t this._requiredTimezones.get(uid).add(timezoneId);\n\t } else {\n\t const set = new Set([timezoneId]);\n\t this._requiredTimezones.set(uid, set);\n\t }\n\t }\n\n\t /**\n\t *\n\t * @param {CalendarComponent} calendarComp The calendar-component to add timezones to\n\t * @param {string} uid The UID of the calendar-object\n\t * @private\n\t */\n\t _addRequiredTimezonesToCalendarComp(calendarComp, uid) {\n\t if (!this._requiredTimezones.has(uid)) {\n\t return;\n\t }\n\t for (const requiredTimezone of this._requiredTimezones.get(uid)) {\n\t if (!this._defaultTimezoneManager.hasTimezoneForId(requiredTimezone)) {\n\t return;\n\t }\n\t const timezone = this._defaultTimezoneManager.getTimezoneForId(requiredTimezone);\n\t // Is this an alias?\n\t if (timezone.timezoneId !== requiredTimezone) {\n\t this._replaceTimezoneWithAnotherOne(calendarComp, requiredTimezone, timezone.timezoneId);\n\t }\n\t const timezoneComponent = TimezoneComponent.fromICALJs(timezone.toICALJs());\n\t calendarComp.addComponent(timezoneComponent);\n\t }\n\t }\n\n\t /**\n\t * Replaces all occurrences of searchTimezone with replaceTimezone\n\t *\n\t * @param {CalendarComponent} calendarComponent The calendar-component to replace a timezone in\n\t * @param {string} searchTimezone The timezone to replace\n\t * @param {string} replaceTimezone The replacement timezone\n\t * @private\n\t */\n\t _replaceTimezoneWithAnotherOne(calendarComponent, searchTimezone, replaceTimezone) {\n\t for (const vObject of this._calendarComponent.getVObjectIterator()) {\n\t for (const propertyToCheck of vObject.getPropertyIterator()) {\n\t for (const value of propertyToCheck.getValueIterator()) {\n\t if (!(value instanceof DateTimeValue)) {\n\t continue;\n\t }\n\t if (value.timezoneId === searchTimezone) {\n\t value.silentlyReplaceTimezone(replaceTimezone);\n\t }\n\t }\n\t }\n\n\t // TRIGGER is supposed to be stored in UTC only,\n\t // but not all clients stick to this\n\t for (const alarm of vObject.getAlarmIterator()) {\n\t for (const propertyToCheck of alarm.getPropertyIterator()) {\n\t for (const value of propertyToCheck.getValueIterator()) {\n\t if (!(value instanceof DateTimeValue)) {\n\t continue;\n\t }\n\t if (value.timezoneId === searchTimezone) {\n\t value.silentlyReplaceTimezone(replaceTimezone);\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }\n\n\t /**\n\t * Marks a certain component type as seen.\n\t * This is used for\n\t * containsVEvents()\n\t * containsVJournals()\n\t * containsVTodos()\n\t *\n\t * @param {string} compName The name of the visited component\n\t * @private\n\t */\n\t _markCompTypeAsSeen(compName) {\n\t switch (uc(compName)) {\n\t case 'VEVENT':\n\t this._containsVEvents = true;\n\t break;\n\t case 'VJOURNAL':\n\t this._containsVJournals = true;\n\t break;\n\t case 'VTODO':\n\t this._containsVTodos = true;\n\t break;\n\t case 'VFREEBUSY':\n\t this._containsVFreeBusy = true;\n\t break;\n\t }\n\t }\n\n\t /**\n\t * @inheritDoc\n\t */\n\t static getMimeTypes() {\n\t return ['text/calendar'];\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class ParserManager\n\t * @classdesc\n\t */\n\tclass ParserManager {\n\t /**\n\t * Constructor\n\t */\n\t constructor() {\n\t /**\n\t * List of supported parsers\n\t *\n\t * @type {Function[]}\n\t */\n\t this._parsers = [];\n\t }\n\n\t /**\n\t * Get a list of all supported file-types\n\t *\n\t * @return {string[]}\n\t */\n\t getAllSupportedFileTypes() {\n\t return this._parsers.reduce((allFileTypes, parser) => allFileTypes.concat(parser.getMimeTypes()), []);\n\t }\n\n\t /**\n\t * Get an instance of a parser for one specific file-type\n\t *\n\t * @param {string} fileType The mime-type to get a parser for\n\t * @param {object=} options Options destructuring object\n\t * @param {boolean=} options.extractGlobalProperties Whether or not to preserve properties from the VCALENDAR component (defaults to false)\n\t * @param {boolean=} options.removeRSVPForAttendees Whether or not to remove RSVP from attendees (defaults to false)\n\t * @param {boolean=} options.includeTimezones Whether or not to include timezones (defaults to false)\n\t * @param {boolean=} options.preserveMethod Whether or not to preserve the iCalendar method (defaults to false)\n\t * @param {boolean=} options.processFreeBusy Whether or not to process VFreeBusy components (defaults to false)\n\t *\n\t * @return {AbstractParser}\n\t */\n\t getParserForFileType(fileType, options) {\n\t const Parser = this._parsers.find(parser => parser.getMimeTypes().includes(fileType));\n\t if (!Parser) {\n\t throw new TypeError('Unknown file-type.');\n\t }\n\t return new Parser(options);\n\t }\n\n\t /**\n\t * Registers a parser\n\t *\n\t * @param {Function} parser The parser to register\n\t */\n\t registerParser(parser) {\n\t this._parsers.push(parser);\n\t }\n\t}\n\n\t/**\n\t * Gets an instance of the ParserManager with all default parsers\n\t *\n\t * @return {ParserManager}\n\t */\n\tfunction getParserManager() {\n\t const parserManager = new ParserManager();\n\n\t // We only support iCalendar for now.\n\t // JSON calendar and CSV will be supported soon,\n\t // but require some more work\n\n\t parserManager.registerParser(ICalendarParser);\n\t // parserManager.registerParser(JCalendarParser)\n\t // parserManager.registerParser(CSVParser)\n\n\t return parserManager;\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t * @class TimezoneAdapter\n\t * @classdesc Connecting ICAL.TimezoneService with our TimezoneManager\n\t */\n\tclass TimezoneAdapter {\n\t /**\n\t * Constructor\n\t *\n\t * @param {TimezoneManager} timezoneManager The timezone-manager to wrap\n\t */\n\t constructor(timezoneManager) {\n\t /**\n\t * TimezoneManager object\n\t *\n\t * @type {TimezoneManager}\n\t * @private\n\t */\n\t this._timezoneManager = timezoneManager;\n\t }\n\n\t /**\n\t * @param {string} timezoneId The id of the timezone\n\t * @return {boolean}\n\t */\n\t has(timezoneId) {\n\t return this._timezoneManager.hasTimezoneForId(timezoneId);\n\t }\n\n\t /**\n\t * @param {string} timezoneId The id of the timezone\n\t * @return {ICAL.Timezone|undefined}\n\t */\n\t get(timezoneId) {\n\t const timezone = this._timezoneManager.getTimezoneForId(timezoneId);\n\t if (!timezone) {\n\t return undefined;\n\t }\n\t return timezone.toICALTimezone();\n\t }\n\n\t /**\n\t * @throws TypeError\n\t */\n\t register() {\n\t throw new TypeError('Not allowed to register new timezone');\n\t }\n\n\t /**\n\t * @throws TypeError\n\t */\n\t remove() {\n\t throw new TypeError('Not allowed to remove timezone');\n\t }\n\n\t /**\n\t * @throws TypeError\n\t */\n\t reset() {\n\t throw new TypeError('Not allowed to reset TimezoneService');\n\t }\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\tclass IllegalValueError extends Error {}\n\n\t/**\n\t * @copyright Copyright (c) 2021 Christoph Wurst\n\t *\n\t * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\n\t/**\n\t *\n\t * @param {string[]} timezoneList List of Olsen timezones\n\t * @param {Array} additionalTimezones List of additional timezones\n\t * @param {string} globalTimezoneName The localized name of the \"Global\" timezones\n\t * @return {[]}\n\t */\n\tfunction getSortedTimezoneList(timezoneList = [], additionalTimezones = [], globalTimezoneName = 'Global') {\n\t const sortedByContinent = {};\n\t const sortedList = [];\n\t for (const timezoneId of timezoneList) {\n\t const components = timezoneId.split('/');\n\t let [continent, name] = [components.shift(), components.join('/')];\n\t if (!name) {\n\t name = continent;\n\t continent = globalTimezoneName;\n\t }\n\t sortedByContinent[continent] = sortedByContinent[continent] || {\n\t continent,\n\t regions: []\n\t };\n\t sortedByContinent[continent].regions.push({\n\t label: getReadableTimezoneName(name),\n\t cities: [],\n\t timezoneId\n\t });\n\t }\n\t for (const additionalTimezone of additionalTimezones) {\n\t const {\n\t continent,\n\t label,\n\t timezoneId\n\t } = additionalTimezone;\n\t sortedByContinent[continent] = sortedByContinent[continent] || {\n\t continent,\n\t regions: []\n\t };\n\t sortedByContinent[continent].regions.push({\n\t label,\n\t cities: [],\n\t timezoneId\n\t });\n\t }\n\t for (const continent in sortedByContinent) {\n\t if (!Object.prototype.hasOwnProperty.call(sortedByContinent, continent)) {\n\t continue;\n\t }\n\t sortedByContinent[continent].regions.sort((a, b) => {\n\t if (a.label < b.label) {\n\t return -1;\n\t }\n\t return 1;\n\t });\n\t sortedList.push(sortedByContinent[continent]);\n\t }\n\n\t // Sort continents by name\n\t sortedList.sort((a, b) => {\n\t if (a.continent < b.continent) {\n\t return -1;\n\t }\n\t return 1;\n\t });\n\t return sortedList;\n\t}\n\n\t/**\n\t * Get human-readable name for timezoneId\n\t *\n\t * @param {string} timezoneId TimezoneId to turn human-readable\n\t * @return {string}\n\t */\n\tfunction getReadableTimezoneName(timezoneId) {\n\t return timezoneId.split('_').join(' ').replace('St ', 'St. ').split('/').join(' - ');\n\t}\n\n\t/**\n\t * @copyright Copyright (c) 2019 Georg Ehrke\n\t *\n\t * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n\t *\n\t * @author Richard Steinmetz <richard@steinmetz.cloud>\n\t *\n\t * @license AGPL-3.0-or-later\n\t *\n\t * This program is free software: you can redistribute it and/or modify\n\t * it under the terms of the GNU Affero General Public License as\n\t * published by the Free Software Foundation, either version 3 of the\n\t * License, or (at your option) any later version.\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU Affero General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU Affero General Public License\n\t * along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t *\n\t */\n\tif (!(ICAL.TimezoneService instanceof TimezoneAdapter)) {\n\t ICAL.TimezoneService = new TimezoneAdapter(getTimezoneManager());\n\t}\n\n\t/**\n\t * parses a single ICS and returns an iterator over all occurrences\n\t * in a given timeframe\n\t *\n\t * @param {string} ics The calendar-data to parse\n\t * @param {DateTimeValue} start The start of the queried time-range\n\t * @param {DateTimeValue} end The end of the queried time-range\n\t */\n\tfunction* parseICSAndGetAllOccurrencesBetween(ics, start, end) {\n\t const parserManager = getParserManager();\n\t const icsParser = parserManager.getParserForFileType('text/calendar');\n\t icsParser.parse(ics);\n\t const objectIterator = icsParser.getItemIterator();\n\t const calendarComp = objectIterator.next().value;\n\t if (calendarComp === undefined) {\n\t return;\n\t }\n\t const vObjectIterator = calendarComp.getVObjectIterator();\n\t const firstVObject = vObjectIterator.next().value;\n\t if (firstVObject === undefined) {\n\t return;\n\t }\n\t yield* firstVObject.recurrenceManager.getAllOccurrencesBetweenIterator(start, end);\n\t}\n\n\t/**\n\t * Creates a new event\n\t *\n\t * @param {DateTimeValue} start Start-time of the new event\n\t * @param {DateTimeValue} end End-time of the new event\n\t * @return {CalendarComponent}\n\t */\n\tfunction createEvent(start, end) {\n\t const calendar = CalendarComponent.fromEmpty();\n\t const eventComponent = new EventComponent('VEVENT');\n\t eventComponent.updatePropertyWithValue('CREATED', DateTimeValue.fromJSDate(dateFactory(), true));\n\t eventComponent.updatePropertyWithValue('DTSTAMP', DateTimeValue.fromJSDate(dateFactory(), true));\n\t eventComponent.updatePropertyWithValue('LAST-MODIFIED', DateTimeValue.fromJSDate(dateFactory(), true));\n\t eventComponent.updatePropertyWithValue('SEQUENCE', 0);\n\t eventComponent.updatePropertyWithValue('UID', uuid.v4());\n\t eventComponent.updatePropertyWithValue('DTSTART', start);\n\t eventComponent.updatePropertyWithValue('DTEND', end);\n\t calendar.addComponent(eventComponent);\n\t eventComponent.recurrenceManager = new RecurrenceManager(eventComponent);\n\t return calendar;\n\t}\n\n\t/**\n\t * Creates a FreeBusy Request to be used on the scheduling outbox\n\t *\n\t * @param {DateTimeValue} start The start of the queried time-range\n\t * @param {DateTimeValue} end The end of the queried time-range\n\t * @param {AttendeeProperty} organizer The organizer querying information\n\t * @param {AttendeeProperty[]}attendees The list of attendees to query information for\n\t * @return {CalendarComponent}\n\t */\n\tfunction createFreeBusyRequest(start, end, organizer, attendees) {\n\t const calendar = CalendarComponent.fromMethod('REQUEST');\n\t const freeBusyComponent = new FreeBusyComponent('VFREEBUSY');\n\t freeBusyComponent.updatePropertyWithValue('DTSTAMP', DateTimeValue.fromJSDate(dateFactory(), true));\n\t freeBusyComponent.updatePropertyWithValue('UID', uuid.v4());\n\t freeBusyComponent.updatePropertyWithValue('DTSTART', start.clone().getInUTC());\n\t freeBusyComponent.updatePropertyWithValue('DTEND', end.clone().getInUTC());\n\t freeBusyComponent.addProperty(organizer.clone());\n\t for (const attendee of attendees) {\n\t const clonedAttendee = attendee.clone();\n\t clonedAttendee.deleteParameter('ROLE');\n\t clonedAttendee.deleteParameter('CUTYPE');\n\t clonedAttendee.deleteParameter('RSVP');\n\t clonedAttendee.deleteParameter('PARTSTAT');\n\t clonedAttendee.deleteParameter('REQUEST-STATUS');\n\t clonedAttendee.deleteParameter('LANGUAGE');\n\t freeBusyComponent.addProperty(clonedAttendee);\n\t }\n\t calendar.addComponent(freeBusyComponent);\n\t return calendar;\n\t}\n\n\texports.AbstractComponent = AbstractComponent;\n\texports.AbstractParser = AbstractParser;\n\texports.AbstractRecurringComponent = AbstractRecurringComponent;\n\texports.AbstractValue = AbstractValue;\n\texports.AlarmComponent = AlarmComponent;\n\texports.AttachmentProperty = AttachmentProperty;\n\texports.AttendeeProperty = AttendeeProperty;\n\texports.BinaryValue = BinaryValue;\n\texports.CalendarComponent = CalendarComponent;\n\texports.ConferenceProperty = ConferenceProperty;\n\texports.DateTimeValue = DateTimeValue;\n\texports.DurationValue = DurationValue;\n\texports.EventComponent = EventComponent;\n\texports.ExpectedICalJSError = ExpectedICalJSError;\n\texports.FreeBusyComponent = FreeBusyComponent;\n\texports.FreeBusyProperty = FreeBusyProperty;\n\texports.GeoProperty = GeoProperty;\n\texports.ICalendarParser = ICalendarParser;\n\texports.IllegalValueError = IllegalValueError;\n\texports.ImageProperty = ImageProperty;\n\texports.JournalComponent = JournalComponent;\n\texports.ModificationNotAllowedError = ModificationNotAllowedError;\n\texports.Parameter = Parameter;\n\texports.ParserManager = ParserManager;\n\texports.PeriodValue = PeriodValue;\n\texports.Property = Property;\n\texports.RecurValue = RecurValue;\n\texports.RecurrenceManager = RecurrenceManager;\n\texports.RecurringWithoutDtStartError = RecurringWithoutDtStartError;\n\texports.RelationProperty = RelationProperty;\n\texports.RequestStatusProperty = RequestStatusProperty;\n\texports.TextProperty = TextProperty;\n\texports.Timezone = Timezone;\n\texports.TimezoneAdapter = TimezoneAdapter;\n\texports.TimezoneComponent = TimezoneComponent;\n\texports.TimezoneManager = TimezoneManager;\n\texports.ToDoComponent = ToDoComponent;\n\texports.TriggerProperty = TriggerProperty;\n\texports.UTCOffsetValue = UTCOffsetValue;\n\texports.UnknownICALTypeError = UnknownICALTypeError;\n\texports.createEvent = createEvent;\n\texports.createFreeBusyRequest = createFreeBusyRequest;\n\texports.getConstructorForICALType = getConstructorForICALType;\n\texports.getConstructorForPropertyName = getConstructorForPropertyName;\n\texports.getParserManager = getParserManager;\n\texports.getReadableTimezoneName = getReadableTimezoneName;\n\texports.getSortedTimezoneList = getSortedTimezoneList;\n\texports.getTimezoneManager = getTimezoneManager;\n\texports.isOlsonTimezone = isOlsonTimezone;\n\texports.parseICSAndGetAllOccurrencesBetween = parseICSAndGetAllOccurrencesBetween;\n\texports.setConfig = setConfig;\n\n}));\n//# sourceMappingURL=index.umd.js.map\n","'use strict';\n\nvar GetText = require('node-gettext');\nrequire('@nextcloud/router');\nrequire('dompurify');\nrequire('escape-html');\n\n/**\n * Returns the user's locale\n */\n/**\n * Returns the user's language\n */\nfunction getLanguage() {\n return document.documentElement.lang || 'en';\n}\n\n/**\n * This module provides functionality to translate applications independent from Nextcloud\n *\n * @packageDocumentation\n * @module @nextcloud/l10n/gettext\n * @example\n * ```js\nimport { getGettextBuilder } from '@nextcloud/l10n/gettext'\nconst gt = getGettextBuilder()\n .detectLocale() // or use setLanguage()\n .addTranslation(/* ... *\\/)\n .build()\ngt.gettext('some string to translate')\n```\n */\n/**\n * @notExported\n */\nclass GettextBuilder {\n constructor() {\n this.translations = {};\n this.debug = false;\n }\n setLanguage(language) {\n this.locale = language;\n return this;\n }\n /** Try to detect locale from context with `en` as fallback value */\n detectLocale() {\n return this.setLanguage(getLanguage().replace('-', '_'));\n }\n addTranslation(language, data) {\n this.translations[language] = data;\n return this;\n }\n enableDebugMode() {\n this.debug = true;\n return this;\n }\n build() {\n return new GettextWrapper(this.locale || 'en', this.translations, this.debug);\n }\n}\n/**\n * @notExported\n */\nclass GettextWrapper {\n constructor(locale, data, debug) {\n this.gt = new GetText({\n debug,\n sourceLocale: 'en',\n });\n for (const key in data) {\n this.gt.addTranslations(key, 'messages', data[key]);\n }\n this.gt.setLocale(locale);\n }\n subtitudePlaceholders(translated, vars) {\n return translated.replace(/{([^{}]*)}/g, (a, b) => {\n const r = vars[b];\n if (typeof r === 'string' || typeof r === 'number') {\n return r.toString();\n }\n else {\n return a;\n }\n });\n }\n /**\n * Get translated string (singular form), optionally with placeholders\n *\n * @param original original string to translate\n * @param placeholders map of placeholder key to value\n */\n gettext(original, placeholders = {}) {\n return this.subtitudePlaceholders(this.gt.gettext(original), placeholders);\n }\n /**\n * Get translated string with plural forms\n *\n * @param singular Singular text form\n * @param plural Plural text form to be used if `count` requires it\n * @param count The number to insert into the text\n * @param placeholders optional map of placeholder key to value\n */\n ngettext(singular, plural, count, placeholders = {}) {\n return this.subtitudePlaceholders(this.gt.ngettext(singular, plural, count).replace(/%n/g, count.toString()), placeholders);\n }\n}\n/**\n * Create a new GettextBuilder instance\n */\nfunction getGettextBuilder() {\n return new GettextBuilder();\n}\n\nexports.getGettextBuilder = getGettextBuilder;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar buffer = require('buffer');\nvar isSvg = require('is-svg');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar isSvg__default = /*#__PURE__*/_interopDefaultLegacy(isSvg);\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\n\nvar readAsText = function (svg) {\n return new Promise(function (resolve) {\n if (!isFile(svg)) {\n resolve(svg.toString('utf-8'));\n }\n else {\n var fileReader_1 = new FileReader();\n fileReader_1.onload = function () {\n resolve(fileReader_1.result);\n };\n fileReader_1.readAsText(svg);\n }\n });\n};\nvar isFile = function (obj) {\n return obj.size !== undefined;\n};\nvar sanitizeSVG = function (svg) { return __awaiter(void 0, void 0, void 0, function () {\n var svgText, div, svgEl, attributes, hasScriptAttr, scripts;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!svg) {\n throw new Error('Not an svg');\n }\n svgText = '';\n if (!(buffer.Buffer.isBuffer(svg) || svg instanceof File)) return [3 /*break*/, 2];\n return [4 /*yield*/, readAsText(svg)];\n case 1:\n svgText = (_a.sent());\n return [3 /*break*/, 3];\n case 2:\n svgText = svg;\n _a.label = 3;\n case 3:\n if (!isSvg__default[\"default\"](svgText)) {\n throw new Error('Not an svg');\n }\n div = document.createElement('div');\n div.innerHTML = svgText;\n svgEl = div.firstElementChild;\n attributes = Array.from(svgEl.attributes).map(function (_a) {\n var name = _a.name;\n return name;\n });\n hasScriptAttr = !!attributes.find(function (attr) { return attr.startsWith('on'); });\n scripts = svgEl.getElementsByTagName('script');\n return [2 /*return*/, scripts.length === 0 && !hasScriptAttr ? svg : null];\n }\n });\n}); };\n\nexports.sanitizeSVG = sanitizeSVG;\n//# sourceMappingURL=index.js.map\n","'use strict';\nconst {XMLParser, XMLValidator} = require('fast-xml-parser');\n\nconst isSvg = input => {\n\tif (input === undefined || input === null) {\n\t\treturn false;\n\t}\n\n\tinput = input.toString().trim();\n\n\tif (input.length === 0) {\n\t\treturn false;\n\t}\n\n\t// Has to be `!==` as it can also return an object with error info.\n\tif (XMLValidator.validate(input) !== true) {\n\t\treturn false;\n\t}\n\n\tlet jsonObject;\n\tconst parser = new XMLParser();\n\n\ttry {\n\t\tjsonObject = parser.parse(input);\n\t} catch (_) {\n\t\treturn false;\n\t}\n\n\tif (!jsonObject) {\n\t\treturn false;\n\t}\n\n\tif (!('svg' in jsonObject)) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n\nmodule.exports = isSvg;\n// TODO: Remove this for the next major release\nmodule.exports.default = isSvg;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-7d732267]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-7d732267]{padding:8px;padding-left:10px;display:flex;flex-direction:column;justify-content:center;flex:1 0;min-width:0}.sharing-entry__summary__desc[data-v-7d732267]{display:inline-block;padding-bottom:0;line-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sharing-entry__summary__desc p[data-v-7d732267],.sharing-entry__summary__desc small[data-v-7d732267]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-7d732267]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntry.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,yCACC,WAAA,CACA,iBAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CAEA,+CACC,oBAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,sGAEC,mCAAA,CAGD,sDACC,mCAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\t&__summary {\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-left: 10px;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tflex: 1 0;\\n\\t\\tmin-width: 0;\\n\\n\\t\\t&__desc {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\tpadding-bottom: 0;\\n\\t\\t\\tline-height: 1.2em;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\n\\t\\t\\tp,\\n\\t\\t\\tsmall {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-unique {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-283ca89e]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-283ca89e]{display:flex;flex-direction:column;justify-content:space-between;padding:8px;padding-left:10px;line-height:1.2em}.sharing-entry__desc p[data-v-283ca89e]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-283ca89e]{margin-left:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryInherited.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,sCACC,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CACA,iBAAA,CACA,iBAAA,CACA,wCACC,mCAAA,CAGF,yCACC,gBAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\t&__desc {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: space-between;\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-left: 10px;\\n\\t\\tline-height: 1.2em;\\n\\t\\tp {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n\\t&__actions {\\n\\t\\tmargin-left: auto;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__internal .avatar-external[data-v-69227eb0]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}.sharing-entry__internal .icon-checkmark-color[data-v-69227eb0]{opacity:1}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryInternal.vue\"],\"names\":[],\"mappings\":\"AAEC,2DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA,CAED,gEACC,SAAA\",\"sourcesContent\":[\"\\n.sharing-entry__internal {\\n\\t.avatar-external {\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tline-height: 32px;\\n\\t\\tfont-size: 18px;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t\\tborder-radius: 50%;\\n\\t\\tflex-shrink: 0;\\n\\t}\\n\\t.icon-checkmark-color {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-528aec8a]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-528aec8a]{padding:8px;padding-left:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__summary__desc[data-v-528aec8a]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__summary__desc p[data-v-528aec8a]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc__title[data-v-528aec8a]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-528aec8a]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-528aec8a] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-528aec8a]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-528aec8a]{width:44px;height:44px;margin:0;padding:14px;margin-left:auto}.sharing-entry .action-item~.action-item[data-v-528aec8a],.sharing-entry .action-item~.sharing-entry__loading[data-v-528aec8a]{margin-left:0}.sharing-entry .icon-checkmark-color[data-v-528aec8a]{opacity:1}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryLink.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAEA,yCACC,WAAA,CACA,iBAAA,CACA,YAAA,CACA,6BAAA,CACA,QAAA,CACA,WAAA,CAED,+CACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,iDACC,mCAAA,CAGD,sDACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAUD,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,gBAAA,CAOA,+HAEC,aAAA,CAIF,sDACC,SAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tmin-height: 44px;\\n\\n\\t&__summary {\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-left: 10px;\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\t\\tflex: 1 0;\\n\\t\\tmin-width: 0;\\n\\n\\t&__desc {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tline-height: 1.2em;\\n\\n\\t\\tp {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\t }\\n\\n\\t &__copy {\\n\\n\\t }\\n\\t}\\n\\n\\t&:not(.sharing-entry--share) &__actions {\\n\\t\\t.new-share-link {\\n\\t\\t\\tborder-top: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t::v-deep .avatar-link-share {\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t}\\n\\n\\t.sharing-entry__action--public-upload {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t&__loading {\\n\\t\\twidth: 44px;\\n\\t\\theight: 44px;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 14px;\\n\\t\\tmargin-left: auto;\\n\\t}\\n\\n\\t// put menus to the left\\n\\t// but only the first one\\n\\t.action-item {\\n\\n\\t\\t~.action-item,\\n\\t\\t~.sharing-entry__loading {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t.icon-checkmark-color {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.share-select[data-v-d960cabe]{position:relative;cursor:pointer}.share-select .trigger-text[data-v-d960cabe]{display:flex;flex-direction:row;align-items:center;font-size:12.5px;gap:2px;color:var(--color-primary-element)}.share-select .share-select-dropdown[data-v-d960cabe]{position:absolute;display:flex;flex-direction:column;top:100%;left:0;background-color:var(--color-main-background);border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.2);border:1px solid var(--color-border);padding:4px 0;z-index:1}.share-select .share-select-dropdown .dropdown-item[data-v-d960cabe]{padding:8px;font-size:12px;background:none;border:none;border-radius:0;font:inherit;cursor:pointer;color:inherit;outline:none;width:100%;white-space:nowrap;text-align:left}.share-select .share-select-dropdown .dropdown-item[data-v-d960cabe]:hover{background-color:var(--color-background-dark)}.share-select .share-select-dropdown .dropdown-item.selected[data-v-d960cabe]{background-color:var(--color-background-dark)}.share-select .share-select-dropdown[data-v-d960cabe]{max-height:0;overflow:hidden;transition:max-height .3s ease}.share-select.active .share-select-dropdown[data-v-d960cabe]{max-height:200px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,iBAAA,CACA,cAAA,CAEA,6CACC,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,gBAAA,CACA,OAAA,CACA,kCAAA,CAGD,sDACC,iBAAA,CACA,YAAA,CACA,qBAAA,CACA,QAAA,CACA,MAAA,CACA,6CAAA,CACA,iBAAA,CACA,mCAAA,CACA,oCAAA,CACA,aAAA,CACA,SAAA,CAEA,qEACC,WAAA,CACA,cAAA,CACA,eAAA,CACA,WAAA,CACA,eAAA,CACA,YAAA,CACA,cAAA,CACA,aAAA,CACA,YAAA,CACA,UAAA,CACA,kBAAA,CACA,eAAA,CAEA,2EACC,6CAAA,CAGD,8EACC,6CAAA,CAMH,sDACC,YAAA,CACA,eAAA,CACA,8BAAA,CAGD,6DACC,gBAAA\",\"sourcesContent\":[\"\\n.share-select {\\n\\tposition: relative;\\n\\tcursor: pointer;\\n\\n\\t.trigger-text {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\talign-items: center;\\n\\t\\tfont-size: 12.5px;\\n\\t\\tgap: 2px;\\n\\t\\tcolor: var(--color-primary-element);\\n\\t}\\n\\n\\t.share-select-dropdown {\\n\\t\\tposition: absolute;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\ttop: 100%;\\n\\t\\tleft: 0;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tborder-radius: 8px;\\n\\t\\tbox-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\\n\\t\\tborder: 1px solid var(--color-border);\\n\\t\\tpadding: 4px 0;\\n\\t\\tz-index: 1;\\n\\n\\t\\t.dropdown-item {\\n\\t\\t\\tpadding: 8px;\\n\\t\\t\\tfont-size: 12px;\\n\\t\\t\\tbackground: none;\\n\\t\\t\\tborder: none;\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t\\tfont: inherit;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tcolor: inherit;\\n\\t\\t\\toutline: none;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&.selected {\\n\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* Optional: Add a transition effect for smoother dropdown animation */\\n\\t.share-select-dropdown {\\n\\t\\tmax-height: 0;\\n\\t\\toverflow: hidden;\\n\\t\\ttransition: max-height 0.3s ease;\\n\\t}\\n\\n\\t&.active .share-select-dropdown {\\n\\t\\tmax-height: 200px;\\n\\t\\t/* Adjust the value to your desired height */\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-1852ea78]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-1852ea78]{padding:8px;padding-left:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-1852ea78]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-1852ea78]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-1852ea78]{margin-left:auto !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingEntrySimple.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CACA,sCACC,WAAA,CACA,iBAAA,CACA,iBAAA,CACA,iBAAA,CACA,QAAA,CACA,WAAA,CACA,wCACC,mCAAA,CAGF,uCACC,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CAED,yCACC,2BAAA\",\"sourcesContent\":[\"\\n.sharing-entry {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tmin-height: 44px;\\n\\t&__desc {\\n\\t\\tpadding: 8px;\\n\\t\\tpadding-left: 10px;\\n\\t\\tline-height: 1.2em;\\n\\t\\tposition: relative;\\n\\t\\tflex: 1 1;\\n\\t\\tmin-width: 0;\\n\\t\\tp {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n\\t&__title {\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t\\tmax-width: inherit;\\n\\t}\\n\\t&__actions {\\n\\t\\tmargin-left: auto !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-search{display:flex;flex-direction:column;margin-bottom:4px}.sharing-search label[for=sharing-search-input]{margin-bottom:2px}.sharing-search__input{width:100%;margin:10px 0}.vs__dropdown-menu span[lookup] .avatardiv{background-image:var(--icon-search-white);background-repeat:no-repeat;background-position:center;background-color:var(--color-text-maxcontrast) !important}.vs__dropdown-menu span[lookup] .avatardiv .avatardiv__initials-wrapper{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/SharingInput.vue\"],\"names\":[],\"mappings\":\"AACA,gBACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,gDACC,iBAAA,CAGD,uBACC,UAAA,CACA,aAAA,CAOA,2CACC,yCAAA,CACA,2BAAA,CACA,0BAAA,CACA,yDAAA,CACA,wEACC,YAAA\",\"sourcesContent\":[\"\\n.sharing-search {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmargin-bottom: 4px;\\n\\n\\tlabel[for=\\\"sharing-search-input\\\"] {\\n\\t\\tmargin-bottom: 2px;\\n\\t}\\n\\n\\t&__input {\\n\\t\\twidth: 100%;\\n\\t\\tmargin: 10px 0;\\n\\t}\\n}\\n\\n.vs__dropdown-menu {\\n\\t// properly style the lookup entry\\n\\tspan[lookup] {\\n\\t\\t.avatardiv {\\n\\t\\t\\tbackground-image: var(--icon-search-white);\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-color: var(--color-text-maxcontrast) !important;\\n\\t\\t\\t.avatardiv__initials-wrapper {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharingTabDetailsView[data-v-4fb884d4]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-4fb884d4]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-4fb884d4]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-4fb884d4]{font-size:15px;padding-left:.3em}.sharingTabDetailsView__wrapper[data-v-4fb884d4]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-right:12px}.sharingTabDetailsView__quick-permissions[data-v-4fb884d4]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-4fb884d4]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-4fb884d4]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-4fb884d4]:nth-child(1){align-items:center;justify-content:center;color:var(--color-primary-element);padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-4fb884d4] label span{display:flex;flex-direction:column}.sharingTabDetailsView__advanced-control[data-v-4fb884d4]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-4fb884d4]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-4fb884d4]{width:100%;margin-bottom:.5em;text-align:left;padding-left:0}.sharingTabDetailsView__advanced section textarea[data-v-4fb884d4],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-4fb884d4]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-4fb884d4]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-4fb884d4] label{padding-left:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-4fb884d4]{padding-left:1.5em}.sharingTabDetailsView__delete>button[data-v-4fb884d4]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-4fb884d4]{width:100%;display:flex;position:sticky;bottom:0;flex-direction:column;justify-content:space-between;align-items:flex-start;background:linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background))}.sharingTabDetailsView__footer .button-group[data-v-4fb884d4]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-4fb884d4]{margin-left:16px}.sharingTabDetailsView__footer .button-group button[data-v-4fb884d4]:first-child{margin-left:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/views/SharingDetailsTab.vue\"],\"names\":[],\"mappings\":\"AACA,wCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CACA,WAAA,CACA,eAAA,CAEA,gDACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,WAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,wDACC,cAAA,CACA,iBAAA,CAMH,iDACC,iBAAA,CACA,eAAA,CACA,aAAA,CACA,WAAA,CACA,kBAAA,CAGD,2DACC,YAAA,CACA,sBAAA,CACA,UAAA,CACA,aAAA,CACA,eAAA,CAEA,+DACC,UAAA,CAEA,oEACC,UAAA,CAEA,sFACC,kBAAA,CACA,sBAAA,CACA,kCAAA,CACA,YAAA,CAKA,+EACC,YAAA,CACA,qBAAA,CAQL,0DACC,UAAA,CAEA,iEACC,eAAA,CAKF,kDACC,UAAA,CACA,kBAAA,CACA,eAAA,CACA,cAAA,CAIC,+IAEC,UAAA,CAGD,mEACC,WAAA,CACA,QAAA,CAaA,qEACC,yBAAA,CACA,mCAAA,CACA,sBAAA,CAIF,2FACC,kBAAA,CAMF,mEACC,aAAA,CAIF,gDACC,UAAA,CACA,YAAA,CACA,eAAA,CACA,QAAA,CACA,qBAAA,CACA,6BAAA,CACA,sBAAA,CACA,2FAAA,CAEA,8DACC,YAAA,CACA,6BAAA,CACA,UAAA,CACA,eAAA,CAEA,qEACC,gBAAA,CAEA,iFACC,aAAA\",\"sourcesContent\":[\"\\n.sharingTabDetailsView {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\twidth: 100%;\\n\\tmargin: 0 auto;\\n\\tposition: relative;\\n\\theight: 100%;\\n\\toverflow: hidden;\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmargin: 0.2em;\\n\\n\\t\\tspan {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\th1 {\\n\\t\\t\\t\\tfont-size: 15px;\\n\\t\\t\\t\\tpadding-left: 0.3em;\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tposition: relative;\\n\\t\\toverflow: scroll;\\n\\t\\tflex-shrink: 1;\\n\\t\\tpadding: 4px;\\n\\t\\tpadding-right: 12px;\\n\\t}\\n\\n\\t&__quick-permissions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 100%;\\n\\t\\tmargin: 0 auto;\\n\\t\\tborder-radius: 0;\\n\\n\\t\\tdiv {\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\tspan {\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\tspan:nth-child(1) {\\n\\t\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t\\t\\tpadding: 0.1em;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t::v-deep label {\\n\\n\\t\\t\\t\\t\\tspan {\\n\\t\\t\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\t\\t\\tflex-direction: column;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\t}\\n\\n\\t&__advanced-control {\\n\\t\\twidth: 100%;\\n\\n\\t\\tbutton {\\n\\t\\t\\tmargin-top: 0.5em;\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&__advanced {\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 0.5em;\\n\\t\\ttext-align: left;\\n\\t\\tpadding-left: 0;\\n\\n\\t\\tsection {\\n\\n\\t\\t\\ttextarea,\\n\\t\\t\\tdiv.mx-datepicker {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\n\\t\\t\\ttextarea {\\n\\t\\t\\t\\theight: 80px;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t/*\\n The following style is applied out of the component's scope\\n to remove padding from the label.checkbox-radio-switch__label,\\n which is used to group radio checkbox items. The use of ::v-deep\\n ensures that the padding is modified without being affected by\\n the component's scoping.\\n Without this achieving left alignment for the checkboxes would not\\n be possible.\\n */\\n\\t\\t\\tspan {\\n\\t\\t\\t\\t::v-deep label {\\n\\t\\t\\t\\t\\tpadding-left: 0 !important;\\n\\t\\t\\t\\t\\tbackground-color: initial !important;\\n\\t\\t\\t\\t\\tborder: none !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\tsection.custom-permissions-group {\\n\\t\\t\\t\\tpadding-left: 1.5em;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__delete {\\n\\t\\t>button:first-child {\\n\\t\\t\\tcolor: rgb(223, 7, 7);\\n\\t\\t}\\n\\t}\\n\\n\\t&__footer {\\n\\t\\twidth: 100%;\\n\\t\\tdisplay: flex;\\n\\t\\tposition: sticky;\\n\\t\\tbottom: 0;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: space-between;\\n\\t\\talign-items: flex-start;\\n\\t\\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\\n\\n\\t\\t.button-group {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tjustify-content: space-between;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmargin-top: 16px;\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\tmargin-left: 16px;\\n\\n\\t\\t\\t\\t&:first-child {\\n\\t\\t\\t\\t\\tmargin-left: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__inherited .avatar-shared[data-v-05b67dc8]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/views/SharingInherited.vue\"],\"names\":[],\"mappings\":\"AAEC,0DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA\",\"sourcesContent\":[\"\\n.sharing-entry__inherited {\\n\\t.avatar-shared {\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tline-height: 32px;\\n\\t\\tfont-size: 18px;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t\\tborder-radius: 50%;\\n\\t\\tflex-shrink: 0;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.emptyContentWithSections[data-v-1669cfd6]{margin:1rem auto}.sharingTab[data-v-1669cfd6]{position:relative;height:100%}.sharingTab__content[data-v-1669cfd6]{padding:0 6px}.sharingTab__additionalContent[data-v-1669cfd6]{margin:44px 0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/views/SharingTab.vue\"],\"names\":[],\"mappings\":\"AACA,2CACC,gBAAA,CAGD,6BACC,iBAAA,CACA,WAAA,CAEA,sCACC,aAAA,CAGD,gDACC,aAAA\",\"sourcesContent\":[\"\\n.emptyContentWithSections {\\n\\tmargin: 1rem auto;\\n}\\n\\n.sharingTab {\\n\\tposition: relative;\\n\\theight: 100%;\\n\\n\\t&__content {\\n\\t\\tpadding: 0 6px;\\n\\t}\\n\\n\\t&__additionalContent {\\n\\t\\tmargin: 44px 0;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nconst validator = require('./validator');\nconst XMLParser = require('./xmlparser/XMLParser');\nconst XMLBuilder = require('./xmlbuilder/json2xml');\n\nmodule.exports = {\n XMLParser: XMLParser,\n XMLValidator: validator,\n XMLBuilder: XMLBuilder\n}","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.<anonymous>\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.EmojiMart=t():e.EmojiMart=t()}(\"undefined\"!=typeof self?self:this,(function(){return function(){var e={661:function(){\"undefined\"!=typeof window&&function(){for(var e=0,t=[\"ms\",\"moz\",\"webkit\",\"o\"],i=0;i<t.length&&!window.requestAnimationFrame;++i)window.requestAnimationFrame=window[t[i]+\"RequestAnimationFrame\"],window.cancelAnimationFrame=window[t[i]+\"CancelAnimationFrame\"]||window[t[i]+\"CancelRequestAnimationFrame\"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t,i){var n=(new Date).getTime(),r=Math.max(0,16-(n-e)),o=window.setTimeout((function(){t(n+r)}),r);return e=n+r,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}()}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,i),o.exports}i.d=function(e,t){for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var n={};return function(){\"use strict\";i.r(n),i.d(n,{Anchors:function(){return k},Category:function(){return J},Emoji:function(){return W},EmojiData:function(){return $},EmojiIndex:function(){return q},EmojiView:function(){return R},Picker:function(){return oe},Preview:function(){return Z},Search:function(){return K},Skins:function(){return X},frequently:function(){return w},sanitize:function(){return N},store:function(){return c},uncompress:function(){return v}});var e,t,r=\"emoji-mart\",o=JSON,s=\"undefined\"!=typeof window&&\"localStorage\"in window;function a(e,i){if(t)t(e,i);else{if(!s)return;try{window.localStorage[\"\".concat(r,\".\").concat(e)]=o.stringify(i)}catch(e){}}}var c={update:function(e){for(var t in e)a(t,e[t])},set:a,get:function(t){if(e)return e(t);if(s){try{var i=window.localStorage[\"\".concat(r,\".\").concat(t)]}catch(e){return}return i?JSON.parse(i):void 0}},setNamespace:function(e){r=e},setHandlers:function(i){i||(i={}),e=i.getter,t=i.setter}};function u(e){return u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},u(e)}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}var h={name:\"a\",unified:\"b\",non_qualified:\"c\",has_img_apple:\"d\",has_img_google:\"e\",has_img_twitter:\"f\",has_img_facebook:\"h\",keywords:\"j\",sheet:\"k\",emoticons:\"l\",text:\"m\",short_names:\"n\",added_in:\"o\"},m=function(e){var t=[],i=function(e,i){e&&(Array.isArray(e)?e:[e]).forEach((function(e){(i?e.split(/[-|_|\\s]+/):[e]).forEach((function(e){e=e.toLowerCase(),-1==t.indexOf(e)&&t.push(e)}))}))};return i(e.short_names,!0),i(e.name,!0),i(e.keywords,!1),i(e.emoticons,!1),t.join(\",\")};function d(e){var t,i=function(e,t){var i=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(e){if(\"string\"==typeof e)return l(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?l(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){i&&(e=i);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw o}}}}(Object.getOwnPropertyNames(e));try{for(i.s();!(t=i.n()).done;){var n=t.value,r=e[n];e[n]=r&&\"object\"===u(r)?d(r):r}}catch(e){i.e(e)}finally{i.f()}return Object.freeze(e)}var f,p,v=function(e){if(!e.compressed)return e;for(var t in e.compressed=!1,e.emojis){var i=e.emojis[t];for(var n in h)i[n]=i[h[n]],delete i[h[n]];i.short_names||(i.short_names=[]),i.short_names.unshift(t),i.sheet_x=i.sheet[0],i.sheet_y=i.sheet[1],delete i.sheet,i.text||(i.text=\"\"),i.added_in||(i.added_in=6),i.added_in=i.added_in.toFixed(1),i.search=m(i)}return d(e)},j=[\"+1\",\"grinning\",\"kissing_heart\",\"heart_eyes\",\"laughing\",\"stuck_out_tongue_winking_eye\",\"sweat_smile\",\"joy\",\"scream\",\"disappointed\",\"unamused\",\"weary\",\"sob\",\"sunglasses\",\"heart\",\"hankey\"],y={};function g(){p=!0,f=c.get(\"frequently\")}var w={add:function(e){p||g();var t=e.id;f||(f=y),f[t]||(f[t]=0),f[t]+=1,c.set(\"last\",t),c.set(\"frequently\",f)},get:function(e){if(p||g(),!f){y={};for(var t=[],i=Math.min(e,j.length),n=0;n<i;n++)y[j[n]]=parseInt((i-n)/4,10)+1,t.push(j[n]);return t}var r=e,o=[];for(var s in f)f.hasOwnProperty(s)&&o.push(s);var a=o.sort((function(e,t){return f[e]-f[t]})).reverse().slice(0,r),u=c.get(\"last\");return u&&-1==a.indexOf(u)&&(a.pop(),a.push(u)),a}},_={activity:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113\"/></svg>',custom:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><g transform=\"translate(2.000000, 1.000000)\"><rect id=\"Rectangle\" x=\"8\" y=\"0\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect></g></svg>',flags:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z\"/></svg>',foods:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9\"/></svg>',nature:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8\"/><path d=\"M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235\"/></svg>',objects:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z\"/><path d=\"M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789\"/></svg>',smileys:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/><path d=\"M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0\"/></svg>',people:'<svg xmlns:svg=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" viewBox=\"0 0 24 24\"> <path id=\"path3814\" d=\"m 3.3591089,21.17726 c 0.172036,0.09385 4.265994,2.29837 8.8144451,2.29837 4.927767,0 8.670894,-2.211883 8.82782,-2.306019 0.113079,-0.06785 0.182268,-0.190051 0.182267,-0.321923 0,-3.03119 -0.929494,-5.804936 -2.617196,-7.810712 -1.180603,-1.403134 -2.661918,-2.359516 -4.295699,-2.799791 4.699118,-2.236258 3.102306,-9.28617162 -2.097191,-9.28617162 -5.1994978,0 -6.7963103,7.04991362 -2.097192,9.28617162 -1.6337821,0.440275 -3.1150971,1.396798 -4.2956991,2.799791 -1.687703,2.005776 -2.617196,4.779522 -2.617196,7.810712 1.2e-6,0.137378 0.075039,0.263785 0.195641,0.329572 z M 8.0439319,5.8308783 C 8.0439309,2.151521 12.492107,0.30955811 15.093491,2.9109411 17.694874,5.5123241 15.852911,9.9605006 12.173554,9.9605 9.8938991,9.9579135 8.0465186,8.1105332 8.0439319,5.8308783 Z m -1.688782,7.6894977 c 1.524535,-1.811449 3.5906601,-2.809035 5.8184041,-2.809035 2.227744,0 4.293869,0.997586 5.818404,2.809035 1.533639,1.822571 2.395932,4.339858 2.439152,7.108301 -0.803352,0.434877 -4.141636,2.096112 -8.257556,2.096112 -3.8062921,0 -7.3910861,-1.671043 -8.2573681,-2.104981 0.04505,-2.765017 0.906968,-5.278785 2.438964,-7.099432 z\" /> <path id=\"path3816\" d=\"M 12.173828 0.38867188 C 9.3198513 0.38867187 7.3770988 2.3672285 6.8652344 4.6308594 C 6.4218608 6.5916015 7.1153562 8.7676117 8.9648438 10.126953 C 7.6141249 10.677376 6.3550511 11.480944 5.3496094 12.675781 C 3.5629317 14.799185 2.6015625 17.701475 2.6015625 20.847656 C 2.6015654 21.189861 2.7894276 21.508002 3.0898438 21.671875 C 3.3044068 21.788925 7.4436239 24.039062 12.173828 24.039062 C 17.269918 24.039062 21.083568 21.776786 21.291016 21.652344 C 21.57281 21.483266 21.746097 21.176282 21.746094 20.847656 C 21.746094 17.701475 20.78277 14.799185 18.996094 12.675781 C 17.990455 11.480591 16.733818 10.675362 15.382812 10.125 C 17.231132 8.7655552 17.925675 6.5910701 17.482422 4.6308594 C 16.970557 2.3672285 15.027805 0.38867188 12.173828 0.38867188 z M 12.792969 2.3007812 C 13.466253 2.4161792 14.125113 2.7383941 14.695312 3.3085938 C 15.835712 4.4489931 15.985604 5.9473549 15.46875 7.1953125 C 14.951896 8.4432701 13.786828 9.3984378 12.173828 9.3984375 C 10.197719 9.3961954 8.607711 7.806187 8.6054688 5.8300781 C 8.6054683 4.2170785 9.5606362 3.0520102 10.808594 2.5351562 C 11.432573 2.2767293 12.119685 2.1853833 12.792969 2.3007812 z M 12.173828 11.273438 C 14.233647 11.273438 16.133674 12.185084 17.5625 13.882812 C 18.93069 15.508765 19.698347 17.776969 19.808594 20.283203 C 18.807395 20.800235 15.886157 22.162109 12.173828 22.162109 C 8.7614632 22.162109 5.6245754 20.787069 4.5390625 20.265625 C 4.6525896 17.766717 5.4203315 15.504791 6.7851562 13.882812 C 8.2139827 12.185084 10.11401 11.273438 12.173828 11.273438 z \" /> </svg>',places:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5\"/><path d=\"M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z\"/></svg>',recent:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z\"/><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/></svg>',symbols:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76\"/></svg>'};function C(e,t,i,n,r,o,s,a){var c,u=\"function\"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),o&&(u._scopeId=\"data-v-\"+o),s?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},u._ssrRegister=c):r&&(c=a?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(e,t){return c.call(t),l(e,t)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,c):[c]}return{exports:e,options:u}}var b=C({props:{i18n:{type:Object,required:!0},color:{type:String},categories:{type:Array,required:!0},activeCategory:{type:Object,default:function(){return{}}}},created:function(){this.svgs=_}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"div\",{staticClass:\"emoji-mart-anchors\",attrs:{role:\"tablist\"}},e._l(e.categories,(function(t){return i(\"button\",{key:t.id,class:{\"emoji-mart-anchor\":!0,\"emoji-mart-anchor-selected\":t.id==e.activeCategory.id},style:{color:t.id==e.activeCategory.id?e.color:\"\"},attrs:{role:\"tab\",type:\"button\",\"aria-label\":t.name,\"aria-selected\":t.id==e.activeCategory.id,\"data-title\":e.i18n.categories[t.id]},on:{click:function(i){return e.$emit(\"click\",t)}}},[i(\"div\",{attrs:{\"aria-hidden\":\"true\"},domProps:{innerHTML:e._s(e.svgs[t.id])}}),e._v(\" \"),i(\"span\",{staticClass:\"emoji-mart-anchor-bar\",style:{backgroundColor:e.color},attrs:{\"aria-hidden\":\"true\"}})])})),0)}),[],!1,null,null,null),k=b.exports;function E(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function S(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function x(e,t,i){return t&&S(e.prototype,t),i&&S(e,i),Object.defineProperty(e,\"prototype\",{writable:!1}),e}var O=String.fromCodePoint||function(){var e,t,i=16384,n=[],r=-1,o=arguments.length;if(!o)return\"\";for(var s=\"\";++r<o;){var a=Number(arguments[r]);if(!isFinite(a)||a<0||a>1114111||Math.floor(a)!=a)throw RangeError(\"Invalid code point: \"+a);a<=65535?n.push(a):(e=55296+((a-=65536)>>10),t=a%1024+56320,n.push(e,t)),(r+1===o||n.length>i)&&(s+=String.fromCharCode.apply(null,n),n.length=0)}return s};function P(e){var t=e.split(\"-\").map((function(e){return\"0x\".concat(e)}));return O.apply(null,t)}function A(e){return e.reduce((function(e,t){return-1===e.indexOf(t)&&e.push(t),e}),[])}function M(e,t){var i=A(e),n=A(t);return i.filter((function(e){return n.indexOf(e)>=0}))}function I(e,t){var i={};for(var n in e){var r=e[n],o=r;t.hasOwnProperty(n)&&(o=t[n]),\"object\"===u(o)&&(o=I(r,o)),i[n]=o}return i}function F(e,t){var i=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(e){if(\"string\"==typeof e)return z(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?z(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){i&&(e=i);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw o}}}}function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}var L=/^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/,T=[\"1F3FA\",\"1F3FB\",\"1F3FC\",\"1F3FD\",\"1F3FE\",\"1F3FF\"],q=function(){function e(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=i.emojisToShowFilter,r=i.include,o=i.exclude,s=i.custom,a=i.recent,c=i.recentLength,u=void 0===c?20:c;E(this,e),this._data=v(t),this._emojisFilter=n||null,this._include=r||null,this._exclude=o||null,this._custom=s||[],this._recent=a||w.get(u),this._emojis={},this._nativeEmojis={},this._emoticons={},this._categories=[],this._recentCategory={id:\"recent\",name:\"Recent\",emojis:[]},this._customCategory={id:\"custom\",name:\"Custom\",emojis:[]},this._searchIndex={},this.buildIndex(),Object.freeze(this)}return x(e,[{key:\"buildIndex\",value:function(){var e=this,t=this._data.categories;if(this._include&&(t=(t=t.filter((function(t){return e._include.includes(t.id)}))).sort((function(t,i){var n=e._include.indexOf(t.id),r=e._include.indexOf(i.id);return n<r?-1:n>r?1:0}))),t.forEach((function(t){if(e.isCategoryNeeded(t.id)){var i={id:t.id,name:t.name,emojis:[]};t.emojis.forEach((function(t){var n=e.addEmoji(t);n&&i.emojis.push(n)})),i.emojis.length&&e._categories.push(i)}})),this.isCategoryNeeded(\"custom\")){if(this._custom.length>0){var i,n=F(this._custom);try{for(n.s();!(i=n.n()).done;){var r=i.value;this.addCustomEmoji(r)}}catch(e){n.e(e)}finally{n.f()}}this._customCategory.emojis.length&&this._categories.push(this._customCategory)}this.isCategoryNeeded(\"recent\")&&(this._recent.length&&this._recent.map((function(t){var i,n=F(e._customCategory.emojis);try{for(n.s();!(i=n.n()).done;){var r=i.value;if(r.id===t)return void e._recentCategory.emojis.push(r)}}catch(e){n.e(e)}finally{n.f()}e.hasEmoji(t)&&e._recentCategory.emojis.push(e.emoji(t))})),this._recentCategory.emojis.length&&this._categories.unshift(this._recentCategory))}},{key:\"findEmoji\",value:function(e,t){var i=e.match(L);if(i&&(e=i[1],i[2]&&(t=parseInt(i[2],10))),this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),this._emojis.hasOwnProperty(e)){var n=this._emojis[e];return t?n.getSkin(t):n}return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:\"categories\",value:function(){return this._categories}},{key:\"emoji\",value:function(e){this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]);var t=this._emojis[e];if(!t)throw new Error(\"Can not find emoji by id: \"+e);return t}},{key:\"firstEmoji\",value:function(){var e=this._emojis[Object.keys(this._emojis)[0]];if(!e)throw new Error(\"Can not get first emoji\");return e}},{key:\"hasEmoji\",value:function(e){return this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),!!this._emojis[e]}},{key:\"nativeEmoji\",value:function(e){return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:\"search\",value:function(e,t){var i=this;if(t||(t=75),!e.length)return null;if(\"-\"==e||\"-1\"==e)return[this.emoji(\"-1\")];var n,r=e.toLowerCase().split(/[\\s|,|\\-|_]+/);r.length>2&&(r=[r[0],r[1]]),n=r.map((function(e){for(var t=i._emojis,n=i._searchIndex,r=0,o=0;o<e.length;o++){var s=e[o];r++,n[s]||(n[s]={}),(n=n[s]).results||function(){var i={};for(var o in n.results=[],n.emojis={},t){var s=t[o],a=s._data.search,c=e.substr(0,r),u=a.indexOf(c);if(-1!=u){var l=u+1;c==o&&(l=0),n.results.push(s),n.emojis[o]=s,i[o]=l}}n.results.sort((function(e,t){return i[e.id]-i[t.id]}))}(),t=n.emojis}return n.results})).filter((function(e){return e}));var o=null;return(o=n.length>1?M.apply(null,n):n.length?n[0]:[])&&o.length>t&&(o=o.slice(0,t)),o}},{key:\"addCustomEmoji\",value:function(e){var t=Object.assign({},e,{id:e.short_names[0],custom:!0});t.search||(t.search=m(t));var i=new $(t);return this._emojis[i.id]=i,this._customCategory.emojis.push(i),i}},{key:\"addEmoji\",value:function(e){var t=this,i=this._data.emojis[e];if(!this.isEmojiNeeded(i))return!1;var n=new $(i);if(this._emojis[e]=n,n.native&&(this._nativeEmojis[n.native]=n),n._skins)for(var r in n._skins){var o=n._skins[r];o.native&&(this._nativeEmojis[o.native]=o)}return n.emoticons&&n.emoticons.forEach((function(i){t._emoticons[i]||(t._emoticons[i]=e)})),n}},{key:\"isCategoryNeeded\",value:function(e){var t=!this._include||!this._include.length||this._include.indexOf(e)>-1,i=!(!this._exclude||!this._exclude.length)&&this._exclude.indexOf(e)>-1;return!(!t||i)}},{key:\"isEmojiNeeded\",value:function(e){return!this._emojisFilter||this._emojisFilter(e)}}]),e}(),$=function(){function e(t){if(E(this,e),this._data=Object.assign({},t),this._skins=null,this._data.skin_variations)for(var i in this._skins=[],T){var n=T[i],r=this._data.skin_variations[n],o=Object.assign({},t);for(var s in r)o[s]=r[s];delete o.skin_variations,o.skin_tone=parseInt(i)+1,this._skins.push(new e(o))}for(var a in this._sanitized=N(this._data),this._sanitized)this[a]=this._sanitized[a];this.short_names=this._data.short_names,this.short_name=this._data.short_names[0],Object.freeze(this)}return x(e,[{key:\"getSkin\",value:function(e){return e&&\"native\"!=e&&this._skins?this._skins[e-1]:this}},{key:\"getPosition\",value:function(){var e=+(100/60*this._data.sheet_x).toFixed(2),t=+(100/60*this._data.sheet_y).toFixed(2);return\"\".concat(e,\"% \").concat(t,\"%\")}},{key:\"ariaLabel\",value:function(){return[this.native].concat(this.short_names).filter(Boolean).join(\", \")}}]),e}(),R=function(){function e(t,i,n,r,o,s,a){E(this,e),this._emoji=t,this._native=r,this._skin=i,this._set=n,this._fallback=o,this.canRender=this._canRender(),this.cssClass=this._cssClass(),this.cssStyle=this._cssStyle(a),this.content=this._content(),this.title=!0===s?t.short_name:null,this.ariaLabel=t.ariaLabel(),Object.freeze(this)}return x(e,[{key:\"getEmoji\",value:function(){return this._emoji.getSkin(this._skin)}},{key:\"_canRender\",value:function(){return this._isCustom()||this._isNative()||this._hasEmoji()||this._fallback}},{key:\"_cssClass\",value:function(){return[\"emoji-set-\"+this._set,\"emoji-type-\"+this._emojiType()]}},{key:\"_cssStyle\",value:function(e){var t={};return this._isCustom()?t={backgroundImage:\"url(\"+this.getEmoji()._data.imageUrl+\")\",backgroundSize:\"100%\",width:e+\"px\",height:e+\"px\"}:this._hasEmoji()&&!this._isNative()&&(t={backgroundPosition:this.getEmoji().getPosition()}),e&&(t=this._isNative()?Object.assign(t,{fontSize:Math.round(.95*e*10)/10+\"px\"}):Object.assign(t,{width:e+\"px\",height:e+\"px\"})),t}},{key:\"_content\",value:function(){return this._isCustom()?\"\":this._isNative()?this.getEmoji().native:this._hasEmoji()?\"\":this._fallback?this._fallback(this.getEmoji()):null}},{key:\"_isNative\",value:function(){return this._native}},{key:\"_isCustom\",value:function(){return this.getEmoji().custom}},{key:\"_hasEmoji\",value:function(){if(!this.getEmoji()._data)return!1;var e=this.getEmoji()._data[\"has_img_\"+this._set];return void 0===e||e}},{key:\"_emojiType\",value:function(){return this._isCustom()?\"custom\":this._isNative()?\"native\":this._hasEmoji()?\"image\":\"fallback\"}}]),e}();function N(e){var t=e.name,i=e.short_names,n=e.skin_tone,r=e.skin_variations,o=e.emoticons,s=e.unified,a=e.custom,c=e.imageUrl,u=e.id||i[0],l=\":\".concat(u,\":\");return a?{id:u,name:t,colons:l,emoticons:o,custom:a,imageUrl:c}:(n&&(l+=\":skin-tone-\".concat(n,\":\")),{id:u,name:t,colons:l,emoticons:o,unified:s.toLowerCase(),skin:n||(r?1:null),native:P(s)})}function D(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var B={native:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1},fallback:{type:Function},skin:{type:Number,default:1},set:{type:String,default:\"apple\"},emoji:{type:[String,Object],required:!0},size:{type:Number,default:null},tag:{type:String,default:\"span\"}},H={perLine:{type:Number,default:9},maxSearchResults:{type:Number,default:75},emojiSize:{type:Number,default:24},title:{type:String,default:\"Emoji Mart™\"},emoji:{type:String,default:\"department_store\"},color:{type:String,default:\"#ae65c5\"},set:{type:String,default:\"apple\"},skin:{type:Number,default:null},defaultSkin:{type:Number,default:1},native:{type:Boolean,default:!1},emojiTooltip:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1},i18n:{type:Object,default:function(){return{}}},showPreview:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showCategories:{type:Boolean,default:!0},showSkinTones:{type:Boolean,default:!0},infiniteScroll:{type:Boolean,default:!0},pickerStyles:{type:Object,default:function(){return{}}}};function U(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function V(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?U(Object(i),!0).forEach((function(t){D(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):U(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var W=C({props:V(V({},B),{},{data:{type:Object,required:!0}}),emits:[\"click\",\"mouseenter\",\"mouseleave\"],computed:{view:function(){return new R(this.emojiObject,this.skin,this.set,this.native,this.fallback,this.tooltip,this.size)},sanitizedData:function(){return this.emojiObject._sanitized},title:function(){return this.tooltip?this.emojiObject.short_name:null},emojiObject:function(){return\"string\"==typeof this.emoji?this.data.findEmoji(this.emoji):this.emoji}},created:function(){},methods:{onClick:function(){this.$emit(\"click\",this.emojiObject)},onMouseEnter:function(){this.$emit(\"mouseenter\",this.emojiObject)},onMouseLeave:function(){this.$emit(\"mouseleave\",this.emojiObject)}}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.view.canRender?i(e.tag,{tag:\"component\",staticClass:\"emoji-mart-emoji\",attrs:{title:e.view.title,\"aria-label\":e.view.ariaLabel,\"data-title\":e.title},on:{mouseenter:e.onMouseEnter,mouseleave:e.onMouseLeave,click:e.onClick}},[i(\"span\",{class:e.view.cssClass,style:e.view.cssStyle},[e._v(e._s(e.view.content))])]):e._e()}),[],!1,null,null,null).exports,J=C({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},id:{type:String,required:!0},name:{type:String,required:!0},emojis:{type:Array},emojiProps:{type:Object,required:!0}},methods:{activeClass:function(e){return this.emojiProps.selectedEmoji&&this.emojiProps.selectedEmojiCategory&&this.emojiProps.selectedEmoji.id==e.id&&this.emojiProps.selectedEmojiCategory.id==this.id?\"emoji-mart-emoji-selected\":\"\"}},computed:{isVisible:function(){return!!this.emojis},isSearch:function(){return\"Search\"==this.name},hasResults:function(){return this.emojis.length>0},emojiObjects:function(){var e=this;return this.emojis.map((function(t){return{emojiObject:t,emojiView:new R(t,e.emojiProps.skin,e.emojiProps.set,e.emojiProps.native,e.emojiProps.fallback,e.emojiProps.emojiTooltip,e.emojiProps.emojiSize)}}))}},components:{Emoji:W}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.isVisible&&(e.isSearch||e.hasResults)?i(\"section\",{class:{\"emoji-mart-category\":!0,\"emoji-mart-no-results\":!e.hasResults},attrs:{\"aria-label\":e.i18n.categories[e.id]}},[i(\"div\",{staticClass:\"emoji-mart-category-label\"},[i(\"h3\",{staticClass:\"emoji-mart-category-label\"},[e._v(e._s(e.i18n.categories[e.id]))])]),e._v(\" \"),e._l(e.emojiObjects,(function(t){var n=t.emojiObject,r=t.emojiView;return[r.canRender?i(\"button\",{key:n.id,staticClass:\"emoji-mart-emoji\",class:e.activeClass(n),attrs:{\"aria-label\":r.ariaLabel,role:\"option\",\"aria-selected\":\"false\",\"aria-posinset\":\"1\",\"aria-setsize\":\"1812\",type:\"button\",\"data-title\":n.short_name,title:r.title},on:{mouseenter:function(t){e.emojiProps.onEnter(r.getEmoji())},mouseleave:function(t){e.emojiProps.onLeave(r.getEmoji())},click:function(t){e.emojiProps.onClick(r.getEmoji())}}},[i(\"span\",{class:r.cssClass,style:r.cssStyle},[e._v(e._s(r.content))])]):e._e()]})),e._v(\" \"),e.hasResults?e._e():i(\"div\",[i(\"emoji\",{attrs:{data:e.data,emoji:\"sleuth_or_spy\",native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}}),e._v(\" \"),i(\"div\",{staticClass:\"emoji-mart-no-results-label\"},[e._v(e._s(e.i18n.notfound))])],1)],2):e._e()}),[],!1,null,null,null).exports,X=C({props:{skin:{type:Number,required:!0}},data:function(){return{opened:!1}},methods:{onClick:function(e){this.opened&&e!=this.skin&&this.$emit(\"change\",e),this.opened=!this.opened}}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"div\",{class:{\"emoji-mart-skin-swatches\":!0,\"emoji-mart-skin-swatches-opened\":e.opened}},e._l(6,(function(t){return i(\"span\",{key:t,class:{\"emoji-mart-skin-swatch\":!0,\"emoji-mart-skin-swatch-selected\":e.skin==t}},[i(\"span\",{class:\"emoji-mart-skin emoji-mart-skin-tone-\"+t,on:{click:function(i){return e.onClick(t)}}})])})),0)}),[],!1,null,null,null).exports,Z=C({props:{data:{type:Object,required:!0},title:{type:String,required:!0},emoji:{type:[String,Object]},idleEmoji:{type:[String,Object],required:!0},showSkinTones:{type:Boolean,default:!0},emojiProps:{type:Object,required:!0},skinProps:{type:Object,required:!0},onSkinChange:{type:Function,required:!0}},computed:{emojiData:function(){return this.emoji?this.emoji:{}},emojiShortNames:function(){return this.emojiData.short_names},emojiEmoticons:function(){return this.emojiData.emoticons}},components:{Emoji:W,Skins:X}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"div\",{staticClass:\"emoji-mart-preview\"},[e.emoji?[i(\"div\",{staticClass:\"emoji-mart-preview-emoji\"},[i(\"emoji\",{attrs:{data:e.data,emoji:e.emoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(\" \"),i(\"div\",{staticClass:\"emoji-mart-preview-data\"},[i(\"div\",{staticClass:\"emoji-mart-preview-name\"},[e._v(e._s(e.emoji.name))]),e._v(\" \"),i(\"div\",{staticClass:\"emoji-mart-preview-shortnames\"},e._l(e.emojiShortNames,(function(t){return i(\"span\",{key:t,staticClass:\"emoji-mart-preview-shortname\"},[e._v(\":\"+e._s(t)+\":\")])})),0),e._v(\" \"),i(\"div\",{staticClass:\"emoji-mart-preview-emoticons\"},e._l(e.emojiEmoticons,(function(t){return i(\"span\",{key:t,staticClass:\"emoji-mart-preview-emoticon\"},[e._v(e._s(t))])})),0)])]:[i(\"div\",{staticClass:\"emoji-mart-preview-emoji\"},[i(\"emoji\",{attrs:{data:e.data,emoji:e.idleEmoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(\" \"),i(\"div\",{staticClass:\"emoji-mart-preview-data\"},[i(\"span\",{staticClass:\"emoji-mart-title-label\"},[e._v(e._s(e.title))])]),e._v(\" \"),e.showSkinTones?i(\"div\",{staticClass:\"emoji-mart-preview-skins\"},[i(\"skins\",{attrs:{skin:e.skinProps.skin},on:{change:function(t){return e.onSkinChange(t)}}})],1):e._e()]],2)}),[],!1,null,null,null).exports,G=C({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},autoFocus:{type:Boolean,default:!1},onSearch:{type:Function,required:!0},onArrowLeft:{type:Function,required:!1},onArrowRight:{type:Function,required:!1},onArrowDown:{type:Function,required:!1},onArrowUp:{type:Function,required:!1},onEnter:{type:Function,required:!1}},data:function(){return{value:\"\"}},computed:{emojiIndex:function(){return this.data}},watch:{value:function(){this.$emit(\"search\",this.value)}},methods:{clear:function(){this.value=\"\"}},mounted:function(){var e=this.$el.querySelector(\"input\");this.autoFocus&&e.focus()}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"div\",{staticClass:\"emoji-mart-search\"},[i(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:e.value,expression:\"value\"}],attrs:{type:\"text\",placeholder:e.i18n.search,role:\"textbox\",\"aria-autocomplete\":\"list\",\"aria-owns\":\"emoji-mart-list\",\"aria-label\":\"Search for an emoji\",\"aria-describedby\":\"emoji-mart-search-description\"},domProps:{value:e.value},on:{keydown:[function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"left\",37,t.key,[\"Left\",\"ArrowLeft\"])||\"button\"in t&&0!==t.button?null:function(t){return e.$emit(\"arrowLeft\",t)}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"right\",39,t.key,[\"Right\",\"ArrowRight\"])||\"button\"in t&&2!==t.button?null:function(){return e.$emit(\"arrowRight\")}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"down\",40,t.key,[\"Down\",\"ArrowDown\"])?null:function(){return e.$emit(\"arrowDown\")}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"up\",38,t.key,[\"Up\",\"ArrowUp\"])?null:function(t){return e.$emit(\"arrowUp\",t)}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"enter\",13,t.key,\"Enter\")?null:function(){return e.$emit(\"enter\")}.apply(null,arguments)}],input:function(t){t.target.composing||(e.value=t.target.value)}}}),e._v(\" \"),i(\"span\",{staticClass:\"hidden\",attrs:{id:\"emoji-picker-search-description\"}},[e._v(\"Use the left, right, up and down arrow keys to navigate the emoji search\\n results.\")])])}),[],!1,null,null,null),K=G.exports;function Q(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}i(661);var Y=function(){function e(t){var i,n;E(this,e),this._vm=t,this._data=t.data,this._perLine=t.perLine,this._categories=[],(i=this._categories).push.apply(i,function(e){if(Array.isArray(e))return Q(e)}(n=this._data.categories())||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(n)||function(e,t){if(e){if(\"string\"==typeof e)return Q(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?Q(e,t):void 0}}(n)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),this._categories=this._categories.filter((function(e){return e.emojis.length>0})),this._categories[0].first=!0,Object.freeze(this._categories),this.activeCategory=this._categories[0],this.searchEmojis=null,this.previewEmoji=null,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=-1}return x(e,[{key:\"onScroll\",value:function(){for(var e=this._vm.$refs.scroll.scrollTop,t=this.filteredCategories[0],i=0,n=this.filteredCategories.length;i<n;i++){var r=this.filteredCategories[i],o=this._vm.getCategoryComponent(i);if(o&&o.$el.offsetTop-50>e)break;t=r}this.activeCategory=t}},{key:\"allCategories\",get:function(){return this._categories}},{key:\"filteredCategories\",get:function(){return this.searchEmojis?[{id:\"search\",name:\"Search\",emojis:this.searchEmojis}]:this._categories.filter((function(e){return e.emojis.length>0}))}},{key:\"previewEmojiCategory\",get:function(){return this.previewEmojiCategoryIdx>=0?this.filteredCategories[this.previewEmojiCategoryIdx]:null}},{key:\"onAnchorClick\",value:function(e){var t=this;if(!this.searchEmojis){var i=this.filteredCategories.indexOf(e),n=this._vm.getCategoryComponent(i);this._vm.infiniteScroll?function(){if(n){var i=n.$el.offsetTop;e.first&&(i=0),t._vm.$refs.scroll.scrollTop=i}}():this.activeCategory=this.filteredCategories[i]}}},{key:\"onSearch\",value:function(e){var t=this._data.search(e,this.maxSearchResults);this.searchEmojis=t,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=0,this.updatePreviewEmoji()}},{key:\"onEmojiEnter\",value:function(e){this.previewEmoji=e,this.previewEmojiIdx=-1,this.previewEmojiCategoryIdx=-1}},{key:\"onEmojiLeave\",value:function(e){this.previewEmoji=null}},{key:\"onArrowLeft\",value:function(){this.previewEmojiIdx>0?this.previewEmojiIdx-=1:(this.previewEmojiCategoryIdx-=1,this.previewEmojiCategoryIdx<0?this.previewEmojiCategoryIdx=0:this.previewEmojiIdx=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length-1),this.updatePreviewEmoji()}},{key:\"onArrowRight\",value:function(){this.previewEmojiIdx<this.emojisLength(this.previewEmojiCategoryIdx)-1?this.previewEmojiIdx+=1:(this.previewEmojiCategoryIdx+=1,this.previewEmojiCategoryIdx>=this.filteredCategories.length?this.previewEmojiCategoryIdx=this.filteredCategories.length-1:this.previewEmojiIdx=0),this.updatePreviewEmoji()}},{key:\"onArrowDown\",value:function(){if(-1==this.previewEmojiIdx)return this.onArrowRight();var e=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length,t=this._perLine;this.previewEmojiIdx+t>e&&(t=e%this._perLine);for(var i=0;i<t;i++)this.onArrowRight();this.updatePreviewEmoji()}},{key:\"onArrowUp\",value:function(){var e=this._perLine;this.previewEmojiIdx-e<0&&(e=this.previewEmojiCategoryIdx>0?this.filteredCategories[this.previewEmojiCategoryIdx-1].emojis.length%this._perLine:0);for(var t=0;t<e;t++)this.onArrowLeft();this.updatePreviewEmoji()}},{key:\"updatePreviewEmoji\",value:function(){var e=this;this.previewEmoji=this.filteredCategories[this.previewEmojiCategoryIdx].emojis[this.previewEmojiIdx],this._vm.$nextTick((function(){var t=e._vm.$refs.scroll,i=t.querySelector(\".emoji-mart-emoji-selected\"),n=t.offsetTop-t.offsetHeight;i&&i.offsetTop+i.offsetHeight>n+t.scrollTop&&(t.scrollTop+=i.offsetHeight),i&&i.offsetTop<t.scrollTop&&(t.scrollTop-=i.offsetHeight)}))}},{key:\"emojisLength\",value:function(e){return-1==e?0:this.filteredCategories[e].emojis.length}}]),e}();function ee(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function te(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(i),!0).forEach((function(t){D(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):ee(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var ie={search:\"Search\",notfound:\"No Emoji Found\",categories:{search:\"Search Results\",recent:\"Frequently Used\",smileys:\"Smileys & Emotion\",people:\"People & Body\",nature:\"Animals & Nature\",foods:\"Food & Drink\",activity:\"Activity\",places:\"Travel & Places\",objects:\"Objects\",symbols:\"Symbols\",flags:\"Flags\",custom:\"Custom\"}},ne={props:te(te({},H),{},{data:{type:Object,required:!0}}),data:function(){return{activeSkin:this.skin||c.get(\"skin\")||this.defaultSkin,view:new Y(this)}},computed:{customStyles:function(){return te({width:this.calculateWidth+\"px\"},this.pickerStyles)},emojiProps:function(){return{native:this.native,skin:this.activeSkin,set:this.set,emojiTooltip:this.emojiTooltip,emojiSize:this.emojiSize,selectedEmoji:this.view.previewEmoji,selectedEmojiCategory:this.view.previewEmojiCategory,onEnter:this.onEmojiEnter.bind(this),onLeave:this.onEmojiLeave.bind(this),onClick:this.onEmojiClick.bind(this)}},skinProps:function(){return{skin:this.activeSkin}},calculateWidth:function(){return this.perLine*(this.emojiSize+12)+12+2+function(){if(\"undefined\"==typeof document)return 0;var e=document.createElement(\"div\");e.style.width=\"100px\",e.style.height=\"100px\",e.style.overflow=\"scroll\",e.style.position=\"absolute\",e.style.top=\"-9999px\",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),t}()},filteredCategories:function(){return this.view.filteredCategories},mergedI18n:function(){return Object.freeze(I(ie,this.i18n))},idleEmoji:function(){try{return this.data.emoji(this.emoji)}catch(e){return console.error(\"Default preview emoji `\"+this.emoji+\"` is not available, check the Picker `emoji` property\"),console.error(e),this.data.firstEmoji()}}},methods:{onScroll:function(){this.infiniteScroll&&!this.waitingForPaint&&(this.waitingForPaint=!0,window.requestAnimationFrame(this.onScrollPaint.bind(this)))},onScrollPaint:function(){this.waitingForPaint=!1,this.view.onScroll()},onAnchorClick:function(e){this.view.onAnchorClick(e)},onSearch:function(e){this.view.onSearch(e)},onEmojiEnter:function(e){this.view.onEmojiEnter(e)},onEmojiLeave:function(e){this.view.onEmojiLeave(e)},onArrowLeft:function(e){var t=this.view.previewEmojiIdx;this.view.onArrowLeft(),e&&this.view.previewEmojiIdx!==t&&e.preventDefault()},onArrowRight:function(){this.view.onArrowRight()},onArrowDown:function(){this.view.onArrowDown()},onArrowUp:function(e){this.view.onArrowUp(),e.preventDefault()},onEnter:function(){this.view.previewEmoji&&(this.$emit(\"select\",this.view.previewEmoji),w.add(this.view.previewEmoji))},onEmojiClick:function(e){this.$emit(\"select\",e),w.add(e)},onTextSelect:function(e){e.stopPropagation()},onSkinChange:function(e){this.activeSkin=e,c.update({skin:e}),this.$emit(\"skin-change\",e)},getCategoryComponent:function(e){var t=this.$refs[\"categories_\"+e];return t&&\"0\"in t?t[0]:t}},components:{Anchors:k,Category:J,Preview:Z,Search:K}},re=C(ne,(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"section\",{staticClass:\"emoji-mart emoji-mart-static\",style:e.customStyles},[e.showCategories?i(\"div\",{staticClass:\"emoji-mart-bar emoji-mart-bar-anchors\"},[i(\"anchors\",{attrs:{data:e.data,i18n:e.mergedI18n,color:e.color,categories:e.view.allCategories,\"active-category\":e.view.activeCategory},on:{click:e.onAnchorClick}})],1):e._e(),e._v(\" \"),e._t(\"searchTemplate\",(function(){return[e.showSearch?i(\"search\",{ref:\"search\",attrs:{data:e.data,i18n:e.mergedI18n,\"auto-focus\":e.autoFocus,\"on-search\":e.onSearch},on:{search:e.onSearch,arrowLeft:e.onArrowLeft,arrowRight:e.onArrowRight,arrowDown:e.onArrowDown,arrowUp:e.onArrowUp,enter:e.onEnter,select:e.onTextSelect}}):e._e()]}),{data:e.data,i18n:e.i18n,autoFocus:e.autoFocus,onSearch:e.onSearch}),e._v(\" \"),i(\"div\",{ref:\"scroll\",staticClass:\"emoji-mart-scroll\",attrs:{role:\"tabpanel\"},on:{scroll:e.onScroll}},[i(\"div\",{ref:\"scrollContent\",attrs:{id:\"emoji-mart-list\",role:\"listbox\",\"aria-expanded\":\"true\"}},[e._t(\"customCategory\"),e._v(\" \"),e._l(e.view.filteredCategories,(function(t,n){return i(\"category\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.infiniteScroll||t==e.view.activeCategory,expression:\"infiniteScroll || category == view.activeCategory\"}],key:t.id,ref:\"categories_\"+n,refInFor:!0,attrs:{data:e.data,i18n:e.mergedI18n,id:t.id,name:t.name,emojis:t.emojis,\"emoji-props\":e.emojiProps}})}))],2)]),e._v(\" \"),e._t(\"previewTemplate\",(function(){return[e.showPreview?i(\"div\",{staticClass:\"emoji-mart-bar emoji-mart-bar-preview\"},[i(\"preview\",{attrs:{data:e.data,title:e.title,emoji:e.view.previewEmoji,\"idle-emoji\":e.idleEmoji,\"show-skin-tones\":e.showSkinTones,\"emoji-props\":e.emojiProps,\"skin-props\":e.skinProps,\"on-skin-change\":e.onSkinChange}})],1):e._e()]}),{data:e.data,title:e.title,emoji:e.view.previewEmoji,idleEmoji:e.idleEmoji,showSkinTones:e.showSkinTones,emojiProps:e.emojiProps,skinProps:e.skinProps,onSkinChange:e.onSkinChange})],2)}),[],!1,null,null,null),oe=re.exports}(),n}()}));","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","var L=Object.defineProperty,B=Object.defineProperties;var F=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var M=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;var _=(o,l,u)=>l in o?L(o,l,{enumerable:!0,configurable:!0,writable:!0,value:u}):o[l]=u,C=(o,l)=>{for(var u in l||(l={}))M.call(l,u)&&_(o,u,l[u]);if(z)for(var u of z(l))g.call(l,u)&&_(o,u,l[u]);return o},y=(o,l)=>B(o,F(l));var b=(o,l)=>{var u={};for(var c in o)M.call(o,c)&&l.indexOf(c)<0&&(u[c]=o[c]);if(o!=null&&z)for(var c of z(o))l.indexOf(c)<0&&g.call(o,c)&&(u[c]=o[c]);return u};(function(o,l){typeof exports==\"object\"&&typeof module!=\"undefined\"?l(exports):typeof define==\"function\"&&define.amd?define([\"exports\"],l):(o=typeof globalThis!=\"undefined\"?globalThis:o||self,l(o.splitpanes={}))})(this,function(o){\"use strict\";var l=\"\";function u(e,i,s,n,t,a,r,d){var h=typeof e==\"function\"?e.options:e;i&&(h.render=i,h.staticRenderFns=s,h._compiled=!0),n&&(h.functional=!0),a&&(h._scopeId=\"data-v-\"+a);var p;if(r?(p=function(m){m=m||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!m&&typeof __VUE_SSR_CONTEXT__!=\"undefined\"&&(m=__VUE_SSR_CONTEXT__),t&&t.call(this,m),m&&m._registeredComponents&&m._registeredComponents.add(r)},h._ssrRegister=p):t&&(p=d?function(){t.call(this,(h.functional?this.parent:this).$root.$options.shadowRoot)}:t),p)if(h.functional){h._injectStyles=p;var v=h.render;h.render=function(U,x){return p.call(x),v(U,x)}}else{var f=h.beforeCreate;h.beforeCreate=f?[].concat(f,p):[p]}return{exports:e,options:h}}const c={name:\"splitpanes\",props:{horizontal:{type:Boolean},pushOtherPanes:{type:Boolean,default:!0},dblClickSplitter:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean}},provide(){return{requestUpdate:this.requestUpdate,onPaneAdd:this.onPaneAdd,onPaneRemove:this.onPaneRemove,onPaneClick:this.onPaneClick}},data:()=>({container:null,ready:!1,panes:[],touch:{mouseDown:!1,dragging:!1,activeSplitter:null},splitterTaps:{splitter:null,timeoutId:null}}),computed:{panesCount(){return this.panes.length},indexedPanes(){return this.panes.reduce((e,i)=>(e[i.id]=i)&&e,{})}},methods:{updatePaneComponents(){this.panes.forEach(e=>{e.update&&e.update({[this.horizontal?\"height\":\"width\"]:`${this.indexedPanes[e.id].size}%`})})},bindEvents(){document.addEventListener(\"mousemove\",this.onMouseMove,{passive:!1}),document.addEventListener(\"mouseup\",this.onMouseUp),\"ontouchstart\"in window&&(document.addEventListener(\"touchmove\",this.onMouseMove,{passive:!1}),document.addEventListener(\"touchend\",this.onMouseUp))},unbindEvents(){document.removeEventListener(\"mousemove\",this.onMouseMove,{passive:!1}),document.removeEventListener(\"mouseup\",this.onMouseUp),\"ontouchstart\"in window&&(document.removeEventListener(\"touchmove\",this.onMouseMove,{passive:!1}),document.removeEventListener(\"touchend\",this.onMouseUp))},onMouseDown(e,i){this.bindEvents(),this.touch.mouseDown=!0,this.touch.activeSplitter=i},onMouseMove(e){this.touch.mouseDown&&(e.preventDefault(),this.touch.dragging=!0,this.calculatePanesSize(this.getCurrentMouseDrag(e)),this.$emit(\"resize\",this.panes.map(i=>({min:i.min,max:i.max,size:i.size}))))},onMouseUp(){this.touch.dragging&&this.$emit(\"resized\",this.panes.map(e=>({min:e.min,max:e.max,size:e.size}))),this.touch.mouseDown=!1,setTimeout(()=>{this.touch.dragging=!1,this.unbindEvents()},100)},onSplitterClick(e,i){\"ontouchstart\"in window&&(e.preventDefault(),this.dblClickSplitter&&(this.splitterTaps.splitter===i?(clearTimeout(this.splitterTaps.timeoutId),this.splitterTaps.timeoutId=null,this.onSplitterDblClick(e,i),this.splitterTaps.splitter=null):(this.splitterTaps.splitter=i,this.splitterTaps.timeoutId=setTimeout(()=>{this.splitterTaps.splitter=null},500)))),this.touch.dragging||this.$emit(\"splitter-click\",this.panes[i])},onSplitterDblClick(e,i){let s=0;this.panes=this.panes.map((n,t)=>(n.size=t===i?n.max:n.min,t!==i&&(s+=n.min),n)),this.panes[i].size-=s,this.$emit(\"pane-maximize\",this.panes[i])},onPaneClick(e,i){this.$emit(\"pane-click\",this.indexedPanes[i])},getCurrentMouseDrag(e){const i=this.container.getBoundingClientRect(),{clientX:s,clientY:n}=\"ontouchstart\"in window&&e.touches?e.touches[0]:e;return{x:s-i.left,y:n-i.top}},getCurrentDragPercentage(e){e=e[this.horizontal?\"y\":\"x\"];const i=this.container[this.horizontal?\"clientHeight\":\"clientWidth\"];return this.rtl&&!this.horizontal&&(e=i-e),e*100/i},calculatePanesSize(e){const i=this.touch.activeSplitter;let s={prevPanesSize:this.sumPrevPanesSize(i),nextPanesSize:this.sumNextPanesSize(i),prevReachedMinPanes:0,nextReachedMinPanes:0};const n=0+(this.pushOtherPanes?0:s.prevPanesSize),t=100-(this.pushOtherPanes?0:s.nextPanesSize),a=Math.max(Math.min(this.getCurrentDragPercentage(e),t),n);let r=[i,i+1],d=this.panes[r[0]]||null,h=this.panes[r[1]]||null;const p=d.max<100&&a>=d.max+s.prevPanesSize,v=h.max<100&&a<=100-(h.max+this.sumNextPanesSize(i+1));if(p||v){p?(d.size=d.max,h.size=Math.max(100-d.max-s.prevPanesSize-s.nextPanesSize,0)):(d.size=Math.max(100-h.max-s.prevPanesSize-this.sumNextPanesSize(i+1),0),h.size=h.max);return}if(this.pushOtherPanes){const f=this.doPushOtherPanes(s,a);if(!f)return;({sums:s,panesToResize:r}=f),d=this.panes[r[0]]||null,h=this.panes[r[1]]||null}d!==null&&(d.size=Math.min(Math.max(a-s.prevPanesSize-s.prevReachedMinPanes,d.min),d.max)),h!==null&&(h.size=Math.min(Math.max(100-a-s.nextPanesSize-s.nextReachedMinPanes,h.min),h.max))},doPushOtherPanes(e,i){const s=this.touch.activeSplitter,n=[s,s+1];return i<e.prevPanesSize+this.panes[n[0]].min&&(n[0]=this.findPrevExpandedPane(s).index,e.prevReachedMinPanes=0,n[0]<s&&this.panes.forEach((t,a)=>{a>n[0]&&a<=s&&(t.size=t.min,e.prevReachedMinPanes+=t.min)}),e.prevPanesSize=this.sumPrevPanesSize(n[0]),n[0]===void 0)?(e.prevReachedMinPanes=0,this.panes[0].size=this.panes[0].min,this.panes.forEach((t,a)=>{a>0&&a<=s&&(t.size=t.min,e.prevReachedMinPanes+=t.min)}),this.panes[n[1]].size=100-e.prevReachedMinPanes-this.panes[0].min-e.prevPanesSize-e.nextPanesSize,null):i>100-e.nextPanesSize-this.panes[n[1]].min&&(n[1]=this.findNextExpandedPane(s).index,e.nextReachedMinPanes=0,n[1]>s+1&&this.panes.forEach((t,a)=>{a>s&&a<n[1]&&(t.size=t.min,e.nextReachedMinPanes+=t.min)}),e.nextPanesSize=this.sumNextPanesSize(n[1]-1),n[1]===void 0)?(e.nextReachedMinPanes=0,this.panes[this.panesCount-1].size=this.panes[this.panesCount-1].min,this.panes.forEach((t,a)=>{a<this.panesCount-1&&a>=s+1&&(t.size=t.min,e.nextReachedMinPanes+=t.min)}),this.panes[n[0]].size=100-e.prevPanesSize-e.nextReachedMinPanes-this.panes[this.panesCount-1].min-e.nextPanesSize,null):{sums:e,panesToResize:n}},sumPrevPanesSize(e){return this.panes.reduce((i,s,n)=>i+(n<e?s.size:0),0)},sumNextPanesSize(e){return this.panes.reduce((i,s,n)=>i+(n>e+1?s.size:0),0)},findPrevExpandedPane(e){return[...this.panes].reverse().find(s=>s.index<e&&s.size>s.min)||{}},findNextExpandedPane(e){return this.panes.find(s=>s.index>e+1&&s.size>s.min)||{}},checkSplitpanesNodes(){Array.from(this.container.children).forEach(i=>{const s=i.classList.contains(\"splitpanes__pane\"),n=i.classList.contains(\"splitpanes__splitter\");if(!s&&!n){i.parentNode.removeChild(i),console.warn(\"Splitpanes: Only <pane> elements are allowed at the root of <splitpanes>. One of your DOM nodes was removed.\");return}})},addSplitter(e,i,s=!1){const n=e-1,t=document.createElement(\"div\");t.classList.add(\"splitpanes__splitter\"),s||(t.onmousedown=a=>this.onMouseDown(a,n),typeof window!=\"undefined\"&&\"ontouchstart\"in window&&(t.ontouchstart=a=>this.onMouseDown(a,n)),t.onclick=a=>this.onSplitterClick(a,n+1)),this.dblClickSplitter&&(t.ondblclick=a=>this.onSplitterDblClick(a,n+1)),i.parentNode.insertBefore(t,i)},removeSplitter(e){e.onmousedown=void 0,e.onclick=void 0,e.ondblclick=void 0,e.parentNode.removeChild(e)},redoSplitters(){const e=Array.from(this.container.children);e.forEach(s=>{s.className.includes(\"splitpanes__splitter\")&&this.removeSplitter(s)});let i=0;e.forEach(s=>{s.className.includes(\"splitpanes__pane\")&&(!i&&this.firstSplitter?this.addSplitter(i,s,!0):i&&this.addSplitter(i,s),i++)})},requestUpdate(s){var n=s,{target:e}=n,i=b(n,[\"target\"]);const t=this.indexedPanes[e._uid];Object.entries(i).forEach(([a,r])=>t[a]=r)},onPaneAdd(e){let i=-1;Array.from(e.$el.parentNode.children).some(t=>(t.className.includes(\"splitpanes__pane\")&&i++,t===e.$el));const s=parseFloat(e.minSize),n=parseFloat(e.maxSize);this.panes.splice(i,0,{id:e._uid,index:i,min:isNaN(s)?0:s,max:isNaN(n)?100:n,size:e.size===null?null:parseFloat(e.size),givenSize:e.size,update:e.update}),this.panes.forEach((t,a)=>t.index=a),this.ready&&this.$nextTick(()=>{this.redoSplitters(),this.resetPaneSizes({addedPane:this.panes[i]}),this.$emit(\"pane-add\",{index:i,panes:this.panes.map(t=>({min:t.min,max:t.max,size:t.size}))})})},onPaneRemove(e){const i=this.panes.findIndex(n=>n.id===e._uid),s=this.panes.splice(i,1)[0];this.panes.forEach((n,t)=>n.index=t),this.$nextTick(()=>{this.redoSplitters(),this.resetPaneSizes({removedPane:y(C({},s),{index:i})}),this.$emit(\"pane-remove\",{removed:s,panes:this.panes.map(n=>({min:n.min,max:n.max,size:n.size}))})})},resetPaneSizes(e={}){!e.addedPane&&!e.removedPane?this.initialPanesSizing():this.panes.some(i=>i.givenSize!==null||i.min||i.max<100)?this.equalizeAfterAddOrRemove(e):this.equalize(),this.ready&&this.$emit(\"resized\",this.panes.map(i=>({min:i.min,max:i.max,size:i.size})))},equalize(){const e=100/this.panesCount;let i=0,s=[],n=[];this.panes.forEach(t=>{t.size=Math.max(Math.min(e,t.max),t.min),i-=t.size,t.size>=t.max&&s.push(t.id),t.size<=t.min&&n.push(t.id)}),i>.1&&this.readjustSizes(i,s,n)},initialPanesSizing(){100/this.panesCount;let e=100,i=[],s=[],n=0;this.panes.forEach(a=>{e-=a.size,a.size!==null&&n++,a.size>=a.max&&i.push(a.id),a.size<=a.min&&s.push(a.id)});let t=100;e>.1&&(this.panes.forEach(a=>{a.size===null&&(a.size=Math.max(Math.min(e/(this.panesCount-n),a.max),a.min)),t-=a.size}),t>.1&&this.readjustSizes(e,i,s))},equalizeAfterAddOrRemove({addedPane:e,removedPane:i}={}){let s=100/this.panesCount,n=0,t=[],a=[];e&&e.givenSize!==null&&(s=(100-e.givenSize)/(this.panesCount-1)),this.panes.forEach(r=>{n-=r.size,r.size>=r.max&&t.push(r.id),r.size<=r.min&&a.push(r.id)}),!(Math.abs(n)<.1)&&(this.panes.forEach(r=>{e&&e.givenSize!==null&&e.id===r.id||(r.size=Math.max(Math.min(s,r.max),r.min)),n-=r.size,r.size>=r.max&&t.push(r.id),r.size<=r.min&&a.push(r.id)}),n>.1&&this.readjustSizes(n,t,a))},readjustSizes(e,i,s){let n;e>0?n=e/(this.panesCount-i.length):n=e/(this.panesCount-s.length),this.panes.forEach((t,a)=>{if(e>0&&!i.includes(t.id)){const r=Math.max(Math.min(t.size+n,t.max),t.min);e-=r-t.size,t.size=r}else if(!s.includes(t.id)){const r=Math.max(Math.min(t.size+n,t.max),t.min);e-=r-t.size,t.size=r}t.update({[this.horizontal?\"height\":\"width\"]:`${this.indexedPanes[t.id].size}%`})}),Math.abs(e)>.1&&this.$nextTick(()=>{this.ready&&console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\")})}},watch:{panes:{deep:!0,immediate:!1,handler(){this.updatePaneComponents()}},horizontal(){this.updatePaneComponents()},firstSplitter(){this.redoSplitters()},dblClickSplitter(e){[...this.container.querySelectorAll(\".splitpanes__splitter\")].forEach((s,n)=>{s.ondblclick=e?t=>this.onSplitterDblClick(t,n):void 0})}},beforeDestroy(){this.ready=!1},mounted(){this.container=this.$refs.container,this.checkSplitpanesNodes(),this.redoSplitters(),this.resetPaneSizes(),this.$emit(\"ready\"),this.ready=!0},render(e){return e(\"div\",{ref:\"container\",class:[\"splitpanes\",`splitpanes--${this.horizontal?\"horizontal\":\"vertical\"}`,{\"splitpanes--dragging\":this.touch.dragging}]},this.$slots.default)}};let E,w;const S={};var R=u(c,E,w,!1,k,null,null,null);function k(e){for(let i in S)this[i]=S[i]}var N=function(){return R.exports}(),$=function(){var e=this,i=e.$createElement,s=e._self._c||i;return s(\"div\",{staticClass:\"splitpanes__pane\",style:e.style,on:{click:function(n){return e.onPaneClick(n,e._uid)}}},[e._t(\"default\")],2)},D=[];const T={name:\"pane\",inject:[\"requestUpdate\",\"onPaneAdd\",\"onPaneRemove\",\"onPaneClick\"],props:{size:{type:[Number,String],default:null},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},data:()=>({style:{}}),mounted(){this.onPaneAdd(this)},beforeDestroy(){this.onPaneRemove(this)},methods:{update(e){this.style=e}},computed:{sizeNumber(){return this.size||this.size===0?parseFloat(this.size):null},minSizeNumber(){return parseFloat(this.minSize)},maxSizeNumber(){return parseFloat(this.maxSize)}},watch:{sizeNumber(e){this.requestUpdate({target:this,size:e})},minSizeNumber(e){this.requestUpdate({target:this,min:e})},maxSizeNumber(e){this.requestUpdate({target:this,max:e})}}},P={};var q=u(T,$,D,!1,O,null,null,null);function O(e){for(let i in P)this[i]=P[i]}var A=function(){return q.exports}();o.Pane=A,o.Splitpanes=N,Object.defineProperty(o,\"__esModule\",{value:!0}),o[Symbol.toStringTag]=\"Module\"});\n","/**!\n * url-search-params-polyfill\n *\n * @author Jerry Bendy (https://github.com/jerrybendy)\n * @licence MIT\n */\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = (function() {\n // #41 Fix issue in RN\n try {\n if (self.URLSearchParams && (new self.URLSearchParams('foo=bar')).get('foo') === 'bar') {\n return self.URLSearchParams;\n }\n } catch (e) {}\n return null;\n })(),\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n isSupportSize = nativeURLSearchParams && 'size' in nativeURLSearchParams.prototype,\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly && isSupportSize) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype['delete'] = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return hasOwnProperty(this [__URLSearchParams__], name);\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var useProxy = self.Proxy && nativeURLSearchParams && (!decodesPlusesCorrectly || !encodesAmpersandsCorrectly || !isSupportObjectConstructor || !isSupportSize);\n var propValue;\n if (useProxy) {\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n propValue = new Proxy(nativeURLSearchParams, {\n construct: function (target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n })\n // Chrome <=60 .toString() on a function proxy got error \"Function.prototype.toString is not generic\"\n propValue.toString = Function.prototype.toString.bind(URLSearchParamsPolyfill);\n } else {\n propValue = URLSearchParamsPolyfill;\n }\n\n /*\n * Apply polyfill to global object and append other prototype into it\n */\n Object.defineProperty(self, 'URLSearchParams', {\n value: propValue\n });\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n // Fix #54, `toString.call(new URLSearchParams)` will return correct value when Proxy not used\n if (!useProxy && self.Symbol) {\n USPProto[self.Symbol.toStringTag] = 'URLSearchParams';\n }\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n if (!('forEach' in USPProto)) {\n USPProto.forEach = function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n }\n\n /**\n * Sort all name-value pairs\n */\n if (!('sort' in USPProto)) {\n USPProto.sort = function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this['delete'](keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n }\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('keys' in USPProto)) {\n USPProto.keys = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('values' in USPProto)) {\n USPProto.values = function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('entries' in USPProto)) {\n USPProto.entries = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n }\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n if (!('size' in USPProto)) {\n Object.defineProperty(USPProto, 'size', {\n get: function () {\n var dict = parseToDict(this.toString())\n if (USPProto === this) {\n throw new TypeError('Illegal invocation at URLSearchParams.invokeGetter')\n }\n return Object.keys(dict).reduce(function (prev, cur) {\n return prev + dict[cur].length;\n }, 0);\n }\n });\n }\n\n function encode(str) {\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return str\n .replace(/[ +]/g, '%20')\n .replace(/(%[a-f0-9]{2})+/ig, function(match) {\n return decodeURIComponent(match);\n });\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n // if `search` is an array, treat it as a sequence\n if (isArray(search)) {\n for (var i = 0; i < search.length; i++) {\n var item = search[i];\n if (isArray(item) && item.length === 2) {\n appendTo(dict, item[0], item[1]);\n } else {\n throw new TypeError(\"Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements\");\n }\n }\n\n } else {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key]);\n }\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n );\n\n // #47 Prevent using `hasOwnProperty` as a property name\n if (hasOwnProperty(dict, name)) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n function isArray(val) {\n return !!val && '[object Array]' === Object.prototype.toString.call(val);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function get() {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function get() {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function get() {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function get() {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function get() {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function get() {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function get() {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function get() {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function get() {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (let i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n const output = [];\n const length32 = input.length * 32;\n const hexTab = '0123456789abcdef';\n\n for (let i = 0; i < length32; i += 8) {\n const x = input[i >> 5] >>> i % 32 & 0xff;\n const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n let a = 1732584193;\n let b = -271733879;\n let c = -1732584194;\n let d = 271733878;\n\n for (let i = 0; i < x.length; i += 16) {\n const olda = a;\n const oldb = b;\n const oldc = c;\n const oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n const length8 = input.length * 8;\n const output = new Uint32Array(getOutputLength(length8));\n\n for (let i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n const lsw = (x & 0xffff) + (y & 0xffff);\n const msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nconst randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nvar _default = {\n randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\n\nfunction rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTab\",class:{ 'icon-loading': _vm.loading }},[(_vm.error)?_c('div',{staticClass:\"emptycontent\",class:{ emptyContentWithSections: _vm.sections.length > 0 }},[_c('div',{staticClass:\"icon icon-error\"}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.error))])]):_vm._e(),_vm._v(\" \"),(!_vm.showSharingDetailsView)?[_c('div',{staticClass:\"sharingTab__content\"},[(_vm.isSharedWithMe)?_c('SharingEntrySimple',_vm._b({staticClass:\"sharing-entry__reshare\",scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.sharedWithMe.user,\"display-name\":_vm.sharedWithMe.displayName}})]},proxy:true}],null,false,3197855346)},'SharingEntrySimple',_vm.sharedWithMe,false)):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"reshare\":_vm.reshare,\"shares\":_vm.shares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingLinkList',{ref:\"linkShareList\",attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"shares\":_vm.linkShares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{ref:\"shareList\",attrs:{\"shares\":_vm.shares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(_vm.canReshare && !_vm.loading)?_c('SharingInherited',{attrs:{\"file-info\":_vm.fileInfo}}):_vm._e(),_vm._v(\" \"),_c('SharingEntryInternal',{attrs:{\"file-info\":_vm.fileInfo}}),_vm._v(\" \"),(_vm.projectsEnabled && _vm.fileInfo)?_c('CollectionList',{attrs:{\"id\":`${_vm.fileInfo.id}`,\"type\":\"file\",\"name\":_vm.fileInfo.name}}):_vm._e()],1),_vm._v(\" \"),_vm._l((_vm.sections),function(section,index){return _c('div',{key:index,ref:'section-' + index,refInFor:true,staticClass:\"sharingTab__additionalContent\"},[_c(section(_vm.$refs['section-'+index], _vm.fileInfo),{tag:\"component\",attrs:{\"file-info\":_vm.fileInfo}})],1)})]:_c('SharingDetailsTab',{attrs:{\"file-info\":_vm.shareDetailsData.fileInfo,\"share\":_vm.shareDetailsData.share},on:{\"close-sharing-details\":_vm.toggleShareDetailsView,\"add:share\":_vm.addShare,\"remove:share\":_vm.removeShare}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*! For license information please see index.module.js.LICENSE.txt */\nvar t={2463:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".emoji-mart,\\n.emoji-mart * {\\n box-sizing: border-box;\\n line-height: 1.15;\\n}\\n\\n.emoji-mart {\\n font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;\\n font-size: 16px;\\n /* display: inline-block; */\\n display: flex;\\n flex-direction: column;\\n height: 420px;\\n color: #222427;\\n border: 1px solid #d9d9d9;\\n border-radius: 5px;\\n background: #fff;\\n}\\n\\n.emoji-mart-emoji {\\n padding: 6px;\\n position: relative;\\n display: inline-block;\\n font-size: 0;\\n border: none;\\n background: none;\\n box-shadow: none;\\n}\\n\\n.emoji-mart-emoji span {\\n display: inline-block;\\n}\\n\\n.emoji-mart-preview-emoji .emoji-mart-emoji span {\\n width: 38px;\\n height: 38px;\\n font-size: 32px;\\n}\\n\\n.emoji-type-native {\\n font-family: 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI',\\n 'Apple Color Emoji', 'Twemoji Mozilla', 'Noto Color Emoji', 'EmojiOne Color',\\n 'Android Emoji';\\n word-break: keep-all;\\n}\\n\\n.emoji-type-image {\\n /* Emoji sheet has 56 columns, see also utils/emoji-data.js, SHEET_COLUMNS variable */\\n /* Here we use (56+1) * 100% to avoid visible edges of nearby icons when scaling for different\\n * screen sizes */\\n background-size: 6100%;\\n}\\n.emoji-type-image.emoji-set-apple {\\n background-image: url('https://unpkg.com/emoji-datasource-apple@14.0.0/img/apple/sheets-256/64.png');\\n}\\n.emoji-type-image.emoji-set-facebook {\\n background-image: url('https://unpkg.com/emoji-datasource-facebook@14.0.0/img/facebook/sheets-256/64.png');\\n}\\n.emoji-type-image.emoji-set-google {\\n background-image: url('https://unpkg.com/emoji-datasource-google@14.0.0/img/google/sheets-256/64.png');\\n}\\n.emoji-type-image.emoji-set-twitter {\\n background-image: url('https://unpkg.com/emoji-datasource-twitter@14.0.0/img/twitter/sheets-256/64.png');\\n}\\n\\n.emoji-mart-bar {\\n border: 0 solid #d9d9d9;\\n}\\n.emoji-mart-bar:first-child {\\n border-bottom-width: 1px;\\n border-top-left-radius: 5px;\\n border-top-right-radius: 5px;\\n}\\n.emoji-mart-bar:last-child {\\n border-top-width: 1px;\\n border-bottom-left-radius: 5px;\\n border-bottom-right-radius: 5px;\\n}\\n\\n.emoji-mart-scroll {\\n position: relative;\\n overflow-y: scroll;\\n flex: 1;\\n padding: 0 6px 6px 6px;\\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\\n will-change: transform; /* avoids \\\"repaints on scroll\\\" in mobile Chrome */\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.emoji-mart-anchors {\\n display: flex;\\n flex-direction: row;\\n justify-content: space-between;\\n padding: 0 6px;\\n color: #858585;\\n line-height: 0;\\n}\\n\\n.emoji-mart-anchor {\\n position: relative;\\n display: block;\\n flex: 1 1 auto;\\n text-align: center;\\n padding: 12px 4px;\\n overflow: hidden;\\n transition: color 0.1s ease-out;\\n border: none;\\n background: none;\\n box-shadow: none;\\n}\\n.emoji-mart-anchor:hover,\\n.emoji-mart-anchor-selected {\\n color: #464646;\\n}\\n\\n.emoji-mart-anchor-selected .emoji-mart-anchor-bar {\\n bottom: 0;\\n}\\n\\n.emoji-mart-anchor-bar {\\n position: absolute;\\n bottom: -3px;\\n left: 0;\\n width: 100%;\\n height: 3px;\\n background-color: #464646;\\n}\\n\\n.emoji-mart-anchors i {\\n display: inline-block;\\n width: 100%;\\n max-width: 22px;\\n}\\n\\n.emoji-mart-anchors svg {\\n fill: currentColor;\\n max-height: 18px;\\n}\\n\\n.emoji-mart .scroller {\\n height: 250px;\\n position: relative;\\n flex: 1;\\n padding: 0 6px 6px 6px;\\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\\n will-change: transform; /* avoids \\\"repaints on scroll\\\" in mobile Chrome */\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.emoji-mart-search {\\n margin-top: 6px;\\n padding: 0 6px;\\n}\\n.emoji-mart-search input {\\n font-size: 16px;\\n display: block;\\n width: 100%;\\n padding: 0.2em 0.6em;\\n border-radius: 25px;\\n border: 1px solid #d9d9d9;\\n outline: 0;\\n}\\n.emoji-mart-search-results {\\n height: 250px;\\n overflow-y: scroll;\\n}\\n\\n.emoji-mart-category {\\n position: relative;\\n}\\n\\n.emoji-mart-category .emoji-mart-emoji span {\\n z-index: 1;\\n position: relative;\\n text-align: center;\\n cursor: default;\\n}\\n\\n.emoji-mart-category .emoji-mart-emoji:hover:before,\\n.emoji-mart-emoji-selected:before {\\n z-index: 0;\\n content: '';\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #f4f4f4;\\n border-radius: 100%;\\n opacity: 0;\\n}\\n.emoji-mart-category .emoji-mart-emoji:hover:before,\\n.emoji-mart-emoji-selected:before {\\n opacity: 1;\\n}\\n\\n.emoji-mart-category-label {\\n position: sticky;\\n top: 0;\\n}\\n.emoji-mart-static .emoji-mart-category-label {\\n z-index: 2;\\n position: relative;\\n /* position: sticky; */\\n /* position: -webkit-sticky; */\\n}\\n\\n.emoji-mart-category-label h3 {\\n display: block;\\n font-size: 16px;\\n width: 100%;\\n font-weight: 500;\\n padding: 5px 6px;\\n background-color: #fff;\\n background-color: rgba(255, 255, 255, 0.95);\\n}\\n\\n.emoji-mart-emoji {\\n position: relative;\\n display: inline-block;\\n font-size: 0;\\n}\\n\\n.emoji-mart-no-results {\\n font-size: 14px;\\n text-align: center;\\n padding-top: 70px;\\n color: #858585;\\n}\\n.emoji-mart-no-results .emoji-mart-category-label {\\n display: none;\\n}\\n.emoji-mart-no-results .emoji-mart-no-results-label {\\n margin-top: 0.2em;\\n}\\n.emoji-mart-no-results .emoji-mart-emoji:hover:before {\\n content: none;\\n}\\n\\n.emoji-mart-preview {\\n position: relative;\\n height: 70px;\\n}\\n\\n.emoji-mart-preview-emoji,\\n.emoji-mart-preview-data,\\n.emoji-mart-preview-skins {\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n\\n.emoji-mart-preview-emoji {\\n left: 12px;\\n}\\n\\n.emoji-mart-preview-data {\\n left: 68px;\\n right: 12px;\\n word-break: break-all;\\n}\\n\\n.emoji-mart-preview-skins {\\n right: 30px;\\n text-align: right;\\n}\\n\\n.emoji-mart-preview-name {\\n font-size: 14px;\\n}\\n\\n.emoji-mart-preview-shortname {\\n font-size: 12px;\\n color: #888;\\n}\\n.emoji-mart-preview-shortname + .emoji-mart-preview-shortname,\\n.emoji-mart-preview-shortname + .emoji-mart-preview-emoticon,\\n.emoji-mart-preview-emoticon + .emoji-mart-preview-emoticon {\\n margin-left: 0.5em;\\n}\\n\\n.emoji-mart-preview-emoticon {\\n font-size: 11px;\\n color: #bbb;\\n}\\n\\n.emoji-mart-title span {\\n display: inline-block;\\n vertical-align: middle;\\n}\\n\\n.emoji-mart-title .emoji-mart-emoji {\\n padding: 0;\\n}\\n\\n.emoji-mart-title-label {\\n color: #999a9c;\\n font-size: 21px;\\n font-weight: 300;\\n}\\n\\n.emoji-mart-skin-swatches {\\n font-size: 0;\\n padding: 2px 0;\\n border: 1px solid #d9d9d9;\\n border-radius: 12px;\\n background-color: #fff;\\n}\\n\\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch {\\n width: 16px;\\n padding: 0 2px;\\n}\\n\\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch-selected:after {\\n opacity: 0.75;\\n}\\n\\n.emoji-mart-skin-swatch {\\n display: inline-block;\\n width: 0;\\n vertical-align: middle;\\n transition-property: width, padding;\\n transition-duration: 0.125s;\\n transition-timing-function: ease-out;\\n}\\n\\n.emoji-mart-skin-swatch:nth-child(1) {\\n transition-delay: 0s;\\n}\\n.emoji-mart-skin-swatch:nth-child(2) {\\n transition-delay: 0.03s;\\n}\\n.emoji-mart-skin-swatch:nth-child(3) {\\n transition-delay: 0.06s;\\n}\\n.emoji-mart-skin-swatch:nth-child(4) {\\n transition-delay: 0.09s;\\n}\\n.emoji-mart-skin-swatch:nth-child(5) {\\n transition-delay: 0.12s;\\n}\\n.emoji-mart-skin-swatch:nth-child(6) {\\n transition-delay: 0.15s;\\n}\\n\\n.emoji-mart-skin-swatch-selected {\\n position: relative;\\n width: 16px;\\n padding: 0 2px;\\n}\\n.emoji-mart-skin-swatch-selected:after {\\n content: '';\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 4px;\\n height: 4px;\\n margin: -2px 0 0 -2px;\\n background-color: #fff;\\n border-radius: 100%;\\n pointer-events: none;\\n opacity: 0;\\n transition: opacity 0.2s ease-out;\\n}\\n\\n.emoji-mart-skin {\\n display: inline-block;\\n width: 100%;\\n padding-top: 100%;\\n max-width: 12px;\\n border-radius: 100%;\\n}\\n\\n.emoji-mart-skin-tone-1 {\\n background-color: #ffc93a;\\n}\\n.emoji-mart-skin-tone-2 {\\n background-color: #fadcbc;\\n}\\n.emoji-mart-skin-tone-3 {\\n background-color: #e0bb95;\\n}\\n.emoji-mart-skin-tone-4 {\\n background-color: #bf8f68;\\n}\\n.emoji-mart-skin-tone-5 {\\n background-color: #9b643d;\\n}\\n.emoji-mart-skin-tone-6 {\\n background-color: #594539;\\n}\\n\\n/* vue-virtual-scroller/dist/vue-virtual-scroller.css */\\n.emoji-mart .vue-recycle-scroller {\\n position: relative;\\n}\\n.emoji-mart .vue-recycle-scroller.direction-vertical:not(.page-mode) {\\n overflow-y: auto;\\n}\\n.emoji-mart .vue-recycle-scroller.direction-horizontal:not(.page-mode) {\\n overflow-x: auto;\\n}\\n.emoji-mart .vue-recycle-scroller.direction-horizontal {\\n display: flex;\\n}\\n.emoji-mart .vue-recycle-scroller__slot {\\n flex: auto 0 0;\\n}\\n.emoji-mart .vue-recycle-scroller__item-wrapper {\\n flex: 1;\\n box-sizing: border-box;\\n overflow: hidden;\\n position: relative;\\n}\\n.emoji-mart .vue-recycle-scroller.ready .vue-recycle-scroller__item-view {\\n position: absolute;\\n top: 0;\\n left: 0;\\n will-change: transform;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.direction-vertical\\n .vue-recycle-scroller__item-wrapper {\\n width: 100%;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.direction-horizontal\\n .vue-recycle-scroller__item-wrapper {\\n height: 100%;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.ready.direction-vertical\\n .vue-recycle-scroller__item-view {\\n width: 100%;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.ready.direction-horizontal\\n .vue-recycle-scroller__item-view {\\n height: 100%;\\n}\\n.emoji-mart .resize-observer[data-v-b329ee4c] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: -1;\\n width: 100%;\\n height: 100%;\\n border: none;\\n background-color: transparent;\\n pointer-events: none;\\n display: block;\\n overflow: hidden;\\n opacity: 0;\\n}\\n.emoji-mart .resize-observer[data-v-b329ee4c] object {\\n display: block;\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n overflow: hidden;\\n pointer-events: none;\\n z-index: -1;\\n}\\n.emoji-mart-search .hidden {\\n display: none;\\n visibility: hidden;\\n}\\n\",\"\",{version:3,sources:[\"webpack://./node_modules/emoji-mart-vue-fast/css/emoji-mart.css\"],names:[],mappings:\"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lB;;AAEA;EACE,YAAY;EACZ,cAAc;EACd,yBAAyB;EACzB,mBAAmB;EACnB,sBAAsB;AACxB;;AAEA;EACE,WAAW;EACX,cAAc;AAChB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,qBAAqB;EACrB,QAAQ;EACR,sBAAsB;EACtB,mCAAmC;EACnC,2BAA2B;EAC3B,oCAAoC;AACtC;;AAEA;EACE,oBAAoB;AACtB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,cAAc;AAChB;AACA;EACE,WAAW;EACX,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX,qBAAqB;EACrB,sBAAsB;EACtB,mBAAmB;EACnB,oBAAoB;EACpB,UAAU;EACV,iCAAiC;AACnC;;AAEA;EACE,qBAAqB;EACrB,WAAW;EACX,iBAAiB;EACjB,eAAe;EACf,mBAAmB;AACrB;;AAEA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;;AAEA,uDAAuD;AACvD;EACE,kBAAkB;AACpB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,OAAO;EACP,sBAAsB;EACtB,gBAAgB;EAChB,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,sBAAsB;AACxB;AACA;;;EAGE,WAAW;AACb;AACA;;;EAGE,YAAY;AACd;AACA;;;EAGE,WAAW;AACb;AACA;;;EAGE,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,6BAA6B;EAC7B,oBAAoB;EACpB,cAAc;EACd,gBAAgB;EAChB,UAAU;AACZ;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,YAAY;EACZ,WAAW;EACX,gBAAgB;EAChB,oBAAoB;EACpB,WAAW;AACb;AACA;EACE,aAAa;EACb,kBAAkB;AACpB\",sourcesContent:[\".emoji-mart,\\n.emoji-mart * {\\n box-sizing: border-box;\\n line-height: 1.15;\\n}\\n\\n.emoji-mart {\\n font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;\\n font-size: 16px;\\n /* display: inline-block; */\\n display: flex;\\n flex-direction: column;\\n height: 420px;\\n color: #222427;\\n border: 1px solid #d9d9d9;\\n border-radius: 5px;\\n background: #fff;\\n}\\n\\n.emoji-mart-emoji {\\n padding: 6px;\\n position: relative;\\n display: inline-block;\\n font-size: 0;\\n border: none;\\n background: none;\\n box-shadow: none;\\n}\\n\\n.emoji-mart-emoji span {\\n display: inline-block;\\n}\\n\\n.emoji-mart-preview-emoji .emoji-mart-emoji span {\\n width: 38px;\\n height: 38px;\\n font-size: 32px;\\n}\\n\\n.emoji-type-native {\\n font-family: 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI',\\n 'Apple Color Emoji', 'Twemoji Mozilla', 'Noto Color Emoji', 'EmojiOne Color',\\n 'Android Emoji';\\n word-break: keep-all;\\n}\\n\\n.emoji-type-image {\\n /* Emoji sheet has 56 columns, see also utils/emoji-data.js, SHEET_COLUMNS variable */\\n /* Here we use (56+1) * 100% to avoid visible edges of nearby icons when scaling for different\\n * screen sizes */\\n background-size: 6100%;\\n}\\n.emoji-type-image.emoji-set-apple {\\n background-image: url('https://unpkg.com/emoji-datasource-apple@14.0.0/img/apple/sheets-256/64.png');\\n}\\n.emoji-type-image.emoji-set-facebook {\\n background-image: url('https://unpkg.com/emoji-datasource-facebook@14.0.0/img/facebook/sheets-256/64.png');\\n}\\n.emoji-type-image.emoji-set-google {\\n background-image: url('https://unpkg.com/emoji-datasource-google@14.0.0/img/google/sheets-256/64.png');\\n}\\n.emoji-type-image.emoji-set-twitter {\\n background-image: url('https://unpkg.com/emoji-datasource-twitter@14.0.0/img/twitter/sheets-256/64.png');\\n}\\n\\n.emoji-mart-bar {\\n border: 0 solid #d9d9d9;\\n}\\n.emoji-mart-bar:first-child {\\n border-bottom-width: 1px;\\n border-top-left-radius: 5px;\\n border-top-right-radius: 5px;\\n}\\n.emoji-mart-bar:last-child {\\n border-top-width: 1px;\\n border-bottom-left-radius: 5px;\\n border-bottom-right-radius: 5px;\\n}\\n\\n.emoji-mart-scroll {\\n position: relative;\\n overflow-y: scroll;\\n flex: 1;\\n padding: 0 6px 6px 6px;\\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\\n will-change: transform; /* avoids \\\"repaints on scroll\\\" in mobile Chrome */\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.emoji-mart-anchors {\\n display: flex;\\n flex-direction: row;\\n justify-content: space-between;\\n padding: 0 6px;\\n color: #858585;\\n line-height: 0;\\n}\\n\\n.emoji-mart-anchor {\\n position: relative;\\n display: block;\\n flex: 1 1 auto;\\n text-align: center;\\n padding: 12px 4px;\\n overflow: hidden;\\n transition: color 0.1s ease-out;\\n border: none;\\n background: none;\\n box-shadow: none;\\n}\\n.emoji-mart-anchor:hover,\\n.emoji-mart-anchor-selected {\\n color: #464646;\\n}\\n\\n.emoji-mart-anchor-selected .emoji-mart-anchor-bar {\\n bottom: 0;\\n}\\n\\n.emoji-mart-anchor-bar {\\n position: absolute;\\n bottom: -3px;\\n left: 0;\\n width: 100%;\\n height: 3px;\\n background-color: #464646;\\n}\\n\\n.emoji-mart-anchors i {\\n display: inline-block;\\n width: 100%;\\n max-width: 22px;\\n}\\n\\n.emoji-mart-anchors svg {\\n fill: currentColor;\\n max-height: 18px;\\n}\\n\\n.emoji-mart .scroller {\\n height: 250px;\\n position: relative;\\n flex: 1;\\n padding: 0 6px 6px 6px;\\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\\n will-change: transform; /* avoids \\\"repaints on scroll\\\" in mobile Chrome */\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.emoji-mart-search {\\n margin-top: 6px;\\n padding: 0 6px;\\n}\\n.emoji-mart-search input {\\n font-size: 16px;\\n display: block;\\n width: 100%;\\n padding: 0.2em 0.6em;\\n border-radius: 25px;\\n border: 1px solid #d9d9d9;\\n outline: 0;\\n}\\n.emoji-mart-search-results {\\n height: 250px;\\n overflow-y: scroll;\\n}\\n\\n.emoji-mart-category {\\n position: relative;\\n}\\n\\n.emoji-mart-category .emoji-mart-emoji span {\\n z-index: 1;\\n position: relative;\\n text-align: center;\\n cursor: default;\\n}\\n\\n.emoji-mart-category .emoji-mart-emoji:hover:before,\\n.emoji-mart-emoji-selected:before {\\n z-index: 0;\\n content: '';\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #f4f4f4;\\n border-radius: 100%;\\n opacity: 0;\\n}\\n.emoji-mart-category .emoji-mart-emoji:hover:before,\\n.emoji-mart-emoji-selected:before {\\n opacity: 1;\\n}\\n\\n.emoji-mart-category-label {\\n position: sticky;\\n top: 0;\\n}\\n.emoji-mart-static .emoji-mart-category-label {\\n z-index: 2;\\n position: relative;\\n /* position: sticky; */\\n /* position: -webkit-sticky; */\\n}\\n\\n.emoji-mart-category-label h3 {\\n display: block;\\n font-size: 16px;\\n width: 100%;\\n font-weight: 500;\\n padding: 5px 6px;\\n background-color: #fff;\\n background-color: rgba(255, 255, 255, 0.95);\\n}\\n\\n.emoji-mart-emoji {\\n position: relative;\\n display: inline-block;\\n font-size: 0;\\n}\\n\\n.emoji-mart-no-results {\\n font-size: 14px;\\n text-align: center;\\n padding-top: 70px;\\n color: #858585;\\n}\\n.emoji-mart-no-results .emoji-mart-category-label {\\n display: none;\\n}\\n.emoji-mart-no-results .emoji-mart-no-results-label {\\n margin-top: 0.2em;\\n}\\n.emoji-mart-no-results .emoji-mart-emoji:hover:before {\\n content: none;\\n}\\n\\n.emoji-mart-preview {\\n position: relative;\\n height: 70px;\\n}\\n\\n.emoji-mart-preview-emoji,\\n.emoji-mart-preview-data,\\n.emoji-mart-preview-skins {\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n\\n.emoji-mart-preview-emoji {\\n left: 12px;\\n}\\n\\n.emoji-mart-preview-data {\\n left: 68px;\\n right: 12px;\\n word-break: break-all;\\n}\\n\\n.emoji-mart-preview-skins {\\n right: 30px;\\n text-align: right;\\n}\\n\\n.emoji-mart-preview-name {\\n font-size: 14px;\\n}\\n\\n.emoji-mart-preview-shortname {\\n font-size: 12px;\\n color: #888;\\n}\\n.emoji-mart-preview-shortname + .emoji-mart-preview-shortname,\\n.emoji-mart-preview-shortname + .emoji-mart-preview-emoticon,\\n.emoji-mart-preview-emoticon + .emoji-mart-preview-emoticon {\\n margin-left: 0.5em;\\n}\\n\\n.emoji-mart-preview-emoticon {\\n font-size: 11px;\\n color: #bbb;\\n}\\n\\n.emoji-mart-title span {\\n display: inline-block;\\n vertical-align: middle;\\n}\\n\\n.emoji-mart-title .emoji-mart-emoji {\\n padding: 0;\\n}\\n\\n.emoji-mart-title-label {\\n color: #999a9c;\\n font-size: 21px;\\n font-weight: 300;\\n}\\n\\n.emoji-mart-skin-swatches {\\n font-size: 0;\\n padding: 2px 0;\\n border: 1px solid #d9d9d9;\\n border-radius: 12px;\\n background-color: #fff;\\n}\\n\\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch {\\n width: 16px;\\n padding: 0 2px;\\n}\\n\\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch-selected:after {\\n opacity: 0.75;\\n}\\n\\n.emoji-mart-skin-swatch {\\n display: inline-block;\\n width: 0;\\n vertical-align: middle;\\n transition-property: width, padding;\\n transition-duration: 0.125s;\\n transition-timing-function: ease-out;\\n}\\n\\n.emoji-mart-skin-swatch:nth-child(1) {\\n transition-delay: 0s;\\n}\\n.emoji-mart-skin-swatch:nth-child(2) {\\n transition-delay: 0.03s;\\n}\\n.emoji-mart-skin-swatch:nth-child(3) {\\n transition-delay: 0.06s;\\n}\\n.emoji-mart-skin-swatch:nth-child(4) {\\n transition-delay: 0.09s;\\n}\\n.emoji-mart-skin-swatch:nth-child(5) {\\n transition-delay: 0.12s;\\n}\\n.emoji-mart-skin-swatch:nth-child(6) {\\n transition-delay: 0.15s;\\n}\\n\\n.emoji-mart-skin-swatch-selected {\\n position: relative;\\n width: 16px;\\n padding: 0 2px;\\n}\\n.emoji-mart-skin-swatch-selected:after {\\n content: '';\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 4px;\\n height: 4px;\\n margin: -2px 0 0 -2px;\\n background-color: #fff;\\n border-radius: 100%;\\n pointer-events: none;\\n opacity: 0;\\n transition: opacity 0.2s ease-out;\\n}\\n\\n.emoji-mart-skin {\\n display: inline-block;\\n width: 100%;\\n padding-top: 100%;\\n max-width: 12px;\\n border-radius: 100%;\\n}\\n\\n.emoji-mart-skin-tone-1 {\\n background-color: #ffc93a;\\n}\\n.emoji-mart-skin-tone-2 {\\n background-color: #fadcbc;\\n}\\n.emoji-mart-skin-tone-3 {\\n background-color: #e0bb95;\\n}\\n.emoji-mart-skin-tone-4 {\\n background-color: #bf8f68;\\n}\\n.emoji-mart-skin-tone-5 {\\n background-color: #9b643d;\\n}\\n.emoji-mart-skin-tone-6 {\\n background-color: #594539;\\n}\\n\\n/* vue-virtual-scroller/dist/vue-virtual-scroller.css */\\n.emoji-mart .vue-recycle-scroller {\\n position: relative;\\n}\\n.emoji-mart .vue-recycle-scroller.direction-vertical:not(.page-mode) {\\n overflow-y: auto;\\n}\\n.emoji-mart .vue-recycle-scroller.direction-horizontal:not(.page-mode) {\\n overflow-x: auto;\\n}\\n.emoji-mart .vue-recycle-scroller.direction-horizontal {\\n display: flex;\\n}\\n.emoji-mart .vue-recycle-scroller__slot {\\n flex: auto 0 0;\\n}\\n.emoji-mart .vue-recycle-scroller__item-wrapper {\\n flex: 1;\\n box-sizing: border-box;\\n overflow: hidden;\\n position: relative;\\n}\\n.emoji-mart .vue-recycle-scroller.ready .vue-recycle-scroller__item-view {\\n position: absolute;\\n top: 0;\\n left: 0;\\n will-change: transform;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.direction-vertical\\n .vue-recycle-scroller__item-wrapper {\\n width: 100%;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.direction-horizontal\\n .vue-recycle-scroller__item-wrapper {\\n height: 100%;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.ready.direction-vertical\\n .vue-recycle-scroller__item-view {\\n width: 100%;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.ready.direction-horizontal\\n .vue-recycle-scroller__item-view {\\n height: 100%;\\n}\\n.emoji-mart .resize-observer[data-v-b329ee4c] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: -1;\\n width: 100%;\\n height: 100%;\\n border: none;\\n background-color: transparent;\\n pointer-events: none;\\n display: block;\\n overflow: hidden;\\n opacity: 0;\\n}\\n.emoji-mart .resize-observer[data-v-b329ee4c] object {\\n display: block;\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n overflow: hidden;\\n pointer-events: none;\\n z-index: -1;\\n}\\n.emoji-mart-search .hidden {\\n display: none;\\n visibility: hidden;\\n}\\n\"],sourceRoot:\"\"}]);const s=o},9934:(t,e,n)=>{n.d(e,{Z:()=>T});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r),s=n(1667),l=n.n(s),A=new URL(n(6417),n.b),c=new URL(n(817),n.b),d=new URL(n(3787),n.b),p=new URL(n(5415),n.b),u=o()(a()),m=l()(A),h=l()(c),g=l()(d),C=l()(p);u.push([t.id,'.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mx-icon-left:before,.mx-icon-right:before,.mx-icon-double-left:before,.mx-icon-double-right:before,.mx-icon-double-left:after,.mx-icon-double-right:after{content:\"\";position:relative;top:-1px;display:inline-block;width:10px;height:10px;vertical-align:middle;border-style:solid;border-color:currentColor;border-width:2px 0 0 2px;border-radius:1px;box-sizing:border-box;transform-origin:center;transform:rotate(-45deg) scale(0.7)}.mx-icon-double-left:after{left:-4px}.mx-icon-double-right:before{left:4px}.mx-icon-right:before,.mx-icon-double-right:before,.mx-icon-double-right:after{transform:rotate(135deg) scale(0.7)}.mx-btn{box-sizing:border-box;line-height:1;font-size:14px;font-weight:500;padding:7px 15px;margin:0;cursor:pointer;background-color:rgba(0,0,0,0);outline:none;border:1px solid rgba(0,0,0,.1);border-radius:4px;color:#73879c;white-space:nowrap}.mx-btn:hover{border-color:#1284e7;color:#1284e7}.mx-btn:disabled,.mx-btn.disabled{color:#ccc;cursor:not-allowed}.mx-btn-text{border:0;padding:0 4px;text-align:left;line-height:inherit}.mx-scrollbar{height:100%}.mx-scrollbar:hover .mx-scrollbar-track{opacity:1}.mx-scrollbar-wrap{height:100%;overflow-x:hidden;overflow-y:auto}.mx-scrollbar-track{position:absolute;top:2px;right:2px;bottom:2px;width:6px;z-index:1;border-radius:4px;opacity:0;transition:opacity .24s ease-out}.mx-scrollbar-track .mx-scrollbar-thumb{position:absolute;width:100%;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);transition:background-color .3s}.mx-zoom-in-down-enter-active,.mx-zoom-in-down-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(0.23, 1, 0.32, 1),opacity .3s cubic-bezier(0.23, 1, 0.32, 1);transform-origin:center top}.mx-zoom-in-down-enter,.mx-zoom-in-down-enter-from,.mx-zoom-in-down-leave-to{opacity:0;transform:scaleY(0)}.mx-datepicker{position:relative;display:inline-block;width:210px}.mx-datepicker svg{width:1em;height:1em;vertical-align:-0.15em;fill:currentColor;overflow:hidden}.mx-datepicker-range{width:320px}.mx-datepicker-inline{width:auto}.mx-input-wrapper{position:relative}.mx-input{display:inline-block;box-sizing:border-box;width:100%;height:34px;padding:6px 30px;padding-left:10px;font-size:14px;line-height:1.4;color:#555;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.mx-input:hover,.mx-input:focus{border-color:#409aff}.mx-input:disabled,.mx-input.disabled{color:#ccc;background-color:#f3f3f3;border-color:#ccc;cursor:not-allowed}.mx-input:focus{outline:none}.mx-input::-ms-clear{display:none}.mx-icon-calendar,.mx-icon-clear{position:absolute;top:50%;right:8px;transform:translateY(-50%);font-size:16px;line-height:1;color:rgba(0,0,0,.5);vertical-align:middle}.mx-icon-clear{cursor:pointer}.mx-icon-clear:hover{color:rgba(0,0,0,.8)}.mx-datepicker-main{font:14px/1.5 \"Helvetica Neue\",Helvetica,Arial,\"Microsoft Yahei\",sans-serif;color:#73879c;background-color:#fff;border:1px solid #e8e8e8}.mx-datepicker-popup{position:absolute;margin-top:1px;margin-bottom:1px;box-shadow:0 6px 12px rgba(0,0,0,.175);z-index:2001}.mx-datepicker-sidebar{float:left;box-sizing:border-box;width:100px;padding:6px;overflow:auto}.mx-datepicker-sidebar+.mx-datepicker-content{margin-left:100px;border-left:1px solid #e8e8e8}.mx-datepicker-body{position:relative;user-select:none}.mx-btn-shortcut{display:block;padding:0 6px;line-height:24px}.mx-range-wrapper{display:flex}@media(max-width: 750px){.mx-range-wrapper{flex-direction:column}}.mx-datepicker-header{padding:6px 8px;border-bottom:1px solid #e8e8e8}.mx-datepicker-footer{padding:6px 8px;text-align:right;border-top:1px solid #e8e8e8}.mx-calendar{box-sizing:border-box;width:248px;padding:6px 12px}.mx-calendar+.mx-calendar{border-left:1px solid #e8e8e8}.mx-calendar-header,.mx-time-header{box-sizing:border-box;height:34px;line-height:34px;text-align:center;overflow:hidden}.mx-btn-icon-left,.mx-btn-icon-double-left{float:left}.mx-btn-icon-right,.mx-btn-icon-double-right{float:right}.mx-calendar-header-label{font-size:14px}.mx-calendar-decade-separator{margin:0 2px}.mx-calendar-decade-separator:after{content:\"~\"}.mx-calendar-content{position:relative;height:224px;box-sizing:border-box}.mx-calendar-content .cell{cursor:pointer}.mx-calendar-content .cell:hover{color:#73879c;background-color:#f3f9fe}.mx-calendar-content .cell.active{color:#fff;background-color:#1284e7}.mx-calendar-content .cell.in-range,.mx-calendar-content .cell.hover-in-range{color:#73879c;background-color:#dbedfb}.mx-calendar-content .cell.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-calendar-week-mode .mx-date-row{cursor:pointer}.mx-calendar-week-mode .mx-date-row:hover{background-color:#f3f9fe}.mx-calendar-week-mode .mx-date-row.mx-active-week{background-color:#dbedfb}.mx-calendar-week-mode .mx-date-row .cell:hover{color:inherit;background-color:rgba(0,0,0,0)}.mx-calendar-week-mode .mx-date-row .cell.active{color:inherit;background-color:rgba(0,0,0,0)}.mx-week-number{opacity:.5}.mx-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;height:100%;box-sizing:border-box;text-align:center}.mx-table th{padding:0;font-weight:500;vertical-align:middle}.mx-table td{padding:0;vertical-align:middle}.mx-table-date td,.mx-table-date th{height:32px;font-size:12px}.mx-table-date .today{color:#2a90e9}.mx-table-date .cell.not-current-month{color:#ccc;background:none}.mx-time{flex:1;width:224px;background:#fff}.mx-time+.mx-time{border-left:1px solid #e8e8e8}.mx-calendar-time{position:absolute;top:0;left:0;width:100%;height:100%}.mx-time-header{border-bottom:1px solid #e8e8e8}.mx-time-content{height:224px;box-sizing:border-box;overflow:hidden}.mx-time-columns{display:flex;width:100%;height:100%;overflow:hidden}.mx-time-column{flex:1;position:relative;border-left:1px solid #e8e8e8;text-align:center}.mx-time-column:first-child{border-left:0}.mx-time-column .mx-time-list{margin:0;padding:0;list-style:none}.mx-time-column .mx-time-list::after{content:\"\";display:block;height:192px}.mx-time-column .mx-time-item{cursor:pointer;font-size:12px;height:32px;line-height:32px}.mx-time-column .mx-time-item:hover{color:#73879c;background-color:#f3f9fe}.mx-time-column .mx-time-item.active{color:#1284e7;background-color:rgba(0,0,0,0);font-weight:700}.mx-time-column .mx-time-item.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-time-option{cursor:pointer;padding:8px 10px;font-size:14px;line-height:20px}.mx-time-option:hover{color:#73879c;background-color:#f3f9fe}.mx-time-option.active{color:#1284e7;background-color:rgba(0,0,0,0);font-weight:700}.mx-time-option.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-datepicker[data-v-7310e89]{user-select:none;color:var(--color-main-text)}.mx-datepicker[data-v-7310e89] svg{fill:var(--color-main-text)}.mx-datepicker[data-v-7310e89] .mx-input-wrapper .mx-input{width:100%;border:2px solid var(--color-border-maxcontrast);background-color:var(--color-main-background);background-clip:content-box}.mx-datepicker[data-v-7310e89] .mx-input-wrapper .mx-input:active:not(.disabled),.mx-datepicker[data-v-7310e89] .mx-input-wrapper .mx-input:hover:not(.disabled),.mx-datepicker[data-v-7310e89] .mx-input-wrapper .mx-input:focus:not(.disabled){border-color:var(--color-primary-element)}.mx-datepicker[data-v-7310e89] .mx-input-wrapper:disabled,.mx-datepicker[data-v-7310e89] .mx-input-wrapper.disabled{cursor:not-allowed;opacity:.7}.mx-datepicker[data-v-7310e89] .mx-input-wrapper .mx-icon-calendar,.mx-datepicker[data-v-7310e89] .mx-input-wrapper .mx-icon-clear{color:var(--color-text-lighter)}.mx-datepicker-main{color:var(--color-main-text);border:1px solid var(--color-border);background-color:var(--color-main-background);font-family:var(--font-face) !important;line-height:1.5}.mx-datepicker-main svg{fill:var(--color-main-text)}.mx-datepicker-main.mx-datepicker-popup{z-index:2000;box-shadow:none}.mx-datepicker-main.mx-datepicker-popup .mx-datepicker-sidebar+.mx-datepicker-content{border-left:1px solid var(--color-border)}.mx-datepicker-main.show-week-number .mx-calendar{width:296px}.mx-datepicker-main .mx-datepicker-header{border-bottom:1px solid var(--color-border)}.mx-datepicker-main .mx-datepicker-footer{border-top:1px solid var(--color-border)}.mx-datepicker-main .mx-datepicker-btn-confirm{background-color:var(--color-primary-element);border-color:var(--color-primary-element);color:var(--color-primary-element-text) !important;opacity:1 !important}.mx-datepicker-main .mx-datepicker-btn-confirm:hover{background-color:var(--color-primary-element-light) !important;border-color:var(--color-primary-element-light) !important}.mx-datepicker-main .mx-calendar{width:264px;padding:5px}.mx-datepicker-main .mx-calendar.mx-calendar-week-mode{width:296px}.mx-datepicker-main .mx-time+.mx-time,.mx-datepicker-main .mx-calendar+.mx-calendar{border-left:1px solid var(--color-border)}.mx-datepicker-main .mx-range-wrapper{display:flex;overflow:hidden}.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell.active{border-radius:var(--border-radius) 0 0 var(--border-radius)}.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell.in-range+.cell.active{border-radius:0 var(--border-radius) var(--border-radius) 0}.mx-datepicker-main .mx-table{text-align:center}.mx-datepicker-main .mx-table thead>tr>th{text-align:center;opacity:.5;color:var(--color-text-lighter)}.mx-datepicker-main .mx-table tr:focus,.mx-datepicker-main .mx-table tr:hover,.mx-datepicker-main .mx-table tr:active{background-color:rgba(0,0,0,0)}.mx-datepicker-main .mx-table .cell{transition:all 100ms ease-in-out;text-align:center;opacity:.7;border-radius:50px}.mx-datepicker-main .mx-table .cell>*{cursor:pointer}.mx-datepicker-main .mx-table .cell.today{opacity:1;color:var(--color-primary-element);font-weight:bold}.mx-datepicker-main .mx-table .cell.today:hover,.mx-datepicker-main .mx-table .cell.today:focus{color:var(--color-primary-element-text)}.mx-datepicker-main .mx-table .cell.in-range,.mx-datepicker-main .mx-table .cell.disabled{border-radius:0;font-weight:normal}.mx-datepicker-main .mx-table .cell.in-range{opacity:.7}.mx-datepicker-main .mx-table .cell.not-current-month{opacity:.5;color:var(--color-text-lighter)}.mx-datepicker-main .mx-table .cell.not-current-month:hover,.mx-datepicker-main .mx-table .cell.not-current-month:focus{opacity:1}.mx-datepicker-main .mx-table .cell:hover,.mx-datepicker-main .mx-table .cell:focus,.mx-datepicker-main .mx-table .cell.actived,.mx-datepicker-main .mx-table .cell.active,.mx-datepicker-main .mx-table .cell.in-range{opacity:1;color:var(--color-primary-element-text);background-color:var(--color-primary-element);font-weight:bold}.mx-datepicker-main .mx-table .cell.disabled{opacity:.5;color:var(--color-text-lighter);border-radius:0;background-color:var(--color-background-darker)}.mx-datepicker-main .mx-table .mx-week-number{text-align:center;opacity:.7;border-radius:50px}.mx-datepicker-main .mx-table span.mx-week-number,.mx-datepicker-main .mx-table li.mx-week-number,.mx-datepicker-main .mx-table span.cell,.mx-datepicker-main .mx-table li.cell{min-height:32px}.mx-datepicker-main .mx-table.mx-table-date thead,.mx-datepicker-main .mx-table.mx-table-date tbody,.mx-datepicker-main .mx-table.mx-table-year,.mx-datepicker-main .mx-table.mx-table-month{display:flex;flex-direction:column;justify-content:space-around}.mx-datepicker-main .mx-table.mx-table-date thead tr,.mx-datepicker-main .mx-table.mx-table-date tbody tr,.mx-datepicker-main .mx-table.mx-table-year tr,.mx-datepicker-main .mx-table.mx-table-month tr{display:inline-flex;align-items:center;flex:1 1 32px;justify-content:space-around;min-height:32px}.mx-datepicker-main .mx-table.mx-table-date thead th,.mx-datepicker-main .mx-table.mx-table-date thead td,.mx-datepicker-main .mx-table.mx-table-date tbody th,.mx-datepicker-main .mx-table.mx-table-date tbody td,.mx-datepicker-main .mx-table.mx-table-year th,.mx-datepicker-main .mx-table.mx-table-year td,.mx-datepicker-main .mx-table.mx-table-month th,.mx-datepicker-main .mx-table.mx-table-month td{display:flex;align-items:center;flex:0 1 32%;justify-content:center;min-width:32px;height:95%;min-height:32px;transition:background 100ms ease-in-out}.mx-datepicker-main .mx-table.mx-table-year tr th,.mx-datepicker-main .mx-table.mx-table-year tr td{flex-basis:48%}.mx-datepicker-main .mx-table.mx-table-date tr th,.mx-datepicker-main .mx-table.mx-table-date tr td{flex-basis:32px}.mx-datepicker-main .mx-btn{min-width:32px;height:32px;margin:0 2px !important;padding:7px 10px;cursor:pointer;text-decoration:none;opacity:.5;color:var(--color-text-lighter);border-radius:32px;line-height:20px}.mx-datepicker-main .mx-btn:hover,.mx-datepicker-main .mx-btn:focus{opacity:1;color:var(--color-main-text);background-color:var(--color-background-darker)}.mx-datepicker-main .mx-calendar-header,.mx-datepicker-main .mx-time-header{display:inline-flex;align-items:center;justify-content:space-between;width:100%;height:44px;margin-bottom:4px}.mx-datepicker-main .mx-calendar-header button,.mx-datepicker-main .mx-time-header button{min-width:32px;min-height:32px;margin:0;cursor:pointer;text-align:center;text-decoration:none;opacity:.7;color:var(--color-main-text);border-radius:32px;line-height:20px}.mx-datepicker-main .mx-calendar-header button:hover,.mx-datepicker-main .mx-time-header button:hover,.mx-datepicker-main .mx-calendar-header button:focus,.mx-datepicker-main .mx-time-header button:focus{opacity:1;color:var(--color-main-text);background-color:var(--color-background-darker)}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left,.mx-datepicker-main .mx-time-header button.mx-btn-icon-left,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right,.mx-datepicker-main .mx-time-header button.mx-btn-icon-right,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right{align-items:center;justify-content:center;width:32px;padding:0}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left>i,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left>i,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left>i,.mx-datepicker-main .mx-time-header button.mx-btn-icon-left>i,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right>i,.mx-datepicker-main .mx-time-header button.mx-btn-icon-right>i,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right>i,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right>i{background-repeat:no-repeat;background-size:16px;background-position:center;filter:var(--background-invert-if-dark);display:inline-block;width:32px;height:32px}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left>i::after,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left>i::after,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left>i::before,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left>i::before,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left>i::after,.mx-datepicker-main .mx-time-header button.mx-btn-icon-left>i::after,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left>i::before,.mx-datepicker-main .mx-time-header button.mx-btn-icon-left>i::before,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right>i::after,.mx-datepicker-main .mx-time-header button.mx-btn-icon-right>i::after,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right>i::before,.mx-datepicker-main .mx-time-header button.mx-btn-icon-right>i::before,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right>i::after,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right>i::after,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right>i::before,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right>i::before{content:none}.mx-datepicker-main .mx-calendar-header button.mx-btn-text,.mx-datepicker-main .mx-time-header button.mx-btn-text{line-height:initial}.mx-datepicker-main .mx-calendar-header .mx-calendar-header-label,.mx-datepicker-main .mx-time-header .mx-calendar-header-label{display:flex}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-left>i,.mx-datepicker-main .mx-time-header .mx-btn-icon-double-left>i{background-image:url('+m+\")}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-left>i,.mx-datepicker-main .mx-time-header .mx-btn-icon-left>i{background-image:url(\"+h+\")}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-right>i,.mx-datepicker-main .mx-time-header .mx-btn-icon-right>i{background-image:url(\"+g+\")}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-right>i,.mx-datepicker-main .mx-time-header .mx-btn-icon-double-right>i{background-image:url(\"+C+\")}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right,.mx-datepicker-main .mx-time-header button.mx-btn-icon-right{order:2}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right{order:3}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row .mx-week-number{font-weight:bold}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week{opacity:1;border-radius:50px;background-color:var(--color-background-dark)}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td{background-color:rgba(0,0,0,0)}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td:hover,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td:focus,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td:hover,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td:focus{color:inherit}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td{opacity:.7;font-weight:normal}.mx-datepicker-main .mx-time{background-color:var(--color-main-background)}.mx-datepicker-main .mx-time .mx-time-header{justify-content:center;border-bottom:1px solid var(--color-border)}.mx-datepicker-main .mx-time .mx-time-column{border-left:1px solid var(--color-border)}.mx-datepicker-main .mx-time .mx-time-option.active,.mx-datepicker-main .mx-time .mx-time-option:hover,.mx-datepicker-main .mx-time .mx-time-item.active,.mx-datepicker-main .mx-time .mx-time-item:hover{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.mx-datepicker-main .mx-time .mx-time-option.disabled,.mx-datepicker-main .mx-time .mx-time-item.disabled{cursor:not-allowed;opacity:.5;color:var(--color-main-text);background-color:var(--color-main-background)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./node_modules/vue2-datepicker/scss/icon.scss\",\"webpack://./node_modules/vue2-datepicker/scss/btn.scss\",\"webpack://./node_modules/vue2-datepicker/scss/var.scss\",\"webpack://./node_modules/vue2-datepicker/scss/scrollbar.scss\",\"webpack://./node_modules/vue2-datepicker/scss/animation.scss\",\"webpack://./node_modules/vue2-datepicker/scss/index.scss\",\"webpack://./src/components/NcDatetimePicker/index.scss\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"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\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@import './var.scss';\\n\\n.#{$namespace}-icon-left:before,\\n.#{$namespace}-icon-right:before,\\n.#{$namespace}-icon-double-left:before,\\n.#{$namespace}-icon-double-right:before,\\n.#{$namespace}-icon-double-left:after,\\n.#{$namespace}-icon-double-right:after {\\n content: '';\\n position: relative;\\n top: -1px;\\n display: inline-block;\\n width: 10px;\\n height: 10px;\\n vertical-align: middle;\\n border-style: solid;\\n border-color: currentColor;\\n border-width: 2px 0 0 2px;\\n border-radius: 1px;\\n box-sizing: border-box;\\n transform-origin: center;\\n transform: rotate(-45deg) scale(0.7);\\n}\\n\\n.#{$namespace}-icon-double-left:after {\\n left: -4px;\\n}\\n\\n.#{$namespace}-icon-double-right:before {\\n left: 4px;\\n}\\n\\n.#{$namespace}-icon-right:before,\\n.#{$namespace}-icon-double-right:before,\\n.#{$namespace}-icon-double-right:after {\\n transform: rotate(135deg) scale(0.7);\\n}\\n\",\"@import './var.scss';\\n\\n.#{$namespace}-btn {\\n box-sizing: border-box;\\n line-height: 1;\\n font-size: 14px;\\n font-weight: 500;\\n padding: 7px 15px;\\n margin: 0;\\n cursor: pointer;\\n background-color: transparent;\\n outline: none;\\n border: 1px solid rgba(0, 0, 0, 0.1);\\n border-radius: 4px;\\n color: $default-color;\\n white-space: nowrap;\\n &:hover {\\n border-color: $primary-color;\\n color: $primary-color;\\n }\\n &:disabled,\\n &.disabled {\\n color: $disabled-color;\\n cursor: not-allowed;\\n }\\n}\\n\\n.#{$namespace}-btn-text {\\n border: 0;\\n padding: 0 4px;\\n text-align: left;\\n line-height: inherit;\\n}\\n\",\"$namespace: 'mx' !default;\\n\\n$default-color: #73879c !default;\\n$primary-color: #1284e7 !default;\\n\\n$today-color: mix(#fff, $primary-color, 10%) !default;\\n\\n$popup-z-index: 2001 !default;\\n\\n$input-border-color: #ccc !default;\\n$input-color: #555 !default;\\n$input-hover-border-color: #409aff !default;\\n\\n$disabled-color: #ccc !default;\\n$disabled-background-color: #f3f3f3 !default;\\n\\n$border-color: #e8e8e8 !default;\\n\\n$calendar-active-color: #fff !default;\\n$calendar-active-background-color: $primary-color !default;\\n\\n$calendar-hover-color: $default-color !default;\\n$calendar-hover-background-color: mix(#fff, $calendar-active-background-color, 95%) !default;\\n\\n$calendar-in-range-color: $default-color !default;\\n$calendar-in-range-background-color: mix(#fff, $calendar-active-background-color, 85%) !default;\\n\\n$time-active-color: $primary-color !default;\\n$time-active-background-color: transparent !default;\\n\\n$time-hover-color: $default-color !default;\\n$time-hover-background-color: mix(#fff, $calendar-active-background-color, 95%) !default;\\n\\n$input-border-radius: 4px !default;\\n$sidebar-margin-left: 100px !default;\\n\",\"@import './var.scss';\\n\\n.#{$namespace}-scrollbar {\\n height: 100%;\\n &:hover {\\n .#{$namespace}-scrollbar-track {\\n opacity: 1;\\n }\\n }\\n}\\n\\n.#{$namespace}-scrollbar-wrap {\\n height: 100%;\\n overflow-x: hidden;\\n overflow-y: auto;\\n}\\n\\n.#{$namespace}-scrollbar-track {\\n position: absolute;\\n top: 2px;\\n right: 2px;\\n bottom: 2px;\\n width: 6px;\\n z-index: 1;\\n border-radius: 4px;\\n opacity: 0;\\n transition: opacity 0.24s ease-out;\\n .#{$namespace}-scrollbar-thumb {\\n position: absolute;\\n width: 100%;\\n height: 0;\\n cursor: pointer;\\n border-radius: inherit;\\n background-color: rgba(144, 147, 153, 0.3);\\n transition: background-color 0.3s;\\n }\\n}\\n\",\"@import './var.scss';\\n\\n.#{$namespace}-zoom-in-down-enter-active,\\n.#{$namespace}-zoom-in-down-leave-active {\\n opacity: 1;\\n transform: scaleY(1);\\n transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1),\\n opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1);\\n transform-origin: center top;\\n}\\n\\n.#{$namespace}-zoom-in-down-enter,\\n.#{$namespace}-zoom-in-down-enter-from,\\n.#{$namespace}-zoom-in-down-leave-to {\\n opacity: 0;\\n transform: scaleY(0);\\n}\\n\",\"@import './var.scss';\\n@import './icon.scss';\\n@import './btn.scss';\\n@import './scrollbar.scss';\\n@import './animation.scss';\\n\\n.#{$namespace}-datepicker {\\n position: relative;\\n display: inline-block;\\n width: 210px;\\n svg {\\n width: 1em;\\n height: 1em;\\n vertical-align: -0.15em;\\n fill: currentColor;\\n overflow: hidden;\\n }\\n}\\n\\n.#{$namespace}-datepicker-range {\\n width: 320px;\\n}\\n\\n.#{$namespace}-datepicker-inline {\\n width: auto;\\n}\\n\\n.#{$namespace}-input-wrapper {\\n position: relative;\\n}\\n\\n.#{$namespace}-input {\\n display: inline-block;\\n box-sizing: border-box;\\n width: 100%;\\n height: 34px;\\n padding: 6px 30px;\\n padding-left: 10px;\\n font-size: 14px;\\n line-height: 1.4;\\n color: $input-color;\\n background-color: #fff;\\n border: 1px solid $input-border-color;\\n border-radius: $input-border-radius;\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\\n\\n &:hover,\\n &:focus {\\n border-color: $input-hover-border-color;\\n }\\n &:disabled,\\n &.disabled {\\n color: $disabled-color;\\n background-color: $disabled-background-color;\\n border-color: $input-border-color;\\n cursor: not-allowed;\\n }\\n &:focus {\\n outline: none;\\n }\\n &::-ms-clear {\\n display: none;\\n }\\n}\\n\\n.#{$namespace}-icon-calendar,\\n.#{$namespace}-icon-clear {\\n position: absolute;\\n top: 50%;\\n right: 8px;\\n transform: translateY(-50%);\\n font-size: 16px;\\n line-height: 1;\\n color: rgba(0, 0, 0, 0.5);\\n vertical-align: middle;\\n}\\n\\n.#{$namespace}-icon-clear {\\n cursor: pointer;\\n &:hover {\\n color: rgba(0, 0, 0, 0.8);\\n }\\n}\\n\\n.#{$namespace}-datepicker-main {\\n font: 14px/1.5 'Helvetica Neue', Helvetica, Arial, 'Microsoft Yahei', sans-serif;\\n color: $default-color;\\n background-color: #fff;\\n border: 1px solid $border-color;\\n}\\n\\n.#{$namespace}-datepicker-popup {\\n position: absolute;\\n margin-top: 1px;\\n margin-bottom: 1px;\\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\\n z-index: $popup-z-index;\\n}\\n\\n.#{$namespace}-datepicker-sidebar {\\n float: left;\\n box-sizing: border-box;\\n width: $sidebar-margin-left;\\n padding: 6px;\\n overflow: auto;\\n}\\n\\n.#{$namespace}-datepicker-sidebar + .#{$namespace}-datepicker-content {\\n margin-left: $sidebar-margin-left;\\n border-left: 1px solid $border-color;\\n}\\n\\n.#{$namespace}-datepicker-body {\\n position: relative;\\n user-select: none;\\n}\\n\\n.#{$namespace}-btn-shortcut {\\n display: block;\\n padding: 0 6px;\\n line-height: 24px;\\n}\\n\\n.#{$namespace}-range-wrapper {\\n display: flex;\\n @media (max-width: 750px) {\\n flex-direction: column;\\n }\\n}\\n\\n.#{$namespace}-datepicker-header {\\n padding: 6px 8px;\\n border-bottom: 1px solid $border-color;\\n}\\n\\n.#{$namespace}-datepicker-footer {\\n padding: 6px 8px;\\n text-align: right;\\n border-top: 1px solid $border-color;\\n}\\n\\n.#{$namespace}-calendar {\\n box-sizing: border-box;\\n width: 248px;\\n padding: 6px 12px;\\n & + & {\\n border-left: 1px solid $border-color;\\n }\\n}\\n\\n.#{$namespace}-calendar-header {\\n box-sizing: border-box;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n overflow: hidden;\\n}\\n\\n.#{$namespace}-btn-icon-left,\\n.#{$namespace}-btn-icon-double-left {\\n float: left;\\n}\\n.#{$namespace}-btn-icon-right,\\n.#{$namespace}-btn-icon-double-right {\\n float: right;\\n}\\n\\n.#{$namespace}-calendar-header-label {\\n font-size: 14px;\\n}\\n\\n.#{$namespace}-calendar-decade-separator {\\n margin: 0 2px;\\n &:after {\\n content: '~';\\n }\\n}\\n\\n.#{$namespace}-calendar-content {\\n position: relative;\\n height: 224px;\\n box-sizing: border-box;\\n .cell {\\n cursor: pointer;\\n &:hover {\\n color: $calendar-hover-color;\\n background-color: $calendar-hover-background-color;\\n }\\n &.active {\\n color: $calendar-active-color;\\n background-color: $calendar-active-background-color;\\n }\\n &.in-range,\\n &.hover-in-range {\\n color: $calendar-in-range-color;\\n background-color: $calendar-in-range-background-color;\\n }\\n &.disabled {\\n cursor: not-allowed;\\n color: $disabled-color;\\n background-color: $disabled-background-color;\\n }\\n }\\n}\\n\\n.#{$namespace}-calendar-week-mode {\\n .#{$namespace}-date-row {\\n cursor: pointer;\\n &:hover {\\n background-color: $calendar-hover-background-color;\\n }\\n &.#{$namespace}-active-week {\\n background-color: $calendar-in-range-background-color;\\n }\\n .cell {\\n &:hover {\\n color: inherit;\\n background-color: transparent;\\n }\\n &.active {\\n color: inherit;\\n background-color: transparent;\\n }\\n }\\n }\\n}\\n\\n.#{$namespace}-week-number {\\n opacity: 0.5;\\n}\\n\\n.#{$namespace}-table {\\n table-layout: fixed;\\n border-collapse: separate;\\n border-spacing: 0;\\n width: 100%;\\n height: 100%;\\n box-sizing: border-box;\\n text-align: center;\\n\\n th {\\n padding: 0;\\n font-weight: 500;\\n vertical-align: middle;\\n }\\n td {\\n padding: 0;\\n vertical-align: middle;\\n }\\n}\\n\\n.#{$namespace}-table-date {\\n td,\\n th {\\n height: 32px;\\n font-size: 12px;\\n }\\n\\n .today {\\n color: $today-color;\\n }\\n .cell.not-current-month {\\n color: #ccc;\\n background: none; // cover the in-range style\\n }\\n}\\n\\n.#{$namespace}-time {\\n flex: 1;\\n width: 224px;\\n background: #fff;\\n & + & {\\n border-left: 1px solid $border-color;\\n }\\n}\\n.#{$namespace}-calendar-time {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n.#{$namespace}-time-header {\\n @extend .#{$namespace}-calendar-header;\\n border-bottom: 1px solid $border-color;\\n}\\n\\n.#{$namespace}-time-content {\\n height: 224px;\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n\\n.#{$namespace}-time-columns {\\n display: flex;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n}\\n\\n.#{$namespace}-time-column {\\n flex: 1;\\n position: relative;\\n border-left: 1px solid $border-color;\\n text-align: center;\\n\\n &:first-child {\\n border-left: 0;\\n }\\n .#{$namespace}-time-list {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n &::after {\\n content: '';\\n display: block;\\n height: 32 * 6px;\\n }\\n }\\n .#{$namespace}-time-item {\\n cursor: pointer;\\n font-size: 12px;\\n height: 32px;\\n line-height: 32px;\\n &:hover {\\n color: $time-hover-color;\\n background-color: $time-hover-background-color;\\n }\\n &.active {\\n color: $time-active-color;\\n background-color: $time-active-background-color;\\n font-weight: 700;\\n }\\n &.disabled {\\n cursor: not-allowed;\\n color: $disabled-color;\\n background-color: $disabled-background-color;\\n }\\n }\\n}\\n\\n.#{$namespace}-time-option {\\n cursor: pointer;\\n padding: 8px 10px;\\n font-size: 14px;\\n line-height: 20px;\\n &:hover {\\n color: $time-hover-color;\\n background-color: $time-hover-background-color;\\n }\\n &.active {\\n color: $time-active-color;\\n background-color: $time-active-background-color;\\n font-weight: 700;\\n }\\n &.disabled {\\n cursor: not-allowed;\\n color: $disabled-color;\\n background-color: $disabled-background-color;\\n }\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n$cell_height: 32px;\\n\\n@import '~vue2-datepicker/scss/index';\\n\\n.mx-datepicker[data-v-#{$scope_version}] {\\n\\tuser-select: none;\\n\\tcolor: var(--color-main-text);\\n\\n\\tsvg {\\n\\t\\tfill: var(--color-main-text);\\n\\t}\\n\\n\\t/* INPUT CONTAINER */\\n\\t.mx-input-wrapper {\\n\\t\\t// input\\n\\t\\t.mx-input {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tborder: 2px solid var(--color-border-maxcontrast);\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tbackground-clip: content-box;\\n\\t\\t\\t\\n\\t\\t\\t&:active:not(.disabled),\\n\\t\\t\\t&:hover:not(.disabled),\\n\\t\\t\\t&:focus:not(.disabled) {\\n\\t\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:disabled,\\n\\t\\t&.disabled {\\n\\t\\t\\tcursor: not-allowed;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t}\\n\\n\\t\\t.mx-icon-calendar,\\n\\t\\t.mx-icon-clear {\\n\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t}\\n\\t}\\n}\\n\\n// Datepicker popup wrapper\\n.mx-datepicker-main {\\n\\tcolor: var(--color-main-text);\\n\\tborder: 1px solid var(--color-border);\\n\\tbackground-color: var(--color-main-background);\\n\\tfont-family: var(--font-face) !important;\\n\\tline-height: 1.5;\\n\\n\\tsvg {\\n\\t\\tfill: var(--color-main-text);\\n\\t}\\n\\n\\t&.mx-datepicker-popup {\\n\\t\\tz-index: 2000;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\t.mx-datepicker-sidebar + .mx-datepicker-content {\\n\\t\\t\\tborder-left: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\t\\n\\t&.show-week-number .mx-calendar {\\n\\t\\twidth: $cell_height * 8 + 2 * 5px + 30px; // week number + 7 days + padding + 30px padding to fit the buttons\\n\\t}\\n\\n\\t.mx-datepicker-header {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t.mx-datepicker-footer {\\n\\t\\tborder-top: 1px solid var(--color-border);\\n\\t}\\n\\n\\t.mx-datepicker-btn-confirm {\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\tborder-color: var(--color-primary-element);\\n\\t\\tcolor: var(--color-primary-element-text) !important;\\n\\t\\topacity: 1 !important;\\n\\t}\\n\\n\\t.mx-datepicker-btn-confirm:hover {\\n\\t\\tbackground-color: var(--color-primary-element-light) !important;\\n\\t\\tborder-color: var(--color-primary-element-light) !important;\\n\\t}\\n\\n\\t// default popup styles\\n\\t.mx-calendar {\\n\\t\\twidth: $cell_height * 7 + 2 * 5px + 30px; // 7 days + padding + 30px padding to fit the buttons\\n\\t\\tpadding: 5px;\\n\\t\\t&.mx-calendar-week-mode {\\n\\t\\t\\twidth: $cell_height * 8 + 2 * 5px + 30px; // week number + 7 days + padding + 30px padding to fit the buttons\\n\\t\\t}\\n\\t}\\n\\n\\t.mx-time + .mx-time,\\n\\t.mx-calendar + .mx-calendar {\\n\\t\\tborder-left: 1px solid var(--color-border);\\n\\t}\\n\\n\\t.mx-range-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\toverflow: hidden;\\n\\n\\t\\t// first active cell, range style on day picker panel only\\n\\t\\t.mx-calendar-content .mx-table-date .cell {\\n\\t\\t\\t&.active {\\n\\t\\t\\t\\tborder-radius: var(--border-radius) 0 0 var(--border-radius);\\n\\t\\t\\t}\\n\\t\\t\\t// second selected cell\\n\\t\\t\\t&.in-range + .cell.active {\\n\\t\\t\\t\\tborder-radius: 0 var(--border-radius) var(--border-radius) 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// Various panels\\n\\t.mx-table {\\n\\t\\ttext-align: center;\\n\\n\\t\\tthead > tr > th {\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t}\\n\\n\\t\\t// Override table rule from server\\n\\t\\ttr:focus,\\n\\t\\ttr:hover,\\n\\t\\ttr:active {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\n\\t\\t// regular cell style\\n\\t\\t.cell {\\n\\t\\t\\ttransition: all 100ms ease-in-out;\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tborder-radius: 50px;\\n\\n\\t\\t\\t// force pointer on all content\\n\\t\\t\\t> * {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Selected and mouse event\\n\\t\\t\\t&.today {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&.in-range,\\n\\t\\t\\t&.disabled {\\n\\t\\t\\t\\tborder-radius: 0;\\n\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t}\\n\\t\\t\\t&.in-range {\\n\\t\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\t}\\n\\t\\t\\t&.not-current-month {\\n\\t\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t// hover-/focus after the other rules\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&.actived,\\n\\t\\t\\t&.active,\\n\\t\\t\\t&.in-range {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t}\\n\\t\\t\\t&.disabled {\\n\\t\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t\\t\\tborder-radius: 0;\\n\\t\\t\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.mx-week-number {\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tborder-radius: 50px;\\n\\t\\t}\\n\\n\\t\\t// cell that are not in a table\\n\\t\\tspan.mx-week-number,\\n\\t\\tli.mx-week-number,\\n\\t\\tspan.cell,\\n\\t\\tli.cell {\\n\\t\\t\\tmin-height: $cell_height;\\n\\t\\t}\\n\\n\\t\\t// Standard grid/flex layout for day/month/year panels\\n\\t\\t&.mx-table-date thead,\\n\\t\\t&.mx-table-date tbody,\\n\\t\\t&.mx-table-year,\\n\\t\\t&.mx-table-month {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\tjustify-content: space-around;\\n\\t\\t\\ttr {\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tflex: 1 1 $cell_height;\\n\\t\\t\\t\\tjustify-content: space-around;\\n\\t\\t\\t\\tmin-height: $cell_height;\\n\\t\\t\\t}\\n\\t\\t\\t// Default cell style\\n\\t\\t\\tth,\\n\\t\\t\\ttd {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\t// 3 rows with a little spacing\\n\\t\\t\\t\\tflex: 0 1 32%;\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\tmin-width: $cell_height;\\n\\t\\t\\t\\t// spacing between rows\\n\\t\\t\\t\\theight: 95%;\\n\\t\\t\\t\\tmin-height: $cell_height;\\n\\t\\t\\t\\ttransition: background 100ms ease-in-out;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&.mx-table-year {\\n\\t\\t\\ttr th,\\n\\t\\t\\ttr td {\\n\\t\\t\\t\\t// only two rows in year panel\\n\\t\\t\\t\\tflex-basis: 48%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&.mx-table-date {\\n\\t\\t\\ttr th,\\n\\t\\t\\ttr td {\\n\\t\\t\\t\\t// only two rows in year panel\\n\\t\\t\\t\\tflex-basis: $cell_height;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// default buttons: header...\\n\\t.mx-btn {\\n\\t\\tmin-width: $cell_height;\\n\\t\\theight: $cell_height;\\n\\t\\tmargin: 0 2px !important; // center also single element. Definitively use margin so that buttons are not touching\\n\\t\\tpadding: 7px 10px;\\n\\t\\tcursor: pointer;\\n\\t\\ttext-decoration: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t\\tborder-radius: $cell_height;\\n\\t\\tline-height: $cell_height - 12px; // padding minus 2px for better visual\\n\\t\\t// Mouse feedback\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\t}\\n\\t}\\n\\n\\t// Header, arrows, years, months\\n\\t.mx-calendar-header {\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: space-between;\\n\\t\\twidth: 100%;\\n\\t\\theight: $clickable-area;\\n\\t\\tmargin-bottom: 4px;\\n\\n\\t\\tbutton {\\n\\t\\t\\tmin-width: $cell_height;\\n\\t\\t\\tmin-height: $cell_height;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\ttext-decoration: none;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tborder-radius: $cell_height;\\n\\t\\t\\tline-height: $cell_height - 12px; // padding minus 2px for better visual\\n\\n\\t\\t\\t// Mouse feedback\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Header arrows\\n\\t\\t\\t&.mx-btn-icon-double-left,\\n\\t\\t\\t&.mx-btn-icon-left,\\n\\t\\t\\t&.mx-btn-icon-right,\\n\\t\\t\\t&.mx-btn-icon-double-right {\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\twidth: $cell_height;\\n\\t\\t\\t\\tpadding: 0; // leave the centering to flex\\n\\n\\t\\t\\t\\t> i {\\n\\t\\t\\t\\t\\t// Hide original icons\\n\\t\\t\\t\\t\\t&::after, &::before {\\n\\t\\t\\t\\t\\t\\tcontent: none;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\t\\t\\tbackground-size: 16px;\\n\\t\\t\\t\\t\\tbackground-position: center;\\n\\t\\t\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\t\\t\\twidth: 32px;\\n\\t\\t\\t\\t\\theight: 32px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&.mx-btn-text {\\n\\t\\t\\t\\tline-height: initial;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.mx-calendar-header-label {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\n\\t\\t.mx-btn-icon-double-left > i {\\n\\t\\t\\tbackground-image: url('./chevron-double-left.svg');\\n\\t\\t}\\n\\n\\t\\t.mx-btn-icon-left > i {\\n\\t\\t\\tbackground-image: url('./chevron-left.svg');\\n\\t\\t}\\n\\n\\t\\t.mx-btn-icon-right > i {\\n\\t\\t\\tbackground-image: url('./chevron-right.svg');\\n\\t\\t}\\n\\n\\t\\t.mx-btn-icon-double-right > i {\\n\\t\\t\\tbackground-image: url('./chevron-double-right.svg');\\n\\t\\t}\\n\\n\\t\\tbutton.mx-btn-icon-right {\\n\\t\\t\\torder: 2;\\n\\t\\t}\\n\\n\\t\\tbutton.mx-btn-icon-double-right {\\n\\t\\t\\torder: 3;\\n\\t\\t}\\n\\t}\\n\\t// Week panel\\n\\t.mx-calendar-week-mode {\\n\\t\\t// move focus on row and not on cell\\n\\t\\t.mx-date-row {\\n\\t\\t\\t.mx-week-number {\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t}\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&.mx-active-week {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\tborder-radius: 50px;\\n\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\ttd {\\n\\t\\t\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t\\t\\t&, &:hover, &:focus {\\n\\t\\t\\t\\t\\t\\tcolor: inherit;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&.mx-active-week {\\n\\t\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t\\t// Remove cell feedback on selected rows\\n\\t\\t\\t\\ttd {\\n\\t\\t\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// Time panel\\n\\t.mx-time {\\n\\t\\tbackground-color: var(--color-main-background);\\n\\n\\t\\t.mx-time-header {\\n\\t\\t\\t// only one button, center it\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t\\t}\\n\\n\\t\\t.mx-time-column {\\n\\t\\t\\tborder-left: 1px solid var(--color-border);\\n\\t\\t}\\n\\n\\t\\t.mx-time-option,\\n\\t\\t.mx-time-item {\\n\\t\\t\\t&.active,\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&.disabled {\\n\\t\\t\\t\\tcursor: not-allowed;\\n\\t\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const T=u},636:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,'.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.multiselect[data-v-7310e89]{margin:0;padding:0 !important;display:inline-block;min-width:260px;position:relative}.multiselect[data-v-7310e89]:not(.multiselect--active) .multiselect__single{width:100%;z-index:2 !important}.multiselect[data-v-7310e89].multiselect--active.multiselect--above input.multiselect__input{border-radius:0 0 var(--border-radius) var(--border-radius)}.multiselect[data-v-7310e89].multiselect--disabled,.multiselect[data-v-7310e89].multiselect--disabled .multiselect__single{background-color:var(--color-background-dark) !important}.multiselect[data-v-7310e89] .loading-icon{position:absolute;right:1px;top:1px;width:48px;height:35px;background:var(--color-main-background);z-index:3}.multiselect[data-v-7310e89] .multiselect__tags{display:flex;flex-wrap:nowrap;overflow:hidden;border:2px solid var(--color-border-dark);cursor:pointer;position:relative;border-radius:var(--border-radius-large);min-height:44px;height:44px;padding:8px 12px !important;background-color:var(--color-main-background);box-sizing:border-box}.multiselect[data-v-7310e89] .multiselect__tags:focus,.multiselect[data-v-7310e89] .multiselect__tags:hover{border-color:var(--color-primary-element)}.multiselect[data-v-7310e89] .multiselect__tags .multiselect__tags-wrap{align-items:center;display:inline-flex;overflow:hidden;max-width:100%;position:relative;gap:5px;flex:1 1;flex-wrap:nowrap}.multiselect[data-v-7310e89] .multiselect__tags .multiselect__tags-wrap:empty~input.multiselect__input{opacity:1 !important;display:block !important}.multiselect[data-v-7310e89] .multiselect__tags .multiselect__tags-wrap:empty~input.multiselect__input+span:not(.multiselect__single){display:none}.multiselect[data-v-7310e89] .multiselect__tags .multiselect__tags-wrap .multiselect__tag{line-height:20px;padding:2px 5px;background-image:none;color:var(--color-main-text);border:1px solid var(--color-border-dark);display:inline-flex;align-items:center;border-radius:var(--border-radius);min-width:0;max-width:fit-content;max-width:-moz-fit-content;margin:0}.multiselect[data-v-7310e89] .multiselect__tags .multiselect__tags-wrap .multiselect__tag:only-child{flex:0 1 auto}.multiselect[data-v-7310e89] .multiselect__tags .multiselect__tags-wrap .multiselect__tag>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.multiselect[data-v-7310e89] .multiselect__tags .multiselect__single,.multiselect[data-v-7310e89] .multiselect__tags .multiselect__placeholder{z-index:1;background-color:var(--color-main-background);line-height:18px;color:var(--color-text-lighter);display:flex;align-items:center;font-size:var(--default-font-size)}.multiselect[data-v-7310e89] .multiselect__tags .multiselect__single,.multiselect[data-v-7310e89] .multiselect__tags .multiselect__single *,.multiselect[data-v-7310e89] .multiselect__tags .multiselect__placeholder,.multiselect[data-v-7310e89] .multiselect__tags .multiselect__placeholder *{cursor:pointer}.multiselect[data-v-7310e89] .multiselect__tags .multiselect__strong,.multiselect[data-v-7310e89] .multiselect__tags .multiselect__limit{line-height:20px;color:var(--color-text-lighter);display:inline-flex;align-items:center;opacity:.7;margin-right:5px;z-index:5}.multiselect[data-v-7310e89] .multiselect__tags input.multiselect__input{width:100% !important;height:auto !important;margin:0;opacity:0;border:none;cursor:pointer;display:none;height:40px;min-height:26px;padding:0 !important;font-size:var(--default-font-size)}.multiselect[data-v-7310e89].multiselect--active input.multiselect__input{opacity:1 !important;cursor:text !important;border-radius:var(--border-radius) var(--border-radius) 0 0;display:block !important}.multiselect[data-v-7310e89].multiselect--active .multiselect__limit{display:none}.multiselect[data-v-7310e89] .multiselect__content-wrapper{position:absolute;width:100%;margin-top:-1px;border:1px solid var(--color-border-dark);background:var(--color-main-background);z-index:50;max-height:250px;overflow-y:auto;border-radius:0 0 var(--border-radius) var(--border-radius)}.multiselect[data-v-7310e89] .multiselect__content-wrapper .multiselect__content{width:100%;padding:0}.multiselect[data-v-7310e89] .multiselect__content-wrapper li{position:relative;display:flex;align-items:center;background-color:rgba(0,0,0,0)}.multiselect[data-v-7310e89] .multiselect__content-wrapper li,.multiselect[data-v-7310e89] .multiselect__content-wrapper li span{cursor:pointer}.multiselect[data-v-7310e89] .multiselect__content-wrapper li>span{padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;height:auto;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-flex;align-items:center;background-color:rgba(0,0,0,0);color:var(--color-text-lighter);width:100%}.multiselect[data-v-7310e89] .multiselect__content-wrapper li>span::before{content:\" \";background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px;display:block;opacity:.5;margin-right:5px;visibility:hidden}.multiselect[data-v-7310e89] .multiselect__content-wrapper li>span.multiselect__option--disabled{background-color:var(--color-background-dark);opacity:.5}.multiselect[data-v-7310e89] .multiselect__content-wrapper li>span.multiselect__option--highlight{color:var(--color-main-text);background-color:var(--color-background-dark)}.multiselect[data-v-7310e89] .multiselect__content-wrapper li>span:not(.multiselect__option--disabled):hover::before{opacity:.3}.multiselect[data-v-7310e89] .multiselect__content-wrapper li>span.multiselect__option--selected::before,.multiselect[data-v-7310e89] .multiselect__content-wrapper li>span:not(.multiselect__option--disabled):hover::before{visibility:visible}.multiselect[data-v-7310e89].multiselect--above .multiselect__content-wrapper{bottom:100%;margin-bottom:-1px}.multiselect[data-v-7310e89].multiselect--multiple .multiselect__tags{flex-wrap:wrap}.multiselect[data-v-7310e89].multiselect--multiple .multiselect__content-wrapper li>span::before{background-image:var(--icon-checkmark-dark)}.multiselect[data-v-7310e89].multiselect--multiple .multiselect__content-wrapper li>span[data-select=create]::before{background-image:var(--icon-add-dark);visibility:visible}.multiselect[data-v-7310e89].multiselect--single .multiselect__content-wrapper li>span::before{display:none}.multiselect[data-v-7310e89]:hover .multiselect__placeholder,.multiselect[data-v-7310e89] input.multiselect__input .multiselect__placeholder{color:var(--color-main-text)}',\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcMultiselect/index.scss\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,6BACC,QAAA,CACA,oBAAA,CACA,oBAAA,CAEA,eAAA,CACA,iBAAA,CAGA,4EACC,UAAA,CACA,oBAAA,CAKA,6FACC,2DAAA,CAKF,2HAEC,wDAAA,CAID,2CACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,UAAA,CACA,WAAA,CACA,uCAAA,CACA,SAAA,CAID,gDAGC,YAAA,CACA,gBAAA,CACA,eAAA,CACA,yCAAA,CACA,cAAA,CACA,iBAAA,CACA,wCAAA,CACA,eAAA,CACA,WAAA,CACA,2BAAA,CACA,6CAAA,CACA,qBAAA,CAEA,4GACC,yCAAA,CAID,wEACC,kBAAA,CACA,mBAAA,CACA,eAAA,CACA,cAAA,CACA,iBAAA,CACA,OAzBe,CA0Bf,QAAA,CACA,gBAAA,CAGA,uGACC,oBAAA,CACA,wBAAA,CAIA,sIACC,YAAA,CAIF,0FACC,gBAAA,CACA,eAAA,CACA,qBAAA,CACA,4BAAA,CACA,yCAAA,CACA,mBAAA,CACA,kBAAA,CACA,kCAAA,CAGA,WAAA,CACA,qBAAA,CACA,0BAAA,CACA,QAAA,CAGA,qGACC,aAAA,CAID,+FACC,kBAAA,CACA,sBAAA,CACA,eAAA,CAOH,+IAEC,SAAA,CACA,6CAAA,CACA,gBAAA,CACA,+BAAA,CAEA,YAAA,CACA,kBAAA,CACA,kCAAA,CAGA,kSACC,cAAA,CAIF,yIAEC,gBAAA,CACA,+BAAA,CACA,mBAAA,CACA,kBAAA,CACA,UClGc,CDmGd,gBAjGe,CAmGf,SAAA,CAGD,yEACC,qBAAA,CACA,sBAAA,CACA,QAAA,CACA,SAAA,CACA,WAAA,CAGA,cAAA,CAEA,YAAA,CACA,WAAA,CACA,eAAA,CACA,oBAAA,CACA,kCAAA,CAQD,0EACC,oBAAA,CACA,sBAAA,CAEA,2DAAA,CACA,wBAAA,CAID,qEACC,YAAA,CAKF,2DACC,iBAAA,CACA,UAAA,CACA,eAAA,CACA,yCAAA,CACA,uCAAA,CACA,UAAA,CACA,gBAAA,CACA,eAAA,CACA,2DAAA,CACA,iFACC,UAAA,CACA,SAAA,CAED,8DACC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,8BAAA,CACA,iIAEC,cAAA,CAED,mEACC,WAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CACA,cAAA,CACA,0BAAA,CACA,wBAAA,CACA,qBAAA,CACA,oBAAA,CACA,gBAAA,CACA,mBAAA,CACA,kBAAA,CACA,8BAAA,CACA,+BAAA,CACA,UAAA,CAEA,2EACC,WAAA,CACA,2BAAA,CACA,0BAAA,CACA,cAAA,CACA,eAAA,CACA,aAAA,CACA,UC/Lc,CDgMd,gBAAA,CACA,iBAAA,CAED,iGACC,6CAAA,CACA,UCrMc,CDuMf,kGACC,4BAAA,CACA,6CAAA,CAED,qHACC,UAAA,CAIA,8NACC,kBAAA,CAOL,8EACC,WAAA,CACA,kBAAA,CAMA,sEACC,cAAA,CAIA,iGACC,2CAAA,CAMA,qHACC,qCAAA,CACA,kBAAA,CAOJ,+FACC,YAAA,CAMA,6IACC,4BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n// scoping is not working inside the Multiselect.vue component\\n// as the nested properties are not inside it\\n// Therefore we need to use an external scoping\\n.multiselect[data-v-#{$scope_version}] {\\n\\tmargin: 0;\\n\\tpadding: 0 !important;\\n\\tdisplay: inline-block;\\n\\t/* override this rule with your width styling if you need */\\n\\tmin-width: 260px;\\n\\tposition: relative;\\n\\n\\t/* Force single multiselect value to be shown when not active */\\n\\t&:not(.multiselect--active) .multiselect__single {\\n\\t\\twidth: 100%;\\n\\t\\tz-index: 2 !important;\\n\\t}\\n\\n\\t// Remove radius on top opening\\n\\t&.multiselect--active.multiselect--above {\\n\\t\\tinput.multiselect__input {\\n\\t\\t\\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\\n\\t\\t}\\n\\t}\\n\\n\\t// disabled state background\\n\\t&.multiselect--disabled,\\n\\t&.multiselect--disabled .multiselect__single {\\n\\t\\tbackground-color: var(--color-background-dark) !important;\\n\\t}\\n\\n\\t// loading state\\n\\t.loading-icon {\\n\\t\\tposition: absolute;\\n\\t\\tright: 1px;\\n\\t\\ttop: 1px;\\n\\t\\twidth: 48px;\\n\\t\\theight: 35px;\\n\\t\\tbackground: var(--color-main-background);\\n\\t\\tz-index: 3;\\n\\t}\\n\\n\\t// multiple selected options display\\n\\t.multiselect__tags {\\n\\t\\t/* space between tags and limit tag */\\n\\t\\t$space-between: 5px;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\tborder: 2px solid var(--color-border-dark);\\n\\t\\tcursor: pointer;\\n\\t\\tposition: relative;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tmin-height: 44px;\\n\\t\\theight: 44px;\\n\\t\\tpadding: 8px 12px !important;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tbox-sizing: border-box;\\n\\n\\t\\t&:focus, &:hover {\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\n\\t\\t/* tag wrapper */\\n\\t\\t.multiselect__tags-wrap {\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tgap: $space-between;\\n\\t\\t\\tflex: 1 1;\\n\\t\\t\\tflex-wrap: nowrap;\\n\\t\\t\\t/* no tags or simple select? Show input directly\\n\\t\\t\\tinput is used to display single value */\\n\\t\\t\\t&:empty ~ input.multiselect__input {\\n\\t\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t\\t\\tdisplay: block !important;\\n\\t\\t\\t\\t/* hide default empty text like .multiselect__placeholder,\\n\\t\\t\\t\\tand show input instead. It looks better without a transition between\\n\\t\\t\\t\\ta span and the input that have different styling */\\n\\t\\t\\t\\t+ span:not(.multiselect__single) {\\n\\t\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t/* selected tag */\\n\\t\\t\\t.multiselect__tag {\\n\\t\\t\\t\\tline-height: 20px;\\n\\t\\t\\t\\tpadding: 2px 5px;\\n\\t\\t\\t\\tbackground-image: none;\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\t\\t/* require to override the default width\\n\\t\\t\\t\\tand force the tag to shring properly */\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\tmax-width: fit-content;\\n\\t\\t\\t\\tmax-width: -moz-fit-content;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t/* css hack, detect if more than two tags\\n\\t\\t\\t\\tif so, flex-basis is set to half */\\n\\t\\t\\t\\t&:only-child {\\n\\t\\t\\t\\t\\tflex: 0 1 auto;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t/* ellipsis the groups to be sure\\n\\t\\t\\t\\twe display at least two of them */\\n\\t\\t\\t\\t> span {\\n\\t\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Single select default value\\n\\t\\tor default placeholder if search disabled*/\\n\\t\\t.multiselect__single,\\n\\t\\t.multiselect__placeholder {\\n\\t\\t\\tz-index: 1; /* above input */\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tline-height: 18px; // 32px - 2*6px (padding) - 2*1px (border)\\n\\t\\t\\tcolor: var(--color-text-lighter); // like the input\\n\\t\\t\\t// Align content and make the flow smoother\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tfont-size: var(--default-font-size);\\n\\n\\t\\t\\t// Anything inside will trigger the select opening\\n\\t\\t\\t&, * {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* displayed text if tag limit reached */\\n\\t\\t.multiselect__strong,\\n\\t\\t.multiselect__limit {\\n\\t\\t\\tline-height: 20px;\\n\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tmargin-right: $space-between;\\n\\t\\t\\t/* above the input */\\n\\t\\t\\tz-index: 5;\\n\\t\\t}\\n\\t\\t/* default multiselect input for search and placeholder */\\n\\t\\tinput.multiselect__input {\\n\\t\\t\\twidth: 100% !important;\\n\\t\\t\\theight: auto !important;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\topacity: 0;\\n\\t\\t\\tborder: none;\\n\\t\\t\\t/* override hide to force show the placeholder */\\n\\t\\t\\t/* only when not active */\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t/* override inline styling of the lib */\\n\\t\\t\\tdisplay: none;\\n\\t\\t\\theight: 40px;\\n\\t\\t\\tmin-height: 26px;\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\tfont-size: var(--default-font-size);\\n\\t\\t}\\n\\t}\\n\\n\\t// active state, force the input to be shown, we don't want\\n\\t// the placeholder or the currently selected options\\n\\t&.multiselect--active {\\n\\t\\t/* Opened: force display the input */\\n\\t\\tinput.multiselect__input {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t\\tcursor: text !important;\\n\\t\\t\\t// remove border radius on bottom opening\\n\\t\\t\\tborder-radius: var(--border-radius) var(--border-radius) 0 0;\\n\\t\\t\\tdisplay: block !important;\\n\\t\\t}\\n\\n\\t\\t/* multiselect__limit hidden if active */\\n\\t\\t.multiselect__limit {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t/* results wrapper */\\n\\t.multiselect__content-wrapper {\\n\\t\\tposition: absolute;\\n\\t\\twidth: 100%;\\n\\t\\tmargin-top: -1px;\\n\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\tbackground: var(--color-main-background);\\n\\t\\tz-index: 50;\\n\\t\\tmax-height: 250px;\\n\\t\\toverflow-y: auto;\\n\\t\\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\\n\\t\\t.multiselect__content {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t\\tli {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t&,\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\t\\t\\t> span {\\n\\t\\t\\t\\tpadding: 8px;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\theight: auto;\\n\\t\\t\\t\\tmin-height: 1em;\\n\\t\\t\\t\\t-webkit-touch-callout: none;\\n\\t\\t\\t\\t-webkit-user-select: none;\\n\\t\\t\\t\\t-moz-user-select: none;\\n\\t\\t\\t\\t-ms-user-select: none;\\n\\t\\t\\t\\tuser-select: none;\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t/* selected checkmark icon */\\n\\t\\t\\t\\t&::before {\\n\\t\\t\\t\\t\\tcontent: ' ';\\n\\t\\t\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\t\\t\\tbackground-position: center;\\n\\t\\t\\t\\t\\tmin-width: 16px;\\n\\t\\t\\t\\t\\tmin-height: 16px;\\n\\t\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\t\\t\\tmargin-right: 5px;\\n\\t\\t\\t\\t\\tvisibility: hidden;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&.multiselect__option--disabled {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&.multiselect__option--highlight {\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&:not(.multiselect__option--disabled):hover::before {\\n\\t\\t\\t\\t\\topacity: .3;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&.multiselect__option--selected,\\n\\t\\t\\t\\t&:not(.multiselect__option--disabled):hover {\\n\\t\\t\\t\\t\\t&::before {\\n\\t\\t\\t\\t\\t\\tvisibility: visible;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t/* ABOVE display */\\n\\t&.multiselect--above .multiselect__content-wrapper {\\n\\t\\tbottom: 100%;\\n\\t\\tmargin-bottom: -1px;\\n\\t}\\n\\n\\t/* Icon before option select */\\n\\t&.multiselect--multiple {\\n\\t\\t// push the input after the tag list\\n\\t\\t.multiselect__tags {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t}\\n\\n\\t\\t.multiselect__content-wrapper li > span {\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tbackground-image: var(--icon-checkmark-dark);\\n\\t\\t\\t}\\n\\n\\t\\t\\t/* add the prop tag-placeholder=\\\"create\\\" to add the +\\n\\t\\t\\ticon on top of an unknown-and-ready-to-be-created entry */\\n\\t\\t\\t&[data-select='create'] {\\n\\t\\t\\t\\t&::before {\\n\\t\\t\\t\\t\\tbackground-image: var(--icon-add-dark);\\n\\t\\t\\t\\t\\tvisibility: visible;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* No need for an icon here */\\n\\t&.multiselect--single .multiselect__content-wrapper li > span::before {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t/* Mouse feedback */\\n\\t&:hover,\\n\\tinput.multiselect__input {\\n\\t\\t.multiselect__placeholder {\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},8384:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-tooltip.v-popper__popper{position:absolute;z-index:100000;top:0;right:auto;left:auto;display:block;margin:0;padding:0;text-align:left;text-align:start;opacity:0;line-height:1.6;line-break:auto;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-10px;border-bottom-width:0;border-top-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-10px;border-top-width:0;border-bottom-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{right:100%;border-left-width:0;border-right-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{left:100%;border-right-width:0;border-left-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity .15s,visibility .15s;opacity:0}.v-popper--theme-tooltip.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity .15s;opacity:1}.v-popper--theme-tooltip .v-popper__inner{max-width:350px;padding:5px 8px;text-align:center;color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background)}.v-popper--theme-tooltip .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/directives/Tooltip/index.scss\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCSA,0CACC,iBAAA,CACA,cAAA,CACA,KAAA,CACA,UAAA,CACA,SAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,eAAA,CACA,gBAAA,CACA,SAAA,CACA,eAAA,CAEA,eAAA,CACA,sDAAA,CAGA,iGACC,YAAA,CACA,qBAAA,CACA,6CAAA,CAID,oGACC,SAAA,CACA,kBAAA,CACA,gDAAA,CAID,mGACC,UAAA,CACA,mBAAA,CACA,+CAAA,CAID,kGACC,SAAA,CACA,oBAAA,CACA,8CAAA,CAID,4DACC,iBAAA,CACA,uCAAA,CACA,SAAA,CAED,6DACC,kBAAA,CACA,uBAAA,CACA,SAAA,CAKF,0CACC,eAAA,CACA,eAAA,CACA,iBAAA,CACA,4BAAA,CACA,kCAAA,CACA,6CAAA,CAID,oDACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,QAAA,CACA,QAAA,CACA,kBAAA,CACA,0BAAA,CACA,iBAhFY\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n/**\\n* @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>\\n* @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>\\n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>\\n* @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>\\n* @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>\\n*\\n* Bootstrap (http://getbootstrap.com)\\n* SCSS copied from version 3.3.5\\n* Copyright 2011-2015 Twitter, Inc.\\n* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n*/\\n\\n$arrow-width: 10px;\\n\\n.v-popper--theme-tooltip {\\n\\t&.v-popper__popper {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 100000;\\n\\t\\ttop: 0;\\n\\t\\tright: auto;\\n\\t\\tleft: auto;\\n\\t\\tdisplay: block;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\ttext-align: left;\\n\\t\\ttext-align: start;\\n\\t\\topacity: 0;\\n\\t\\tline-height: 1.6;\\n\\n\\t\\tline-break: auto;\\n\\t\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t\\t// TOP\\n\\t\\t&[data-popper-placement^='top'] .v-popper__arrow-container {\\n\\t\\t\\tbottom: -$arrow-width;\\n\\t\\t\\tborder-bottom-width: 0;\\n\\t\\t\\tborder-top-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// BOTTOM\\n\\t\\t&[data-popper-placement^='bottom'] .v-popper__arrow-container {\\n\\t\\t\\ttop: -$arrow-width;\\n\\t\\t\\tborder-top-width: 0;\\n\\t\\t\\tborder-bottom-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// RIGHT\\n\\t\\t&[data-popper-placement^='right'] .v-popper__arrow-container {\\n\\t\\t\\tright: 100%;\\n\\t\\t\\tborder-left-width: 0;\\n\\t\\t\\tborder-right-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// LEFT\\n\\t\\t&[data-popper-placement^='left'] .v-popper__arrow-container {\\n\\t\\t\\tleft: 100%;\\n\\t\\t\\tborder-right-width: 0;\\n\\t\\t\\tborder-left-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// HIDDEN / SHOWN\\n\\t\\t&[aria-hidden='true'] {\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t\\ttransition: opacity .15s, visibility .15s;\\n\\t\\t\\topacity: 0;\\n\\t\\t}\\n\\t\\t&[aria-hidden='false'] {\\n\\t\\t\\tvisibility: visible;\\n\\t\\t\\ttransition: opacity .15s;\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t// CONTENT\\n\\t.v-popper__inner {\\n\\t\\tmax-width: 350px;\\n\\t\\tpadding: 5px 8px;\\n\\t\\ttext-align: center;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t}\\n\\n\\t// ARROW\\n\\t.v-popper__arrow-container {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: 0;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: transparent;\\n\\t\\tborder-width: $arrow-width;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},3100:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-1418d792]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-1418d792]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-1418d792]{pointer-events:none;opacity:.5}.action--disabled[data-v-1418d792]:hover,.action--disabled[data-v-1418d792]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-1418d792]{opacity:1 !important}.action-button[data-v-1418d792]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-button>span[data-v-1418d792]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-1418d792]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-button[data-v-1418d792] .material-design-icon{width:44px;height:44px;opacity:1}.action-button[data-v-1418d792] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button p[data-v-1418d792]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-button__longtext[data-v-1418d792]{cursor:pointer;white-space:pre-wrap}.action-button__title[data-v-1418d792]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CAOF,gCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC9Ce,CDgDf,qCACC,cAAA,CACA,kBAAA,CAGD,sCACC,UCtDc,CDuDd,WCvDc,CDwDd,SCrCY,CDsCZ,+BAAA,CACA,oBCtDS,CDuDT,2BAAA,CAGD,sDACC,UC/Dc,CDgEd,WChEc,CDiEd,SC9CY,CDgDZ,iFACC,qBAAA,CAKF,kCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,0CACC,cAAA,CAEA,oBAAA,CAGD,uCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},8584:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.nc-button-group-base>div{text-align:center;color:var(--color-text-maxcontrast)}.nc-button-group-base ul.nc-button-group-content{display:flex;justify-content:space-between}.nc-button-group-base ul.nc-button-group-content li{flex:1 1}.nc-button-group-base ul.nc-button-group-content .action-button{padding:0 !important;width:100%;display:flex;justify-content:center}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcActionButtonGroup/NcActionButtonGroup.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLA,0BACC,iBAAA,CACA,mCAAA,CAGD,iDACC,YAAA,CACA,6BAAA,CACA,oDACC,QAAA,CAGD,gEAEC,oBAAA,CACA,UAAA,CACA,YAAA,CACA,sBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.nc-button-group-base {\\n\\t>div {\\n\\t\\ttext-align: center;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\tul.nc-button-group-content {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\t\\tli {\\n\\t\\t\\tflex: 1 1;\\n\\t\\t}\\n\\n\\t\\t.action-button {\\n\\t\\t\\t// Fix action buttons beeing shifted to the left (right padding)\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},7264:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-fd7dc03c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-fd7dc03c]{color:var(--color-text-maxcontrast);line-height:44px;white-space:nowrap;text-overflow:ellipsis;box-shadow:none !important;user-select:none;pointer-events:none;margin-left:12px;padding-right:14px;height:44px;display:flex;align-items:center}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcActionCaption/NcActionCaption.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,yCACC,mCAAA,CACA,gBCqBgB,CDpBhB,kBAAA,CACA,sBAAA,CACA,0BAAA,CACA,gBAAA,CACA,mBAAA,CACA,gBAAA,CACA,kBAAA,CACA,WCagB,CDZhB,YAAA,CACA,kBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-navigation-caption {\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tline-height: $clickable-area;\\n\\twhite-space: nowrap;\\n\\ttext-overflow: ellipsis;\\n\\tbox-shadow: none !important;\\n\\tuser-select: none;\\n\\tpointer-events: none;\\n\\tmargin-left: 12px;\\n\\tpadding-right: 14px;\\n\\theight: $clickable-area;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},8666:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-e50b8bcc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-e50b8bcc]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-e50b8bcc]{pointer-events:none;opacity:.5}.action--disabled[data-v-e50b8bcc]:hover,.action--disabled[data-v-e50b8bcc]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-e50b8bcc]{opacity:1 !important}.action-checkbox[data-v-e50b8bcc]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;line-height:44px}.action-checkbox__checkbox[data-v-e50b8bcc]{position:absolute;top:auto;left:-10000px;overflow:hidden;width:1px;height:1px}.action-checkbox__label[data-v-e50b8bcc]{display:flex;align-items:center;width:100%;padding:0 !important;padding-right:14px !important}.action-checkbox__label[data-v-e50b8bcc]::before{margin:0 14px 0 !important}.action-checkbox--disabled[data-v-e50b8bcc],.action-checkbox--disabled .action-checkbox__label[data-v-e50b8bcc]{cursor:pointer}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\",\"webpack://./src/components/NcActionCheckbox/NcActionCheckbox.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CEpCH,kCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,gBAAA,CAGA,4CACC,iBAAA,CACA,QAAA,CACA,aAAA,CAEA,eAAA,CAEA,SAAA,CACA,UAAA,CAGD,yCACC,YAAA,CACA,kBAAA,CAEA,UAAA,CACA,oBAAA,CACA,6BAAA,CAIA,iDACC,0BAAA,CAKD,gHAEC,cAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n@import '../../assets/action';\\n@include action-active;\\n@include action--disabled;\\n\\n.action-checkbox {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\n\\twidth: 100%;\\n\\theight: auto;\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\n\\tcursor: pointer;\\n\\twhite-space: nowrap;\\n\\n\\tcolor: var(--color-main-text);\\n\\tborder: 0;\\n\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\tbackground-color: transparent;\\n\\tbox-shadow: none;\\n\\n\\tfont-weight: normal;\\n\\tline-height: $clickable-area;\\n\\n\\t/* checkbox/radio fixes */\\n\\t&__checkbox {\\n\\t\\tposition: absolute;\\n\\t\\ttop: auto;\\n\\t\\tleft: -10000px;\\n\\n\\t\\toverflow: hidden;\\n\\n\\t\\twidth: 1px;\\n\\t\\theight: 1px;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center; // align checkbox to text\\n\\n\\t\\twidth: 100%;\\n\\t\\tpadding: 0 !important;\\n\\t\\tpadding-right: $icon-margin !important;\\n\\n\\t\\t// checkbox-width is 12px, border is 2\\n\\t\\t// (44 - 14 - 2) / 2 = 14\\n\\t\\t&::before {\\n\\t\\t\\tmargin: 0 14px 0 !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&--disabled {\\n\\t\\t&,\\n\\t\\t.action-checkbox__label {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},1181:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-141476ca]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button[data-v-141476ca]:not(.button-vue),input[data-v-141476ca]:not([type=range]),textarea[data-v-141476ca]{margin:0;padding:7px 6px;cursor:text;color:var(--color-text-lighter);border:1px solid var(--color-border-dark);border-radius:var(--border-radius);outline:none;background-color:var(--color-main-background);font-size:13px}button[data-v-141476ca]:not(.button-vue):not(:disabled):not(.primary):hover,button[data-v-141476ca]:not(.button-vue):not(:disabled):not(.primary):focus,button:not(.button-vue):not(:disabled):not(.primary).active[data-v-141476ca],input[data-v-141476ca]:not([type=range]):not(:disabled):not(.primary):hover,input[data-v-141476ca]:not([type=range]):not(:disabled):not(.primary):focus,input:not([type=range]):not(:disabled):not(.primary).active[data-v-141476ca],textarea[data-v-141476ca]:not(:disabled):not(.primary):hover,textarea[data-v-141476ca]:not(:disabled):not(.primary):focus,textarea:not(:disabled):not(.primary).active[data-v-141476ca]{border-color:var(--color-primary-element);outline:none}button[data-v-141476ca]:not(.button-vue):not(:disabled):not(.primary):active,input[data-v-141476ca]:not([type=range]):not(:disabled):not(.primary):active,textarea[data-v-141476ca]:not(:disabled):not(.primary):active{color:var(--color-text-light);outline:none;background-color:var(--color-main-background)}button[data-v-141476ca]:not(.button-vue):disabled,input[data-v-141476ca]:not([type=range]):disabled,textarea[data-v-141476ca]:disabled{cursor:default;opacity:.5;color:var(--color-text-maxcontrast);background-color:var(--color-background-dark)}button[data-v-141476ca]:not(.button-vue):required,input[data-v-141476ca]:not([type=range]):required,textarea[data-v-141476ca]:required{box-shadow:none}button[data-v-141476ca]:not(.button-vue):invalid,input[data-v-141476ca]:not([type=range]):invalid,textarea[data-v-141476ca]:invalid{border-color:var(--color-error);box-shadow:none !important}button:not(.button-vue).primary[data-v-141476ca],input:not([type=range]).primary[data-v-141476ca],textarea.primary[data-v-141476ca]{cursor:pointer;color:var(--color-primary-element-text);border-color:var(--color-primary-element);background-color:var(--color-primary-element)}button:not(.button-vue).primary[data-v-141476ca]:not(:disabled):hover,button:not(.button-vue).primary[data-v-141476ca]:not(:disabled):focus,button:not(.button-vue).primary[data-v-141476ca]:not(:disabled):active,input:not([type=range]).primary[data-v-141476ca]:not(:disabled):hover,input:not([type=range]).primary[data-v-141476ca]:not(:disabled):focus,input:not([type=range]).primary[data-v-141476ca]:not(:disabled):active,textarea.primary[data-v-141476ca]:not(:disabled):hover,textarea.primary[data-v-141476ca]:not(:disabled):focus,textarea.primary[data-v-141476ca]:not(:disabled):active{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}button:not(.button-vue).primary[data-v-141476ca]:not(:disabled):active,input:not([type=range]).primary[data-v-141476ca]:not(:disabled):active,textarea.primary[data-v-141476ca]:not(:disabled):active{color:var(--color-primary-element-text-dark)}button:not(.button-vue).primary[data-v-141476ca]:disabled,input:not([type=range]).primary[data-v-141476ca]:disabled,textarea.primary[data-v-141476ca]:disabled{cursor:default;color:var(--color-primary-element-text-dark);background-color:var(--color-primary-element)}li.active[data-v-141476ca]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-141476ca]{pointer-events:none;opacity:.5}.action--disabled[data-v-141476ca]:hover,.action--disabled[data-v-141476ca]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-141476ca]{opacity:1 !important}.action-input[data-v-141476ca]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal}.action-input__icon-wrapper[data-v-141476ca]{display:flex;align-self:center;align-items:center;justify-content:center}.action-input__icon-wrapper[data-v-141476ca] .material-design-icon{width:44px;height:44px;opacity:1}.action-input__icon-wrapper[data-v-141476ca] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-input>span[data-v-141476ca]{cursor:pointer;white-space:nowrap}.action-input__icon[data-v-141476ca]{min-width:0;min-height:0;padding:22px 0 22px 44px;background-position:14px center;background-size:16px}.action-input__form[data-v-141476ca]{display:flex;align-items:center;flex:1 1 auto;margin:4px 0;padding-right:14px}.action-input__container[data-v-141476ca]{width:100%}.action-input__input-container[data-v-141476ca]{display:flex}.action-input__input-container .colorpicker__trigger[data-v-141476ca],.action-input__input-container .colorpicker__preview[data-v-141476ca]{width:100%}.action-input__input-container .colorpicker__preview[data-v-141476ca]{width:100%;height:36px;border-radius:var(--border-radius-large);border:2px solid var(--color-border-maxcontrast);box-shadow:none !important}.action-input__text-label[data-v-141476ca]{padding:4px 0;display:block}.action-input__text-label--hidden[data-v-141476ca]{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.action-input__datetimepicker[data-v-141476ca]{width:100%}.action-input__datetimepicker[data-v-141476ca] .mx-input{margin:0}.action-input__multi[data-v-141476ca]{width:100%}li:last-child>.action-input[data-v-141476ca]{padding-bottom:10px}li:first-child>.action-input[data-v-141476ca]:not(.action-input--visible-label){padding-top:10px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/inputs.scss\",\"webpack://./src/assets/variables.scss\",\"webpack://./src/assets/action.scss\",\"webpack://./src/components/NcActionInput/NcActionInput.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCqBD,4GAGC,QAAA,CACA,eAAA,CAEA,WAAA,CAEA,+BAAA,CACA,yCAAA,CACA,kCAAA,CACA,YAAA,CACA,6CAAA,CAEA,cAAA,CAGC,koBAIC,yCAAA,CACA,YAAA,CAGD,wNACC,6BAAA,CACA,YAAA,CACA,6CAAA,CAIF,uIACC,cAAA,CACA,UCrBiB,CDsBjB,mCAAA,CACA,6CAAA,CAGD,uIACC,eAAA,CAGD,oIACC,+BAAA,CACA,0BAAA,CAID,oIACC,cAAA,CACA,uCAAA,CACA,yCAAA,CACA,6CAAA,CAGC,4kBAGC,+CAAA,CACA,mDAAA,CAED,sMACC,4CAAA,CAIF,+JACC,cAAA,CACA,4CAAA,CAEA,6CAAA,CE3ED,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UDMiB,CCLjB,kFACC,cAAA,CACA,UDGgB,CCDjB,qCACC,oBAAA,CCjCH,+BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CAEA,6CACC,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,mEACC,UFXc,CEYd,WFZc,CEad,SFMY,CEJZ,8FACC,qBAAA,CAKH,oCACC,cAAA,CACA,kBAAA,CAGD,qCACC,WAAA,CACA,YAAA,CAGA,wBAAA,CAEA,+BAAA,CACA,oBF9BU,CEkCX,qCACC,YAAA,CACA,kBAAA,CACA,aAAA,CAEA,YAAA,CACA,kBFpCY,CEuCb,0CACC,UAAA,CAGD,gDACC,YAAA,CAGC,4IAEC,UAAA,CAGD,sEACC,UAAA,CACA,WAAA,CACA,wCAAA,CACA,gDAAA,CACA,0BAAA,CAKH,2CACC,aAAA,CACA,aAAA,CAEA,mDACC,iBAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,eAAA,CAIF,+CACC,UAAA,CAEA,yDACC,QAAA,CAIF,sCACC,UAAA,CAOF,6CACC,mBAAA,CAID,gFACC,gBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n/**\\n * color-text-lighter\\t\\tnormal state\\n * color-text-lighter\\t\\tactive state\\n * color-text-maxcontrast \\tdisabled state\\n */\\n\\n/* Default global values */\\nbutton:not(.button-vue),\\ninput:not([type='range']),\\ntextarea {\\n\\tmargin: 0;\\n\\tpadding: 7px 6px;\\n\\n\\tcursor: text;\\n\\n\\tcolor: var(--color-text-lighter);\\n\\tborder: 1px solid var(--color-border-dark);\\n\\tborder-radius: var(--border-radius);\\n\\toutline: none;\\n\\tbackground-color: var(--color-main-background);\\n\\n\\tfont-size: 13px;\\n\\n\\t&:not(:disabled):not(.primary) {\\n\\t\\t&:hover,\\n\\t\\t&:focus,\\n\\t\\t&.active {\\n\\t\\t\\t/* active class used for multiselect */\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\toutline: none;\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tcolor: var(--color-text-light);\\n\\t\\t\\toutline: none;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\t}\\n\\n\\t&:disabled {\\n\\t\\tcursor: default;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&:required {\\n\\t\\tbox-shadow: none;\\n\\t}\\n\\n\\t&:invalid {\\n\\t\\tborder-color: var(--color-error);\\n\\t\\tbox-shadow: none !important;\\n\\t}\\n\\n\\t/* Primary action button, use sparingly */\\n\\t&.primary {\\n\\t\\tcursor: pointer;\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\tborder-color: var(--color-primary-element);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\n\\t\\t&:not(:disabled) {\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tborder-color: var(--color-primary-element-light);\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element-light);\\n\\t\\t\\t}\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tcolor: var(--color-primary-element-text-dark);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:disabled {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\tcolor: var(--color-primary-element-text-dark);\\n\\t\\t\\t// opacity is already defined to .5 if disabled\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n@import '../../assets/inputs';\\n@import '../../assets/action';\\n@include action-active;\\n@include action--disabled;\\n\\n$input-margin: 4px;\\n\\n.action-input {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\n\\twidth: 100%;\\n\\theight: auto;\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\n\\tcursor: pointer;\\n\\twhite-space: nowrap;\\n\\n\\tcolor: var(--color-main-text);\\n\\tborder: 0;\\n\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\tbackground-color: transparent;\\n\\tbox-shadow: none;\\n\\n\\tfont-weight: normal;\\n\\n\\t&__icon-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\talign-self: center;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > span {\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\tmin-height: 0;\\n\\t\\t/* Keep padding to define the width to\\n\\t\\t\\tassure correct position of a possible text */\\n\\t\\tpadding: #{math.div($clickable-area, 2)} 0 #{math.div($clickable-area, 2)} $clickable-area;\\n\\n\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\tbackground-size: $icon-size;\\n\\t}\\n\\n\\t// Forms & text inputs\\n\\t&__form {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tflex: 1 1 auto;\\n\\n\\t\\tmargin: $input-margin 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t}\\n\\n\\t&__container {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&__input-container {\\n\\t\\tdisplay: flex;\\n\\n\\t\\t.colorpicker {\\n\\t\\t\\t&__trigger,\\n\\t\\t\\t&__preview {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&__preview {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\theight: 36px;\\n\\t\\t\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\t\\t\\tborder: 2px solid var(--color-border-maxcontrast);\\n\\t\\t\\t\\tbox-shadow: none !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__text-label {\\n\\t\\tpadding: 4px 0;\\n\\t\\tdisplay: block;\\n\\n\\t\\t&--hidden {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tleft: -10000px;\\n\\t\\t\\ttop: auto;\\n\\t\\t\\twidth: 1px;\\n\\t\\t\\theight: 1px;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t}\\n\\t}\\n\\n\\t&__datetimepicker {\\n\\t\\twidth: 100%;\\n\\n\\t\\t:deep(.mx-input) {\\n\\t\\t\\tmargin: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&__multi {\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\\n// if a form is the last of the list\\n// add the same bottomMargin as the right padding\\n// for visual balance\\nli:last-child > .action-input {\\n\\tpadding-bottom: $icon-margin - $input-margin;\\n}\\n\\n// same for first item\\nli:first-child > .action-input:not(.action-input--visible-label) {\\n\\tpadding-top: $icon-margin - $input-margin;\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},4953:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-4c8a3330]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-4c8a3330]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action-link[data-v-4c8a3330]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-link>span[data-v-4c8a3330]{cursor:pointer;white-space:nowrap}.action-link__icon[data-v-4c8a3330]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-link[data-v-4c8a3330] .material-design-icon{width:44px;height:44px;opacity:1}.action-link[data-v-4c8a3330] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-link p[data-v-4c8a3330]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-link__longtext[data-v-4c8a3330]{cursor:pointer;white-space:pre-wrap}.action-link__title[data-v-4c8a3330]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAqBF,8BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC9Ce,CDgDf,mCACC,cAAA,CACA,kBAAA,CAGD,oCACC,UCtDc,CDuDd,WCvDc,CDwDd,SCrCY,CDsCZ,+BAAA,CACA,oBCtDS,CDuDT,2BAAA,CAGD,oDACC,UC/Dc,CDgEd,WChEc,CDiEd,SC9CY,CDgDZ,+EACC,qBAAA,CAKF,gCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,wCACC,cAAA,CAEA,oBAAA,CAGD,qCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},3069:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-04bdccb2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-04bdccb2]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-04bdccb2]{pointer-events:none;opacity:.5}.action--disabled[data-v-04bdccb2]:hover,.action--disabled[data-v-04bdccb2]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-04bdccb2]{opacity:1 !important}.action-radio[data-v-04bdccb2]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;line-height:44px}.action-radio__radio[data-v-04bdccb2]{position:absolute;top:auto;left:-10000px;overflow:hidden;width:1px;height:1px}.action-radio__label[data-v-04bdccb2]{display:flex;align-items:center;width:100%;padding:0 !important;padding-right:14px !important}.action-radio__label[data-v-04bdccb2]::before{margin:0 14px 0 !important}.action-radio--disabled[data-v-04bdccb2],.action-radio--disabled .action-radio__label[data-v-04bdccb2]{cursor:pointer}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\",\"webpack://./src/components/NcActionRadio/NcActionRadio.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CEpCH,+BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,gBAAA,CAGA,sCACC,iBAAA,CACA,QAAA,CACA,aAAA,CAEA,eAAA,CAEA,SAAA,CACA,UAAA,CAGD,sCACC,YAAA,CACA,kBAAA,CAEA,UAAA,CACA,oBAAA,CACA,6BAAA,CAIA,8CACC,0BAAA,CAKD,uGAEC,cAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n@import '../../assets/action';\\n@include action-active;\\n@include action--disabled;\\n\\n.action-radio {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\n\\twidth: 100%;\\n\\theight: auto;\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\n\\tcursor: pointer;\\n\\twhite-space: nowrap;\\n\\n\\tcolor: var(--color-main-text);\\n\\tborder: 0;\\n\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\tbackground-color: transparent;\\n\\tbox-shadow: none;\\n\\n\\tfont-weight: normal;\\n\\tline-height: $clickable-area;\\n\\n\\t/* checkbox/radio fixes */\\n\\t&__radio {\\n\\t\\tposition: absolute;\\n\\t\\ttop: auto;\\n\\t\\tleft: -10000px;\\n\\n\\t\\toverflow: hidden;\\n\\n\\t\\twidth: 1px;\\n\\t\\theight: 1px;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center; // align radio to text\\n\\n\\t\\twidth: 100%;\\n\\t\\tpadding: 0 !important;\\n\\t\\tpadding-right: $icon-margin !important;\\n\\n\\t\\t// radio-width is 12px, border is 2\\n\\t\\t// (44 - 14 - 2) / 2 = 14\\n\\t\\t&::before {\\n\\t\\t\\tmargin: 0 14px 0 !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&--disabled {\\n\\t\\t&,\\n\\t\\t.action-radio__label {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},2180:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-ab5e8848]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-ab5e8848]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action-router[data-v-ab5e8848]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-router>span[data-v-ab5e8848]{cursor:pointer;white-space:nowrap}.action-router__icon[data-v-ab5e8848]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-router[data-v-ab5e8848] .material-design-icon{width:44px;height:44px;opacity:1}.action-router[data-v-ab5e8848] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-router p[data-v-ab5e8848]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-router__longtext[data-v-ab5e8848]{cursor:pointer;white-space:pre-wrap}.action-router__title[data-v-ab5e8848]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}.action--disabled[data-v-ab5e8848]{pointer-events:none;opacity:.5}.action--disabled[data-v-ab5e8848]:hover,.action--disabled[data-v-ab5e8848]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-ab5e8848]{opacity:1 !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAqBF,gCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC9Ce,CDgDf,qCACC,cAAA,CACA,kBAAA,CAGD,sCACC,UCtDc,CDuDd,WCvDc,CDwDd,SCrCY,CDsCZ,+BAAA,CACA,oBCtDS,CDuDT,2BAAA,CAGD,sDACC,UC/Dc,CDgEd,WChEc,CDiEd,SC9CY,CDgDZ,iFACC,qBAAA,CAKF,kCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,0CACC,cAAA,CAEA,oBAAA,CAGD,uCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA,CA3FF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},1474:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-a1812d84]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-separator[data-v-a1812d84]{height:0;margin:5px 10px 5px 15px;border-bottom:1px solid var(--color-border-dark);cursor:default}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcActionSeparator/NcActionSeparator.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,QAAA,CACA,wBAAA,CACA,gDAAA,CACA,cAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.action-separator {\\n\\theight: 0;\\n\\tmargin: 5px 10px 5px 15px;\\n\\tborder-bottom: 1px solid var(--color-border-dark);\\n\\tcursor: default;\\n}\\n\"],sourceRoot:\"\"}]);const s=o},9869:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-cdd04674]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-cdd04674]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action-text[data-v-cdd04674]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-text>span[data-v-cdd04674]{cursor:pointer;white-space:nowrap}.action-text__icon[data-v-cdd04674]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-text[data-v-cdd04674] .material-design-icon{width:44px;height:44px;opacity:1}.action-text[data-v-cdd04674] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text p[data-v-cdd04674]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-text__longtext[data-v-cdd04674]{cursor:pointer;white-space:pre-wrap}.action-text__title[data-v-cdd04674]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}.action--disabled[data-v-cdd04674]{pointer-events:none;opacity:.5}.action--disabled[data-v-cdd04674]:hover,.action--disabled[data-v-cdd04674]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-cdd04674]{opacity:1 !important}.action-text[data-v-cdd04674],.action-text span[data-v-cdd04674]{cursor:default}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\",\"webpack://./src/components/NcActionText/NcActionText.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAqBF,8BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC9Ce,CDgDf,mCACC,cAAA,CACA,kBAAA,CAGD,oCACC,UCtDc,CDuDd,WCvDc,CDwDd,SCrCY,CDsCZ,+BAAA,CACA,oBCtDS,CDuDT,2BAAA,CAGD,oDACC,UC/Dc,CDgEd,WChEc,CDiEd,SC9CY,CDgDZ,+EACC,qBAAA,CAKF,gCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,wCACC,cAAA,CAEA,oBAAA,CAGD,qCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA,CA3FF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CElCF,iEAEC,cAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n@import '../../assets/action';\\n@include action-active;\\n@include action-item('text');\\n@include action--disabled;\\n\\n.action-text {\\n\\t&,\\n\\tspan {\\n\\t\\tcursor: default;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},9658:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-98e16ffe]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button[data-v-98e16ffe]:not(.button-vue),input[data-v-98e16ffe]:not([type=range]),textarea[data-v-98e16ffe]{margin:0;padding:7px 6px;cursor:text;color:var(--color-text-lighter);border:1px solid var(--color-border-dark);border-radius:var(--border-radius);outline:none;background-color:var(--color-main-background);font-size:13px}button[data-v-98e16ffe]:not(.button-vue):not(:disabled):not(.primary):hover,button[data-v-98e16ffe]:not(.button-vue):not(:disabled):not(.primary):focus,button:not(.button-vue):not(:disabled):not(.primary).active[data-v-98e16ffe],input[data-v-98e16ffe]:not([type=range]):not(:disabled):not(.primary):hover,input[data-v-98e16ffe]:not([type=range]):not(:disabled):not(.primary):focus,input:not([type=range]):not(:disabled):not(.primary).active[data-v-98e16ffe],textarea[data-v-98e16ffe]:not(:disabled):not(.primary):hover,textarea[data-v-98e16ffe]:not(:disabled):not(.primary):focus,textarea:not(:disabled):not(.primary).active[data-v-98e16ffe]{border-color:var(--color-primary-element);outline:none}button[data-v-98e16ffe]:not(.button-vue):not(:disabled):not(.primary):active,input[data-v-98e16ffe]:not([type=range]):not(:disabled):not(.primary):active,textarea[data-v-98e16ffe]:not(:disabled):not(.primary):active{color:var(--color-text-light);outline:none;background-color:var(--color-main-background)}button[data-v-98e16ffe]:not(.button-vue):disabled,input[data-v-98e16ffe]:not([type=range]):disabled,textarea[data-v-98e16ffe]:disabled{cursor:default;opacity:.5;color:var(--color-text-maxcontrast);background-color:var(--color-background-dark)}button[data-v-98e16ffe]:not(.button-vue):required,input[data-v-98e16ffe]:not([type=range]):required,textarea[data-v-98e16ffe]:required{box-shadow:none}button[data-v-98e16ffe]:not(.button-vue):invalid,input[data-v-98e16ffe]:not([type=range]):invalid,textarea[data-v-98e16ffe]:invalid{border-color:var(--color-error);box-shadow:none !important}button:not(.button-vue).primary[data-v-98e16ffe],input:not([type=range]).primary[data-v-98e16ffe],textarea.primary[data-v-98e16ffe]{cursor:pointer;color:var(--color-primary-element-text);border-color:var(--color-primary-element);background-color:var(--color-primary-element)}button:not(.button-vue).primary[data-v-98e16ffe]:not(:disabled):hover,button:not(.button-vue).primary[data-v-98e16ffe]:not(:disabled):focus,button:not(.button-vue).primary[data-v-98e16ffe]:not(:disabled):active,input:not([type=range]).primary[data-v-98e16ffe]:not(:disabled):hover,input:not([type=range]).primary[data-v-98e16ffe]:not(:disabled):focus,input:not([type=range]).primary[data-v-98e16ffe]:not(:disabled):active,textarea.primary[data-v-98e16ffe]:not(:disabled):hover,textarea.primary[data-v-98e16ffe]:not(:disabled):focus,textarea.primary[data-v-98e16ffe]:not(:disabled):active{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}button:not(.button-vue).primary[data-v-98e16ffe]:not(:disabled):active,input:not([type=range]).primary[data-v-98e16ffe]:not(:disabled):active,textarea.primary[data-v-98e16ffe]:not(:disabled):active{color:var(--color-primary-element-text-dark)}button:not(.button-vue).primary[data-v-98e16ffe]:disabled,input:not([type=range]).primary[data-v-98e16ffe]:disabled,textarea.primary[data-v-98e16ffe]:disabled{cursor:default;color:var(--color-primary-element-text-dark);background-color:var(--color-primary-element)}li.active[data-v-98e16ffe]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-98e16ffe]{pointer-events:none;opacity:.5}.action--disabled[data-v-98e16ffe]:hover,.action--disabled[data-v-98e16ffe]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-98e16ffe]{opacity:1 !important}.action-text-editable[data-v-98e16ffe]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;line-height:44px}.action-text-editable>span[data-v-98e16ffe]{cursor:pointer;white-space:nowrap}.action-text-editable__icon[data-v-98e16ffe]{min-width:0;min-height:0;padding:22px 0 22px 44px;background-position:14px center;background-size:16px}.action-text-editable[data-v-98e16ffe] .material-design-icon{width:44px;height:44px;opacity:1}.action-text-editable[data-v-98e16ffe] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text-editable__form[data-v-98e16ffe]{display:flex;flex:1 1 auto;flex-direction:column;position:relative;margin:4px 0;padding-right:14px}.action-text-editable__submit[data-v-98e16ffe]{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.action-text-editable__label[data-v-98e16ffe]{display:flex;align-items:center;justify-content:center;position:absolute;right:15px;bottom:1px;width:36px;height:36px;box-sizing:border-box;margin:0;padding:7px 6px;border:0;border-radius:50%;background-color:var(--color-main-background);background-clip:padding-box}.action-text-editable__label[data-v-98e16ffe],.action-text-editable__label *[data-v-98e16ffe]{cursor:pointer}.action-text-editable__textarea[data-v-98e16ffe]{flex:1 1 auto;color:inherit;border-color:var(--color-border-maxcontrast);min-height:80px;max-height:124px;min-width:176px;width:100% !important;margin:0}.action-text-editable__textarea[data-v-98e16ffe]:disabled{cursor:default}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid+.action-text-editable__label[data-v-98e16ffe]{background-color:var(--color-error)}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-98e16ffe]:active,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-98e16ffe]:hover,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-98e16ffe]:focus{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.action-text-editable__textarea:active:not(:disabled)+.action-text-editable__label[data-v-98e16ffe],.action-text-editable__textarea:hover:not(:disabled)+.action-text-editable__label[data-v-98e16ffe],.action-text-editable__textarea:focus:not(:disabled)+.action-text-editable__label[data-v-98e16ffe]{z-index:2;border-color:var(--color-primary-element);border-left-color:rgba(0,0,0,0)}li:last-child>.action-text-editable[data-v-98e16ffe]{margin-bottom:10px}li:first-child>.action-text-editable[data-v-98e16ffe]{margin-top:10px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/inputs.scss\",\"webpack://./src/assets/variables.scss\",\"webpack://./src/assets/action.scss\",\"webpack://./src/components/NcActionTextEditable/NcActionTextEditable.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCqBD,4GAGC,QAAA,CACA,eAAA,CAEA,WAAA,CAEA,+BAAA,CACA,yCAAA,CACA,kCAAA,CACA,YAAA,CACA,6CAAA,CAEA,cAAA,CAGC,koBAIC,yCAAA,CACA,YAAA,CAGD,wNACC,6BAAA,CACA,YAAA,CACA,6CAAA,CAIF,uIACC,cAAA,CACA,UCrBiB,CDsBjB,mCAAA,CACA,6CAAA,CAGD,uIACC,eAAA,CAGD,oIACC,+BAAA,CACA,0BAAA,CAID,oIACC,cAAA,CACA,uCAAA,CACA,yCAAA,CACA,6CAAA,CAGC,4kBAGC,+CAAA,CACA,mDAAA,CAED,sMACC,4CAAA,CAIF,+JACC,cAAA,CACA,4CAAA,CAEA,6CAAA,CE3ED,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UDMiB,CCLjB,kFACC,cAAA,CACA,UDGgB,CCDjB,qCACC,oBAAA,CCjCH,uCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,gBFHgB,CEKhB,4CACC,cAAA,CACA,kBAAA,CAGD,6CACC,WAAA,CACA,YAAA,CAGA,wBAAA,CAEA,+BAAA,CACA,oBFdU,CEiBX,6DACC,UFtBe,CEuBf,WFvBe,CEwBf,SFLa,CEOb,wFACC,qBAAA,CAKF,6CACC,YAAA,CACA,aAAA,CACA,qBAAA,CAEA,iBAAA,CACA,YAAA,CACA,kBF/BY,CEkCb,+CACC,iBAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,eAAA,CAGD,8CACC,YAAA,CACA,kBAAA,CACA,sBAAA,CAGA,iBAAA,CACA,UAAA,CACA,UAAA,CACA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,QAAA,CACA,eAAA,CAEA,QAAA,CACA,iBAAA,CAEA,6CAAA,CACA,2BAAA,CAEA,8FACC,cAAA,CAKF,iDACC,aAAA,CACA,aAAA,CACA,4CAAA,CAEA,eAAA,CACA,gBAAA,CAEA,eAAA,CACA,qBAAA,CACA,QAAA,CAGA,0DACC,cAAA,CAMC,2HACC,mCAAA,CAID,yZAGC,6CAAA,CACA,uCAAA,CAOF,0SAEC,SAAA,CAEA,yCAAA,CACA,+BAAA,CASJ,qDACC,kBAAA,CAID,sDACC,eAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n/**\\n * color-text-lighter\\t\\tnormal state\\n * color-text-lighter\\t\\tactive state\\n * color-text-maxcontrast \\tdisabled state\\n */\\n\\n/* Default global values */\\nbutton:not(.button-vue),\\ninput:not([type='range']),\\ntextarea {\\n\\tmargin: 0;\\n\\tpadding: 7px 6px;\\n\\n\\tcursor: text;\\n\\n\\tcolor: var(--color-text-lighter);\\n\\tborder: 1px solid var(--color-border-dark);\\n\\tborder-radius: var(--border-radius);\\n\\toutline: none;\\n\\tbackground-color: var(--color-main-background);\\n\\n\\tfont-size: 13px;\\n\\n\\t&:not(:disabled):not(.primary) {\\n\\t\\t&:hover,\\n\\t\\t&:focus,\\n\\t\\t&.active {\\n\\t\\t\\t/* active class used for multiselect */\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\toutline: none;\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tcolor: var(--color-text-light);\\n\\t\\t\\toutline: none;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\t}\\n\\n\\t&:disabled {\\n\\t\\tcursor: default;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&:required {\\n\\t\\tbox-shadow: none;\\n\\t}\\n\\n\\t&:invalid {\\n\\t\\tborder-color: var(--color-error);\\n\\t\\tbox-shadow: none !important;\\n\\t}\\n\\n\\t/* Primary action button, use sparingly */\\n\\t&.primary {\\n\\t\\tcursor: pointer;\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\tborder-color: var(--color-primary-element);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\n\\t\\t&:not(:disabled) {\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tborder-color: var(--color-primary-element-light);\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element-light);\\n\\t\\t\\t}\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tcolor: var(--color-primary-element-text-dark);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:disabled {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\tcolor: var(--color-primary-element-text-dark);\\n\\t\\t\\t// opacity is already defined to .5 if disabled\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n@import '../../assets/inputs';\\n@import '../../assets/action';\\n@include action-active;\\n@include action--disabled;\\n\\n$input-margin: 4px;\\n\\n.action-text-editable {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\n\\twidth: 100%;\\n\\theight: auto;\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\n\\tcursor: pointer;\\n\\twhite-space: nowrap;\\n\\n\\tcolor: var(--color-main-text);\\n\\tborder: 0;\\n\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\tbackground-color: transparent;\\n\\tbox-shadow: none;\\n\\n\\tfont-weight: normal;\\n\\tline-height: $clickable-area;\\n\\n\\t& > span {\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\tmin-height: 0;\\n\\t\\t/* Keep padding to define the width to\\n\\t\\t\\tassure correct position of a possible text */\\n\\t\\tpadding: #{math.div($clickable-area, 2)} 0 #{math.div($clickable-area, 2)} $clickable-area;\\n\\n\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\tbackground-size: $icon-size;\\n\\t}\\n\\n\\t&:deep(.material-design-icon) {\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\topacity: $opacity_full;\\n\\n\\t\\t.material-design-icon__svg {\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t}\\n\\t}\\n\\n\\t// Forms & text inputs\\n\\t&__form {\\n\\t\\tdisplay: flex;\\n\\t\\tflex: 1 1 auto;\\n\\t\\tflex-direction: column;\\n\\n\\t\\tposition: relative;\\n\\t\\tmargin: $input-margin 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tposition: absolute;\\n\\t\\tleft: -10000px;\\n\\t\\ttop: auto;\\n\\t\\twidth: 1px;\\n\\t\\theight: 1px;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\n\\t\\t// bottom-right corner\\n\\t\\tposition: absolute;\\n\\t\\tright: $icon-margin + 1;\\n\\t\\tbottom: 1px;\\n\\t\\twidth: #{$clickable-area - $input-margin * 2};\\n\\t\\theight: #{$clickable-area - $input-margin * 2};\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 7px 6px;\\n\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 50%;\\n\\t\\t/* Avoid background under border */\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tbackground-clip: padding-box;\\n\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Inputs inside popover supports text, submit & reset */\\n\\t&__textarea {\\n\\t\\tflex: 1 1 auto;\\n\\t\\tcolor: inherit;\\n\\t\\tborder-color: var(--color-border-maxcontrast);\\n\\n\\t\\tmin-height: #{$clickable-area * 2 - $input-margin * 2}; /* twice the element margin-y */\\n\\t\\tmax-height: #{$clickable-area * 3 - $input-margin * 2}; /* twice the element margin-y */\\n\\t\\t// block width widening\\n\\t\\tmin-width: $clickable-area * 4;\\n\\t\\twidth: 100% !important;\\n\\t\\tmargin: 0;\\n\\n\\t\\t// if disabled, change cursor\\n\\t\\t&:disabled {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\n\\t\\t/* only show confirm borders if input is not focused */\\n\\t\\t&:not(:active):not(:hover):not(:focus) {\\n\\t\\t\\t&:invalid {\\n\\t\\t\\t\\t& + .action-text-editable__label {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-error);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&:not(:disabled) + .action-text-editable__label {\\n\\t\\t\\t\\t&:active,\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:active,\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\t&:not(:disabled) + .action-text-editable__label {\\n\\t\\t\\t\\t/* above previous input */\\n\\t\\t\\t\\tz-index: 2;\\n\\n\\t\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\t\\tborder-left-color: transparent;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n// if a form is the last of the list\\n// add the same bottomMargin as the right padding\\n// for visual balance\\nli:last-child > .action-text-editable {\\n\\tmargin-bottom: $icon-margin - $input-margin;\\n}\\n\\n// same for first item\\nli:first-child > .action-text-editable {\\n\\tmargin-top: $icon-margin - $input-margin;\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},9886:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-657486e3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-657486e3]{display:flex;align-items:center}.action-items>button[data-v-657486e3]{margin-right:7px}.action-item[data-v-657486e3]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-657486e3]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-657486e3]{--open-background-color: var(--color-primary-element-light-hover)}.action-item.action-item--error[data-v-657486e3]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-657486e3]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-657486e3]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-657486e3]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-657486e3]{background-color:var(--open-background-color)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcActions/NcActions.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,+BACC,YAAA,CACA,kBAAA,CAGA,sCACC,gBAAA,CAIF,8BACC,gFAAA,CACA,iBAAA,CACA,oBAAA,CAEA,mDACC,2DAAA,CAGD,qDACC,iEAAA,CAGD,iDACC,iDAAA,CAGD,mDACC,mDAAA,CAGD,mDACC,mDAAA,CAGD,kEACC,oCAAA,CAGD,yEACC,6CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n// Inline buttons\\n.action-items {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\n\\t// Spacing between buttons\\n\\t& > button {\\n\\t\\tmargin-right: math.div($icon-margin, 2);\\n\\t}\\n}\\n\\n.action-item {\\n\\t--open-background-color: var(--color-background-hover, $action-background-hover);\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\n\\t&.action-item--primary {\\n\\t\\t--open-background-color: var(--color-primary-element-hover);\\n\\t}\\n\\n\\t&.action-item--secondary {\\n\\t\\t--open-background-color: var(--color-primary-element-light-hover);\\n\\t}\\n\\n\\t&.action-item--error {\\n\\t\\t--open-background-color: var(--color-error-hover);\\n\\t}\\n\\n\\t&.action-item--warning {\\n\\t\\t--open-background-color: var(--color-warning-hover);\\n\\t}\\n\\n\\t&.action-item--success {\\n\\t\\t--open-background-color: var(--color-success-hover);\\n\\t}\\n\\n\\t&.action-item--tertiary-no-background {\\n\\t\\t--open-background-color: transparent;\\n\\t}\\n\\n\\t&.action-item--open .action-item__menutoggle {\\n\\t\\tbackground-color: var(--open-background-color);\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},4214:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__wrapper{border-radius:var(--border-radius-large);overflow:hidden}.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner{border-radius:var(--border-radius-large);padding:4px;max-height:calc(50vh - 16px);overflow:auto}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcActions/NcActions.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,kFACC,wCAAA,CACA,eAAA,CAEA,mGACC,wCAAA,CACA,WAAA,CACA,4BAAA,CACA,aAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n// We overwrote the popover base class, so we can style\\n// the popover__inner for actions only.\\n.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__wrapper {\\n\\tborder-radius: var(--border-radius-large);\\n\\toverflow:hidden;\\n\\n\\t.v-popper__inner {\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tpadding: 4px;\\n\\t\\tmax-height: calc(50vh - 16px);\\n\\t\\toverflow: auto;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},785:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-fb7feaf4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-content[data-v-fb7feaf4]{position:initial;z-index:1000;flex-basis:100vw;height:100%;margin:0 !important;background-color:var(--color-main-background);min-width:0;--topbar-margin: 4px}.app-content[data-v-fb7feaf4]:not(.app-content--has-list){overflow:auto}.app-content-wrapper[data-v-fb7feaf4]{position:relative;width:100%;height:100%}.app-content-wrapper--mobile.app-content-wrapper--show-list[data-v-fb7feaf4] .app-content-list{display:flex}.app-content-wrapper--mobile.app-content-wrapper--show-list[data-v-fb7feaf4] .app-content-details{display:none}.app-content-wrapper--mobile.app-content-wrapper--show-details[data-v-fb7feaf4] .app-content-list{display:none}.app-content-wrapper--mobile.app-content-wrapper--show-details[data-v-fb7feaf4] .app-content-details{display:block}[data-v-fb7feaf4] .splitpanes.default-theme .app-content-list{max-width:none;scrollbar-width:auto}[data-v-fb7feaf4] .splitpanes.default-theme .splitpanes__pane{background-color:rgba(0,0,0,0);transition:none}[data-v-fb7feaf4] .splitpanes.default-theme .splitpanes__pane-list{min-width:300px;position:sticky;top:var(--header-height)}@media only screen and (width < 1024px){[data-v-fb7feaf4] .splitpanes.default-theme .splitpanes__pane-list{display:none}}[data-v-fb7feaf4] .splitpanes.default-theme .splitpanes__pane-details{overflow-y:auto}@media only screen and (width < 1024px){[data-v-fb7feaf4] .splitpanes.default-theme .splitpanes__pane-details{min-width:100%}}[data-v-fb7feaf4] .splitpanes.default-theme .splitpanes__splitter{width:9px;margin-left:-5px;background-color:rgba(0,0,0,0);border-left:none}[data-v-fb7feaf4] .splitpanes.default-theme .splitpanes__splitter:before,[data-v-fb7feaf4] .splitpanes.default-theme .splitpanes__splitter:after{display:none}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppContent/NcAppContent.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,8BACC,gBAAA,CACA,YAAA,CACA,gBAAA,CACA,WAAA,CAEA,mBAAA,CACA,6CAAA,CACA,WAAA,CAQA,oBAAA,CANA,0DACC,aAAA,CAQF,sCACC,iBAAA,CACA,UAAA,CACA,WAAA,CAMC,gGACC,YAAA,CAED,mGACC,YAAA,CAID,mGACC,YAAA,CAED,sGACC,aAAA,CAMF,8DACC,cAAA,CAEA,oBAAA,CAGD,8DACC,8BAAA,CACA,eAAA,CAEA,mEACC,eAAA,CACA,eAAA,CACA,wBAAA,CAEA,wCALD,mEAME,YAAA,CAAA,CAIF,sEACC,eAAA,CAEA,wCAHD,sEAIE,cAAA,CAAA,CAKH,kEACC,SAAA,CACA,gBAAA,CACA,8BAAA,CACA,gBAAA,CAEA,iJAEC,YAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.app-content {\\n\\tposition: initial;\\n\\tz-index: 1000;\\n\\tflex-basis: 100vw;\\n\\theight: 100%;\\n\\t// Overriding server styles TODO: cleanup!\\n\\tmargin: 0 !important;\\n\\tbackground-color: var(--color-main-background);\\n\\tmin-width: 0;\\n\\n\\t&:not(.app-content--has-list) {\\n\\t\\toverflow: auto;\\n\\t}\\n\\n\\t// Variables\\n\\t// the whitespace between the topbar content and its edges\\n\\t--topbar-margin: #{$topbar-margin};\\n}\\n\\n.app-content-wrapper {\\n\\tposition: relative;\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\n// Mobile list/details handling\\n.app-content-wrapper--mobile {\\n\\t&.app-content-wrapper--show-list :deep() {\\n\\t\\t.app-content-list {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\t\\t.app-content-details {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\t&.app-content-wrapper--show-details :deep() {\\n\\t\\t.app-content-list {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t\\t.app-content-details {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n}\\n\\n:deep(.splitpanes.default-theme) {\\n\\t.app-content-list {\\n\\t\\tmax-width: none;\\n\\t\\t/* Thin scrollbar is hard to catch on resizable columns */\\n\\t\\tscrollbar-width: auto;\\n\\t}\\n\\n\\t.splitpanes__pane {\\n\\t\\tbackground-color: transparent;\\n\\t\\ttransition: none;\\n\\n\\t\\t&-list {\\n\\t\\t\\tmin-width: 300px;\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: var(--header-height);\\n\\n\\t\\t\\t@media only screen and (width < $breakpoint-mobile) {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-details {\\n\\t\\t\\toverflow-y: auto;\\n\\n\\t\\t\\t@media only screen and (width < $breakpoint-mobile) {\\n\\t\\t\\t\\tmin-width: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.splitpanes__splitter {\\n\\t\\twidth: 9px;\\n\\t\\tmargin-left: -5px;\\n\\t\\tbackground-color: transparent;\\n\\t\\tborder-left: none;\\n\\n\\t\\t&:before,\\n\\t\\t&:after {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},5194:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-45131f51]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-details-toggle[data-v-45131f51]{position:fixed;width:44px;height:44px;padding:14px;cursor:pointer;opacity:.6;transform:rotate(180deg);background-color:var(--color-main-background);z-index:2000}.app-details-toggle[data-v-45131f51]:active,.app-details-toggle[data-v-45131f51]:hover,.app-details-toggle[data-v-45131f51]:focus{opacity:1}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppContent/NcAppDetailsToggle.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,qCACC,cAAA,CACA,UCqBgB,CDpBhB,WCoBgB,CDnBhB,YC2Ba,CD1Bb,cAAA,CACA,UAAA,CACA,wBAAA,CACA,6CAAA,CACA,YAAA,CAEA,kIAGC,SAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-details-toggle {\\n\\tposition: fixed;\\n\\twidth: $clickable-area;\\n\\theight: $clickable-area;\\n\\tpadding: $icon-margin;\\n\\tcursor: pointer;\\n\\topacity: .6;\\n\\ttransform: rotate(180deg);\\n\\tbackground-color: var(--color-main-background);\\n\\tz-index: 2000;\\n\\n\\t&:active,\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},7311:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-2dae457c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation[data-v-2dae457c]{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));transition:transform var(--animation-quick),margin var(--animation-quick);width:300px;position:relative;top:0;left:0;padding:0px;z-index:1800;height:100%;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-grow:0;flex-shrink:0;background-color:var(--color-main-background-blur, var(--color-main-background));-webkit-backdrop-filter:var(--filter-background-blur, none);backdrop-filter:var(--filter-background-blur, none)}.app-navigation--close[data-v-2dae457c]{transform:translateX(-100%);position:absolute}.app-navigation__content>ul[data-v-2dae457c],.app-navigation__list[data-v-2dae457c]{position:relative;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:calc(var(--default-grid-baseline, 4px)*2)}.app-navigation__content[data-v-2dae457c]{height:100%;display:flex;flex-direction:column}[data-themes*=highcontrast] .app-navigation[data-v-2dae457c]{border-right:1px solid var(--color-border)}@media only screen and (max-width: 1024px){.app-navigation[data-v-2dae457c]:not(.app-navigation--close){position:absolute}}@media only screen and (max-width: 768px){.app-navigation[data-v-2dae457c]{z-index:1400}}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigation/NcAppNavigation.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,iCAGC,8GAAA,CAEA,yEAAA,CACA,WC6CkB,CD5ClB,iBAAA,CACA,KAAA,CACA,MAAA,CACA,WAAA,CAEA,YAAA,CACA,WAAA,CACA,qBAAA,CACA,wBAAA,CACA,qBAAA,CACA,oBAAA,CACA,gBAAA,CACA,WAAA,CACA,aAAA,CACA,gFAAA,CACA,2DAAA,CACA,mDAAA,CAEA,wCACC,2BAAA,CACA,iBAAA,CAID,oFAEC,iBAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,eAAA,CACA,qBAAA,CACA,YAAA,CACA,qBAAA,CACA,qCAAA,CACA,iDAAA,CAED,0CACC,WAAA,CACA,YAAA,CACA,qBAAA,CAMD,6DACC,0CAAA,CAKF,2CACC,6DACC,iBAAA,CAAA,CAKF,0CACC,iCACC,YAAA,CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-navigation {\\n\\t// Set scoped variable override\\n\\t// Using --color-text-maxcontrast as a fallback evaluates to an invalid value as it references itself in this scope instead of the variable defined higher up\\n\\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));\\n\\n\\ttransition: transform var(--animation-quick), margin var(--animation-quick);\\n\\twidth: $navigation-width;\\n\\tposition: relative;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tpadding: 0px;\\n\\t// Above appcontent\\n\\tz-index: 1800;\\n\\theight: 100%;\\n\\tbox-sizing: border-box;\\n\\t-webkit-user-select: none;\\n\\t-moz-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none;\\n\\tflex-grow: 0;\\n\\tflex-shrink: 0;\\n\\tbackground-color: var(--color-main-background-blur, var(--color-main-background));\\n\\t-webkit-backdrop-filter: var(--filter-background-blur, none);\\n\\tbackdrop-filter: var(--filter-background-blur, none);\\n\\n\\t&--close {\\n\\t\\ttransform: translateX(-100%);\\n\\t\\tposition: absolute;\\n\\t}\\n\\n\\t//list of navigation items\\n\\t&__content > ul,\\n\\t&__list {\\n\\t\\tposition: relative;\\n\\t\\theight: 100%;\\n\\t\\twidth: 100%;\\n\\t\\toverflow-x: hidden;\\n\\t\\toverflow-y: auto;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: var(--default-grid-baseline, 4px);\\n\\t\\tpadding: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t}\\n\\t&__content {\\n\\t\\theight: 100%;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t}\\n}\\n\\n// add extra border for high contrast mode\\n[data-themes*='highcontrast'] {\\n\\t.app-navigation {\\n\\t\\tborder-right: 1px solid var(--color-border);\\n\\t}\\n}\\n\\n// When on mobile, we make the navigation slide over the appcontent\\n@media only screen and (max-width: $breakpoint-mobile) {\\n\\t.app-navigation:not(.app-navigation--close) {\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\\n// Put the toggle behind appsidebar on small screens\\n@media only screen and (max-width: 768px) {\\n\\t.app-navigation {\\n\\t\\tz-index: 1400;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},2409:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-45fa1055]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-45fa1055]{display:flex;justify-content:space-between;padding:0 calc(var(--default-grid-baseline, 4px)*2) 0 calc(var(--default-grid-baseline, 4px)*3)}.app-navigation-caption__title[data-v-45fa1055]{font-weight:bold;color:var(--color-primary-element);font-size:var(--default-font-size);line-height:44px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.7;box-shadow:none !important;flex-shrink:0}.app-navigation-caption__actions[data-v-45fa1055]{flex:0 0 44px}.app-navigation-caption[data-v-45fa1055]:not(:first-child){margin-top:22px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationCaption/NcAppNavigationCaption.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,yCACC,YAAA,CACA,6BAAA,CACA,+FAAA,CAEA,gDACC,gBAAA,CACA,kCAAA,CACA,kCAAA,CACA,gBCae,CDZf,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,UC2Be,CD1Bf,0BAAA,CACA,aAAA,CAGD,kDACC,aAAA,CAKF,2DACC,eAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.app-navigation-caption {\\n\\tdisplay: flex;\\n\\tjustify-content: space-between;\\n\\tpadding: 0 calc(var(--default-grid-baseline, 4px) * 2) 0 calc(var(--default-grid-baseline, 4px) * 3);\\n\\n\\t&__title {\\n\\t\\tfont-weight: bold;\\n\\t\\tcolor: var(--color-primary-element);\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\topacity: $opacity_normal;\\n\\t\\tbox-shadow: none !important;\\n\\t\\tflex-shrink: 0;\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tflex: 0 0 $clickable-area;\\n\\t}\\n}\\n\\n// extra top space if it's not the first item on the list\\n.app-navigation-caption:not(:first-child) {\\n\\tmargin-top: math.div($clickable-area, 2);\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},891:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-2a1ad7b2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry__counter[data-v-2a1ad7b2]{font-size:calc(var(--default-font-size)*.8);overflow:hidden;width:fit-content;max-width:44px;text-align:center;text-overflow:ellipsis;line-height:1em;padding:4px 8px;border-radius:var(--border-radius-pill);background-color:var(--color-background-darker)}.app-navigation-entry__counter--highlighted[data-v-2a1ad7b2]{padding:4px 6px;color:var(--color-primary-element-text);background-color:var(--color-primary-element)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationCounter/NcAppNavigationCounter.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,gDACC,2CAAA,CACA,eAAA,CACA,iBAAA,CACA,cCmBgB,CDlBhB,iBAAA,CACA,sBAAA,CACA,eAAA,CACA,eAAA,CACA,uCAAA,CACA,+CAAA,CAEA,6DACC,eAAA,CACA,uCAAA,CACA,6CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-navigation-entry__counter {\\n\\tfont-size: calc(var(--default-font-size) * .8);\\n\\toverflow: hidden;\\n\\twidth: fit-content;\\n\\tmax-width: $clickable-area;\\n\\ttext-align: center;\\n\\ttext-overflow: ellipsis;\\n\\tline-height: 1em;\\n\\tpadding: 4px 8px;\\n\\tborder-radius: var(--border-radius-pill);\\n\\tbackground-color: var(--color-background-darker);\\n\\n\\t&--highlighted {\\n\\t\\tpadding: 4px 6px;\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},774:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-419ac252]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry__icon-bullet[data-v-419ac252]{display:block;padding:15px}.app-navigation-entry__icon-bullet div[data-v-419ac252]{width:14px;height:14px;cursor:pointer;transition:background 100ms ease-in-out;border:none;border-radius:50%}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationIconBullet/NcAppNavigationIconBullet.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,oDACC,aAAA,CAEA,YAAA,CACA,wDACC,UAAA,CACA,WAAA,CACA,cAAA,CACA,uCAAA,CACA,WAAA,CACA,iBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-navigation-entry__icon-bullet {\\n\\tdisplay: block;\\n\\t// there is 2 margins\\n\\tpadding: $icon-margin + 1px;\\n\\tdiv {\\n\\t\\twidth: $icon-size - 2px;\\n\\t\\theight: $icon-size - 2px;\\n\\t\\tcursor: pointer;\\n\\t\\ttransition: background 100ms ease-in-out;\\n\\t\\tborder: none;\\n\\t\\tborder-radius: 50%;\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},2374:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-0c72b57a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue.icon-collapse[data-v-0c72b57a]{position:relative;z-index:105;color:var(--color-main-text);right:0}.button-vue.icon-collapse--open[data-v-0c72b57a]{color:var(--color-main-text)}.button-vue.icon-collapse--open[data-v-0c72b57a]:hover{color:var(--color-primary-element)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationItem/NcAppNavigationIconCollapsible.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,2CACC,iBAAA,CACA,WAAA,CACA,4BAAA,CACA,OAAA,CACA,iDACC,4BAAA,CACA,uDACC,kCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.button-vue.icon-collapse {\\n\\tposition: relative;\\n\\tz-index: 105; // above a, under button\\n\\tcolor: var(--color-main-text);\\n\\tright: 0;\\n\\t&--open {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\t&:hover{\\n\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},2412:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;box-sizing:border-box;width:100%;min-height:44px;transition:background-color var(--animation-quick) ease-in-out;transition:background-color 200ms ease-in-out;border-radius:var(--border-radius-pill)}.app-navigation-entry-wrapper{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;box-sizing:border-box;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul{display:none}.app-navigation-entry.active{background-color:var(--color-primary-element-light) !important}.app-navigation-entry:focus-within,.app-navigation-entry:hover{background-color:var(--color-background-hover)}.app-navigation-entry.active .app-navigation-entry__children,.app-navigation-entry:focus-within .app-navigation-entry__children,.app-navigation-entry:hover .app-navigation-entry__children{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions,.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions,.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions,.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions,.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions{display:inline-block}.app-navigation-entry.app-navigation-entry--deleted>ul{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link,.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-div{padding-right:14px}.app-navigation-entry .app-navigation-entry-link,.app-navigation-entry .app-navigation-entry-div{z-index:100;display:flex;overflow:hidden;flex:1 1 0;box-sizing:border-box;min-height:44px;padding:0;white-space:nowrap;color:var(--color-main-text);background-repeat:no-repeat;background-position:14px center;background-size:16px 16px;line-height:44px}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon,.app-navigation-entry .app-navigation-entry-div .app-navigation-entry-icon{display:flex;align-items:center;flex:0 0 44px;justify-content:center;width:44px;height:44px;background-size:16px 16px;background-repeat:no-repeat;background-position:14px center}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__title,.app-navigation-entry .app-navigation-entry-div .app-navigation-entry__title{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis}.app-navigation-entry .app-navigation-entry-link .editingContainer,.app-navigation-entry .app-navigation-entry-div .editingContainer{width:calc(100% - 44px);margin:auto}.app-navigation-entry__children{position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%;gap:var(--default-grid-baseline, 4px)}.app-navigation-entry__children .app-navigation-entry{display:inline-flex;flex-wrap:wrap;padding-left:16px}.app-navigation-entry__deleted{display:inline-flex;flex:1 1 0;padding-left:30px !important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description{position:relative;overflow:hidden;flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;line-height:44px}.app-navigation-entry__utils{display:flex;min-width:44px;align-items:center;flex:0 1 auto;justify-content:flex-end}.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper{margin-right:calc(var(--default-grid-baseline)*3);display:flex;align-items:center;flex:0 1 auto}.app-navigation-entry__utils .action-item.app-navigation-entry__actions{display:none}.app-navigation-entry--editing .app-navigation-entry-edit{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted{z-index:250;transform:translateX(0)}.app-navigation-entry--pinned{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry:active{background-color:var(--color-primary-element-light-hover) !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationItem/NcAppNavigationItem.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,sBACC,iBAAA,CACA,YAAA,CACA,aAAA,CACA,cAAA,CACA,qBAAA,CACA,UAAA,CACA,eCgBgB,CDfhB,8DAAA,CACA,6CAAA,CACA,uCAAA,CAEA,8BACC,iBAAA,CACA,YAAA,CACA,aAAA,CACA,cAAA,CACA,qBAAA,CACA,UAAA,CAEA,sGAEC,YAAA,CAMF,6BACC,8DAAA,CAED,+DAEC,8CAAA,CAKA,4LACC,6CAAA,CAWD,wdACC,oBAAA,CAKF,uDAEC,YAAA,CAIA,yKACC,kBChCW,CDqCb,iGACC,WAAA,CACA,YAAA,CACA,eAAA,CACA,UAAA,CACA,qBAAA,CACA,eCnDe,CDoDf,SAAA,CACA,kBAAA,CACA,4BAAA,CACA,2BAAA,CACA,+BAAA,CACA,yBAAA,CACA,gBC1De,CD4Df,uJACC,YAAA,CACA,kBAAA,CACA,aAAA,CACA,sBAAA,CACA,UCjEc,CDkEd,WClEc,CDmEd,yBAAA,CACA,2BAAA,CACA,+BAAA,CAGD,2JACC,eAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CAGD,qIACC,uBAAA,CACA,WAAA,CAKH,gCACC,iBAAA,CACA,YAAA,CACA,aAAA,CACA,qBAAA,CACA,UAAA,CACA,qCAAA,CAEA,sDACC,mBAAA,CACA,cAAA,CACA,iBC7FU,CDkGZ,+BACC,mBAAA,CACA,UAAA,CACA,4BAAA,CACA,0EACC,iBAAA,CACA,eAAA,CACA,UAAA,CACA,kBAAA,CACA,sBAAA,CACA,gBChHe,CDqHjB,6BACC,YAAA,CACA,cCvHgB,CDwHhB,kBAAA,CACA,aAAA,CACA,wBAAA,CACA,qHACC,oBAAA,CAGD,oEAEC,iDAAA,CACA,YAAA,CACA,kBAAA,CACA,aAAA,CAGD,wEACC,YAAA,CAOD,0DACC,WAAA,CACA,SAAA,CAMD,6DACC,WAAA,CACA,uBAAA,CAKF,8BACC,OAAA,CACA,eAAA,CAEA,4DACC,YAAA,CAOA,yDACC,oEAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-navigation-entry {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tflex-shrink: 0;\\n\\tflex-wrap: wrap;\\n\\tbox-sizing: border-box;\\n\\twidth: 100%;\\n\\tmin-height: $clickable-area;\\n\\ttransition: background-color var(--animation-quick) ease-in-out;\\n\\ttransition: background-color 200ms ease-in-out;\\n\\tborder-radius: var(--border-radius-pill);\\n\\n\\t&-wrapper {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-shrink: 0;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: 100%;\\n\\n\\t\\t&.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul {\\n\\t\\t\\t// NO ANIMATE because if not really hidden, we can still tab through it\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t// When .active class is applied, change color background of link and utils. The\\n\\t// !important prevents the focus state to override the active state.\\n\\t&.active {\\n\\t\\tbackground-color: var(--color-primary-element-light) !important;\\n\\t}\\n\\t&:focus-within,\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t}\\n\\t&.active,\\n\\t&:focus-within,\\n\\t&:hover {\\n\\t\\t.app-navigation-entry__children {\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\t}\\n\\n\\t// Show the actions on active\\n\\t&.active,\\n\\t// Always show the undo button\\n\\t&.app-navigation-entry--deleted,\\n\\t&:focus,\\n\\t&:focus-within,\\n\\t&:hover {\\n\\t\\t.app-navigation-entry__utils .app-navigation-entry__actions {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n\\n\\t/* hide deletion/collapse of subitems */\\n\\t&.app-navigation-entry--deleted > ul {\\n\\t\\t// NO ANIMATE because if not really hidden, we can still tab through it\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t&:not(.app-navigation-entry--editing) {\\n\\t\\t.app-navigation-entry-link, .app-navigation-entry-div {\\n\\t\\t\\tpadding-right: $icon-margin;\\n\\t\\t}\\n\\t}\\n\\n\\t// Main entry link\\n\\t.app-navigation-entry-link, .app-navigation-entry-div {\\n\\t\\tz-index: 100; /* above the bullet to allow click*/\\n\\t\\tdisplay: flex;\\n\\t\\toverflow: hidden;\\n\\t\\tflex: 1 1 0;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmin-height: $clickable-area;\\n\\t\\tpadding: 0;\\n\\t\\twhite-space: nowrap;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: $icon-margin center;\\n\\t\\tbackground-size: $icon-size $icon-size;\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t.app-navigation-entry-icon {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex: 0 0 $clickable-area;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\tbackground-size: $icon-size $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t}\\n\\n\\t\\t.app-navigation-entry__title {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t.editingContainer {\\n\\t\\t\\twidth: calc(100% - #{$clickable-area});\\n\\t\\t\\tmargin: auto;\\n\\t\\t}\\n\\t}\\n}\\n/* Second level nesting for lists */\\n.app-navigation-entry__children {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tflex: 0 1 auto;\\n\\tflex-direction: column;\\n\\twidth: 100%;\\n\\tgap: var(--default-grid-baseline, 4px);\\n\\n\\t.app-navigation-entry {\\n\\t\\tdisplay: inline-flex;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tpadding-left: $icon-size;\\n\\t}\\n}\\n\\n/* Deleted entries */\\n.app-navigation-entry__deleted {\\n\\tdisplay: inline-flex;\\n\\tflex: 1 1 0;\\n\\tpadding-left: $clickable-area - $icon-margin !important;\\n\\t.app-navigation-entry__deleted-description {\\n\\t\\tposition: relative;\\n\\t\\toverflow: hidden;\\n\\t\\tflex: 1 1 0;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tline-height: $clickable-area;\\n\\t}\\n}\\n\\n/* counter and actions */\\n.app-navigation-entry__utils {\\n\\tdisplay: flex;\\n\\tmin-width: $clickable-area;\\n\\talign-items: center;\\n\\tflex: 0 1 auto;\\n\\tjustify-content: flex-end;\\n\\t&#{&}--display-actions .action-item.app-navigation-entry__actions {\\n\\t\\tdisplay: inline-block;\\n\\t}\\n\\t/* counter */\\n\\t.app-navigation-entry__counter-wrapper {\\n\\t\\t// Add slightly more space to the right of the counter\\n\\t\\tmargin-right: calc(var(--default-grid-baseline) * 3);\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tflex: 0 1 auto;\\n\\t}\\n\\t/* actions */\\n\\t.action-item.app-navigation-entry__actions {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\\n// STATES\\n/* editing state */\\n.app-navigation-entry--editing {\\n\\t.app-navigation-entry-edit {\\n\\t\\tz-index: 250;\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n/* deleted state */\\n.app-navigation-entry--deleted {\\n\\t.app-navigation-entry-deleted {\\n\\t\\tz-index: 250;\\n\\t\\ttransform: translateX(0);\\n\\t}\\n}\\n\\n/* pinned state */\\n.app-navigation-entry--pinned {\\n\\torder: 2;\\n\\tmargin-top: auto;\\n\\t// only put a marginTop auto to the first one!\\n\\t~ .app-navigation-entry--pinned {\\n\\t\\tmargin-top: 0;\\n\\t}\\n}\\n\\n// Add more contrast for active entry\\n[data-themes*='highcontrast'] {\\n\\t.app-navigation-entry {\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-primary-element-light-hover) !important;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},6982:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-input-confirm{flex:1 0 100%;width:100%}.app-navigation-input-confirm form{display:flex}.app-navigation-input-confirm__input{height:34px;flex:1 1 100%;font-size:100% !important;margin:5px !important;margin-left:-8px !important;padding:7px !important}.app-navigation-input-confirm__input:active,.app-navigation-input-confirm__input:focus,.app-navigation-input-confirm__input:hover{outline:none;background-color:var(--color-main-background);color:var(--color-main-text);border-color:var(--color-primary-element)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationItem/NcInputConfirmCancel.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCFD,8BACC,aAAA,CACA,UAAA,CAEA,mCACC,YAAA,CAGD,qCACC,WAba,CAcb,aAAA,CACA,yBAAA,CACA,qBAAA,CACA,2BAAA,CACA,sBAAA,CAEA,kIAGC,YAAA,CACA,6CAAA,CACA,4BAAA,CACA,yCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n$input-height: 34px;\\n$input-padding: 7px;\\n$input-margin: 5px;\\n\\n.app-navigation-input-confirm {\\n\\tflex: 1 0 100%;\\n\\twidth: 100%;\\n\\n\\tform {\\n\\t\\tdisplay: flex;\\n\\t}\\n\\n\\t&__input {\\n\\t\\theight: $input-height;\\n\\t\\tflex: 1 1 100%;\\n\\t\\tfont-size: 100% !important;\\n\\t\\tmargin: $input-margin !important;\\n\\t\\tmargin-left: -1px - $input-padding !important;\\n\\t\\tpadding: $input-padding !important;\\n\\n\\t\\t&:active,\\n\\t\\t&:focus,\\n\\t\\t&:hover {\\n\\t\\t\\toutline: none;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},8139:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-5e6c9e57]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-new[data-v-5e6c9e57]{display:block;padding:calc(var(--default-grid-baseline, 4px)*2)}.app-navigation-new button[data-v-5e6c9e57]{width:100%}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationNew/NcAppNavigationNew.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,qCACC,aAAA,CACA,iDAAA,CACA,4CACC,UAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n/* 'New' button */\\n.app-navigation-new {\\n\\tdisplay: block;\\n\\tpadding: calc(var(--default-grid-baseline, 4px) * 2);\\n\\tbutton {\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},7935:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-new-item__title{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;padding-left:7px;font-size:14px}.newItemContainer{width:calc(100% - 44px);margin:auto}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,gCACC,eAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CACA,gBAAA,CACA,cAAA,CAGD,kBACC,uBAAA,CACA,WAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-navigation-new-item__title {\\n\\toverflow: hidden;\\n\\tmax-width: 100%;\\n\\twhite-space: nowrap;\\n\\ttext-overflow: ellipsis;\\n\\tpadding-left: 7px;\\n\\tfont-size: 14px;\\n}\\n\\n.newItemContainer {\\n\\twidth: calc(100% - #{$clickable-area});\\n\\tmargin: auto;\\n}\\n\"],sourceRoot:\"\"}]);const s=o},2532:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-c1f15fcc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}#app-settings[data-v-c1f15fcc]{margin-top:auto;padding:3px}#app-settings__header[data-v-c1f15fcc]{box-sizing:border-box;margin:0 3px 3px 3px}#app-settings__header .settings-button[data-v-c1f15fcc]{display:flex;flex:1 1 0;height:44px;width:100%;padding:0;margin:0;background-color:var(--color-main-background);box-shadow:none;border:0;border-radius:var(--border-radius-pill);text-align:left;font-weight:normal;font-size:100%;color:var(--color-main-text);padding-right:14px;line-height:44px}#app-settings__header .settings-button[data-v-c1f15fcc]:hover,#app-settings__header .settings-button[data-v-c1f15fcc]:focus{background-color:var(--color-background-hover)}#app-settings__header .settings-button__icon[data-v-c1f15fcc]{width:44px;height:44px;min-width:44px}#app-settings__header .settings-button__label[data-v-c1f15fcc]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis}#app-settings__content[data-v-c1f15fcc]{display:block;padding:10px;margin-bottom:-3px;max-height:300px;overflow-y:auto;box-sizing:border-box}.slide-up-leave-active[data-v-c1f15fcc],.slide-up-enter-active[data-v-c1f15fcc]{transition-duration:var(--animation-slow);transition-property:max-height,padding;overflow-y:hidden !important}.slide-up-enter[data-v-c1f15fcc],.slide-up-leave-to[data-v-c1f15fcc]{max-height:0 !important;padding:0 10px !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationSettings/NcAppNavigationSettings.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,+BACC,eAAA,CACA,WC0DgC,CDxDhC,uCACC,qBAAA,CACA,oBAAA,CAEA,wDACC,YAAA,CACA,UAAA,CACA,WCYc,CDXd,UAAA,CACA,SAAA,CACA,QAAA,CACA,6CAAA,CACA,eAAA,CACA,QAAA,CACA,uCAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,4BAAA,CACA,kBAAA,CACA,gBCDc,CDGd,4HAEC,8CAAA,CAGD,8DACC,UCTa,CDUb,WCVa,CDWb,cCXa,CDad,+DACC,eAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CAKH,wCACC,aAAA,CACA,YAAA,CAGA,kBAAA,CAGA,gBAAA,CACA,eAAA,CACA,qBAAA,CAIF,gFAEC,yCAAA,CACA,sCAAA,CACA,4BAAA,CAGD,qEAEC,uBAAA,CACA,yBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n#app-settings {\\n\\tmargin-top: auto;\\n\\tpadding: $app-navigation-settings-margin;\\n\\n\\t&__header {\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmargin: 0 $app-navigation-settings-margin $app-navigation-settings-margin $app-navigation-settings-margin;\\n\\n\\t\\t.settings-button {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 0;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t\\tborder: 0;\\n\\t\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\t\\ttext-align: left;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tfont-size: 100%;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tpadding-right: 14px;\\n\\t\\t\\tline-height: $clickable-area;\\n\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&__icon {\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\t}\\n\\t\\t\\t&__label {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\tmax-width: 100%;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: block;\\n\\t\\tpadding: 10px;\\n\\n\\t\\t/* prevent scrolled contents from stopping too early */\\n\\t\\tmargin-bottom: -$app-navigation-settings-margin;\\n\\n\\t\\t/* restrict height of settings and make scrollable */\\n\\t\\tmax-height: 300px;\\n\\t\\toverflow-y: auto;\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n}\\n\\n.slide-up-leave-active,\\n.slide-up-enter-active {\\n\\ttransition-duration: var(--animation-slow);\\n\\ttransition-property: max-height, padding;\\n\\toverflow-y: hidden !important;\\n}\\n\\n.slide-up-enter,\\n.slide-up-leave-to {\\n\\tmax-height: 0 !important;\\n\\tpadding: 0 10px !important;\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},9464:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-30c3aef8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button.app-navigation-toggle[data-v-30c3aef8]{position:absolute;top:4px;right:-4px;margin-right:-44px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationToggle/NcAppNavigationToggle.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,8CACC,iBAAA,CACA,OCsDe,CDrDf,UAAA,CACA,kBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\nbutton.app-navigation-toggle {\\n\\tposition: absolute;\\n\\ttop: $topbar-margin;\\n\\tright: - $topbar-margin;\\n\\tmargin-right: - $clickable-area;\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},5223:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-549cf324]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings-modal[data-v-549cf324] .modal-wrapper .modal-container{display:flex;overflow:hidden}.app-settings[data-v-549cf324]{width:100%;display:flex;flex-direction:column;min-width:0}.app-settings__title[data-v-549cf324]{min-height:44px;height:44px;line-height:44px;padding-top:4px;text-align:center}.app-settings__wrapper[data-v-549cf324]{display:flex;width:100%;overflow:hidden;height:100%;position:relative}.app-settings__navigation[data-v-549cf324]{min-width:200px;margin-right:20px;overflow-x:hidden;overflow-y:auto;position:relative;height:100%}.app-settings__content[data-v-549cf324]{max-width:100vw;overflow-y:auto;overflow-x:hidden;padding:24px;width:100%}.navigation-list[data-v-549cf324]{height:100%;box-sizing:border-box;overflow-y:auto;padding:12px}.navigation-list__link[data-v-549cf324]{display:block;font-size:16px;height:44px;margin:4px 0;line-height:44px;border-radius:var(--border-radius-pill);font-weight:bold;padding:0 20px;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-color:rgba(0,0,0,0);border:none}.navigation-list__link[data-v-549cf324]:hover,.navigation-list__link[data-v-549cf324]:focus{background-color:var(--color-background-hover)}.navigation-list__link--active[data-v-549cf324]{background-color:var(--color-primary-element-light) !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppSettingsDialog/NcAppSettingsDialog.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,qEACC,YAAA,CACA,eAAA,CAGD,+BACC,UAAA,CACA,YAAA,CACA,qBAAA,CACA,WAAA,CACA,sCACC,eCWe,CDVf,WCUe,CDTf,gBCSe,CDRf,eAAA,CACA,iBAAA,CAED,wCACC,YAAA,CACA,UAAA,CACA,eAAA,CACA,WAAA,CACA,iBAAA,CAED,2CACC,eAAA,CACA,iBAAA,CACA,iBAAA,CACA,eAAA,CACA,iBAAA,CACA,WAAA,CAED,wCACC,eAAA,CACA,eAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAIF,kCACC,WAAA,CACA,qBAAA,CACA,eAAA,CACA,YAAA,CACA,wCACC,aAAA,CACA,cAAA,CACA,WC3Be,CD4Bf,YAAA,CACA,gBC7Be,CD8Bf,uCAAA,CACA,gBAAA,CACA,cAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,8BAAA,CACA,WAAA,CACA,4FAEC,8CAAA,CAED,gDACC,8DAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.app-settings-modal :deep(.modal-wrapper .modal-container) {\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n}\\n\\n.app-settings {\\n\\twidth: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmin-width: 0;\\n\\t&__title {\\n\\t\\tmin-height: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tpadding-top: 4px; // Same as the close button top spacing\\n\\t\\ttext-align: center;\\n\\t}\\n\\t&__wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\toverflow: hidden;\\n\\t\\theight: 100%;\\n\\t\\tposition: relative;\\n\\t}\\n\\t&__navigation {\\n\\t\\tmin-width: 200px;\\n\\t\\tmargin-right: 20px;\\n\\t\\toverflow-x: hidden;\\n\\t\\toverflow-y: auto;\\n\\t\\tposition: relative;\\n\\t\\theight: 100%;\\n\\t}\\n\\t&__content {\\n\\t\\tmax-width: 100vw;\\n\\t\\toverflow-y: auto;\\n\\t\\toverflow-x: hidden;\\n\\t\\tpadding: 24px;\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\\n.navigation-list {\\n\\theight: 100%;\\n\\tbox-sizing: border-box;\\n\\toverflow-y: auto;\\n\\tpadding: 12px;\\n\\t&__link {\\n\\t\\tdisplay: block;\\n\\t\\tfont-size: 16px;\\n\\t\\theight: $clickable-area;\\n\\t\\tmargin: 4px 0;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: 0 20px;\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t\\tbackground-color: transparent;\\n\\t\\tborder: none;\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t\\t&--active {\\n\\t\\t\\tbackground-color: var(--color-primary-element-light) !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},2746:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-600605cc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings-section[data-v-600605cc]{margin-bottom:80px}.app-settings-section__title[data-v-600605cc]{font-size:20px;margin:0;padding:20px 0;font-weight:bold;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppSettingsSection/NcAppSettingsSection.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,uCACC,kBAAA,CACA,8CACC,cAAA,CACA,QAAA,CACA,cAAA,CACA,gBAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-settings-section {\\n\\tmargin-bottom: 80px;\\n\\t&__title {\\n\\t\\tfont-size: 20px;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 20px 0;\\n\\t\\tfont-weight: bold;\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},6801:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-62b02a03]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar[data-v-62b02a03]{z-index:1500;top:0;right:0;display:flex;overflow-x:hidden;overflow-y:auto;flex-direction:column;flex-shrink:0;width:27vw;min-width:300px;max-width:500px;height:100%;border-left:1px solid var(--color-border);background:var(--color-main-background)}.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-62b02a03]{position:absolute;z-index:100;top:6px;right:6px;width:44px;height:44px;opacity:.7;border-radius:22px}.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-62b02a03]:hover,.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-62b02a03]:active,.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-62b02a03]:focus{opacity:1;background-color:rgba(127,127,127,.25)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info[data-v-62b02a03]{flex-direction:row}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__figure[data-v-62b02a03]{z-index:2;width:70px;height:70px;margin:9px;border-radius:3px;flex:0 0 auto}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc[data-v-62b02a03]{padding-left:0;flex:1 1 auto;min-width:0;padding-right:94px;padding-top:10px}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-62b02a03]{padding-right:50px}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-62b02a03]{z-index:3;position:absolute;top:9px;left:-44px;gap:0}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__menu[data-v-62b02a03]{top:6px;right:50px;background-color:rgba(0,0,0,0);position:absolute}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__menu[data-v-62b02a03]{position:absolute;top:6px;right:50px}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc[data-v-62b02a03]{padding-right:94px}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-62b02a03]{padding-right:50px}.app-sidebar .app-sidebar-header .app-sidebar-header__info[data-v-62b02a03]{display:flex;flex-direction:column}.app-sidebar .app-sidebar-header__figure[data-v-62b02a03]{width:100%;height:250px;max-height:250px;background-repeat:no-repeat;background-position:center;background-size:contain}.app-sidebar .app-sidebar-header__figure--with-action[data-v-62b02a03]{cursor:pointer}.app-sidebar .app-sidebar-header__desc[data-v-62b02a03]{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;padding:18px 6px 18px 9px;gap:0 4px}.app-sidebar .app-sidebar-header__desc--with-tertiary-action[data-v-62b02a03]{padding-left:6px}.app-sidebar .app-sidebar-header__desc--editable .app-sidebar-header__maintitle-form[data-v-62b02a03],.app-sidebar .app-sidebar-header__desc--with-subtitle--editable .app-sidebar-header__maintitle-form[data-v-62b02a03]{margin-top:-2px;margin-bottom:-2px}.app-sidebar .app-sidebar-header__desc--with-subtitle--editable .app-sidebar-header__subtitle[data-v-62b02a03]{margin-top:-2px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-62b02a03]{display:flex;height:44px;width:44px;justify-content:center;flex:0 0 auto}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-62b02a03]{box-shadow:none}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-62b02a03]:hover{box-shadow:none;background-color:var(--color-background-hover)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container[data-v-62b02a03]{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;min-width:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container[data-v-62b02a03]{display:flex;align-items:center;min-height:44px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__maintitle[data-v-62b02a03]{padding:0;min-height:30px;font-size:20px;line-height:30px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__maintitle[data-v-62b02a03] .linkified{cursor:pointer;text-decoration:underline;margin:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__maintitle-form[data-v-62b02a03]{display:flex;flex:1 1 auto;align-items:center}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__maintitle-form input.app-sidebar-header__maintitle-input[data-v-62b02a03]{flex:1 1 auto;margin:0;padding:7px;font-size:20px;font-weight:bold}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__menu[data-v-62b02a03]{height:44px;width:44px;border-radius:22px;background-color:rgba(127,127,127,.25);margin-left:5px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle[data-v-62b02a03],.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__subtitle[data-v-62b02a03]{overflow:hidden;width:100%;margin:0;white-space:nowrap;text-overflow:ellipsis}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__subtitle[data-v-62b02a03]{padding:0;opacity:.7;font-size:var(--default-font-size)}.app-sidebar .app-sidebar-header__description[data-v-62b02a03]{display:flex;align-items:center;margin:0 10px}@media only screen and (max-width: 768px){.app-sidebar[data-v-62b02a03]{width:100vw;max-width:100vw}}.slide-right-leave-active[data-v-62b02a03],.slide-right-enter-active[data-v-62b02a03]{transition-duration:var(--animation-quick);transition-property:max-width,min-width}.slide-right-enter-to[data-v-62b02a03],.slide-right-leave[data-v-62b02a03]{min-width:300px;max-width:500px}.slide-right-enter[data-v-62b02a03],.slide-right-leave-to[data-v-62b02a03]{min-width:0 !important;max-width:0 !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppSidebar/NcAppSidebar.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCYD,8BACC,YAAA,CACA,KAAA,CACA,OAAA,CACA,YAAA,CACA,iBAAA,CACA,eAAA,CACA,qBAAA,CACA,aAAA,CACA,UAAA,CACA,eA5BmB,CA6BnB,eA5BmB,CA6BnB,WAAA,CACA,yCAAA,CACA,uCAAA,CAGC,sEACC,iBAAA,CACA,WAAA,CACA,OA1BmB,CA2BnB,SA3BmB,CA4BnB,UCjBc,CDkBd,WClBc,CDmBd,UCDc,CDEd,kBAAA,CACA,qOAGC,SCLW,CDMX,sCCFsB,CDQvB,qHACC,kBAAA,CAEA,iJACC,SAAA,CACA,UAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,aAAA,CAED,+IACC,cAAA,CACA,aAAA,CACA,WAAA,CACA,kBAAA,CACA,gBAlE2B,CAoE3B,yLACC,kBAAA,CAGD,qLACC,SAAA,CACA,iBAAA,CACA,OAAA,CACA,UAAA,CACA,KAAA,CAED,yKACC,OAxEgB,CAyEhB,UAAA,CACA,8BAAA,CACA,iBAAA,CASH,kHACC,iBAAA,CACA,OAtFkB,CAuFlB,UAAA,CAGD,kHACC,kBAAA,CAEA,4JACC,kBAAA,CAMH,4EACC,YAAA,CACA,qBAAA,CAID,0DACC,UAAA,CACA,YAAA,CACA,gBAAA,CACA,2BAAA,CACA,0BAAA,CACA,uBAAA,CACA,uEACC,cAAA,CAKF,wDACC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,kBAAA,CACA,yBAAA,CACA,SAAA,CAGA,8EACC,gBAAA,CAGD,2NAEC,eAAA,CACA,kBAAA,CAGD,+GACC,eAAA,CAGD,8FACC,YAAA,CACA,WCtIa,CDuIb,UCvIa,CDwIb,sBAAA,CACA,aAAA,CAEA,wHAEC,eAAA,CACA,8HACC,eAAA,CACA,8CAAA,CAMH,6FACC,aAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,WAAA,CAEA,sIACC,YAAA,CACA,kBAAA,CACA,eChKY,CDmKZ,qKACC,SAAA,CACA,eAAA,CACA,cAAA,CACA,gBAtLc,CAyLd,gLACC,cAAA,CACA,yBAAA,CACA,QAAA,CAIF,0KACC,YAAA,CACA,aAAA,CACA,kBAAA,CAEA,oNACC,aAAA,CACA,QAAA,CACA,WA3Mc,CA4Md,cAAA,CACA,gBAAA,CAKF,gKACC,WCjMW,CDkMX,UClMW,CDmMX,kBAAA,CACA,sCC7KoB,CD8KpB,eAAA,CAKF,uPAEC,eAAA,CACA,UAAA,CACA,QAAA,CACA,kBAAA,CACA,sBAAA,CAID,2HACC,SAAA,CACA,UCpMY,CDqMZ,kCAAA,CAMH,+DACC,YAAA,CACA,kBAAA,CACA,aAAA,CAMH,0CACC,8BACC,WAAA,CACA,eAAA,CAAA,CAIF,sFAEC,0CAAA,CACA,uCAAA,CAGD,2EAEC,eA5QmB,CA6QnB,eA5QmB,CA+QpB,2EAEC,sBAAA,CACA,sBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n$sidebar-min-width: 300px;\\n$sidebar-max-width: 500px;\\n\\n$desc-vertical-padding: 18px;\\n$desc-vertical-padding-compact: 10px;\\n$desc-input-padding: 7px;\\n\\n// title and subtitle\\n$desc-title-height: 30px;\\n$desc-subtitle-height: 22px;\\n$desc-height: $desc-title-height + $desc-subtitle-height;\\n\\n$top-buttons-spacing: 6px;\\n\\n/*\\n\\tSidebar: to be used within #content\\n\\tapp-content will be shrinked properly\\n*/\\n.app-sidebar {\\n\\tz-index: 1500;\\n\\ttop: 0;\\n\\tright: 0;\\n\\tdisplay: flex;\\n\\toverflow-x: hidden;\\n\\toverflow-y: auto;\\n\\tflex-direction: column;\\n\\tflex-shrink: 0;\\n\\twidth: 27vw;\\n\\tmin-width: $sidebar-min-width;\\n\\tmax-width: $sidebar-max-width;\\n\\theight: 100%;\\n\\tborder-left: 1px solid var(--color-border);\\n\\tbackground: var(--color-main-background);\\n\\n\\t.app-sidebar-header {\\n\\t\\t> .app-sidebar__close {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tz-index: 100;\\n\\t\\t\\ttop: $top-buttons-spacing;\\n\\t\\t\\tright: $top-buttons-spacing;\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tborder-radius: math.div($clickable-area, 2);\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:active,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\tbackground-color: $action-background-hover;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Compact mode only affects a sidebar with a figure\\n\\t\\t&--compact.app-sidebar-header--with-figure {\\n\\t\\t\\t.app-sidebar-header__info {\\n\\t\\t\\t\\tflex-direction: row;\\n\\n\\t\\t\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\t\\t\\tz-index: 2;\\n\\t\\t\\t\\t\\twidth: $desc-height + $desc-vertical-padding;\\n\\t\\t\\t\\t\\theight: $desc-height + $desc-vertical-padding;\\n\\t\\t\\t\\t\\tmargin: math.div($desc-vertical-padding, 2);\\n\\t\\t\\t\\t\\tborder-radius: 3px;\\n\\t\\t\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t.app-sidebar-header__desc {\\n\\t\\t\\t\\t\\tpadding-left: 0;\\n\\t\\t\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\t\\tpadding-right: 2 * $clickable-area + $top-buttons-spacing;\\n\\t\\t\\t\\t\\tpadding-top: $desc-vertical-padding-compact;\\n\\n\\t\\t\\t\\t\\t&.app-sidebar-header__desc--without-actions {\\n\\t\\t\\t\\t\\t\\tpadding-right: #{$clickable-area + $top-buttons-spacing};\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t.app-sidebar-header__tertiary-actions {\\n\\t\\t\\t\\t\\t\\tz-index: 3; // above star\\n\\t\\t\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\t\\t\\ttop: math.div($desc-vertical-padding, 2);\\n\\t\\t\\t\\t\\t\\tleft: -1 * $clickable-area;\\n\\t\\t\\t\\t\\t\\tgap: 0; // override gap\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t.app-sidebar-header__menu {\\n\\t\\t\\t\\t\\t\\ttop: $top-buttons-spacing;\\n\\t\\t\\t\\t\\t\\tright: $clickable-area + $top-buttons-spacing; // left of the close button\\n\\t\\t\\t\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// sidebar without figure\\n\\t\\t&:not(.app-sidebar-header--with-figure) {\\n\\t\\t\\t// align the menu with the close button\\n\\t\\t\\t.app-sidebar-header__menu {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: $top-buttons-spacing;\\n\\t\\t\\t\\tright: $top-buttons-spacing + $clickable-area;\\n\\t\\t\\t}\\n\\t\\t\\t// increase the padding to not overlap the menu\\n\\t\\t\\t.app-sidebar-header__desc {\\n\\t\\t\\t\\tpadding-right: #{$clickable-area * 2 + $top-buttons-spacing};\\n\\n\\t\\t\\t\\t&.app-sidebar-header__desc--without-actions {\\n\\t\\t\\t\\t\\tpadding-right: #{$clickable-area + $top-buttons-spacing};\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// the container with the figure and the description\\n\\t\\t.app-sidebar-header__info {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t}\\n\\n\\t\\t// header background\\n\\t\\t&__figure {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 250px;\\n\\t\\t\\tmax-height: 250px;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-size: contain;\\n\\t\\t\\t&--with-action {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// description\\n\\t\\t&__desc {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: #{$desc-vertical-padding} #{$top-buttons-spacing} #{$desc-vertical-padding} #{math.div($desc-vertical-padding, 2)};\\n\\t\\t\\tgap: 0 4px;\\n\\n\\t\\t\\t// custom overrides\\n\\t\\t\\t&--with-tertiary-action {\\n\\t\\t\\t\\tpadding-left: 6px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--editable .app-sidebar-header__maintitle-form,\\n\\t\\t\\t&--with-subtitle--editable .app-sidebar-header__maintitle-form {\\n\\t\\t\\t\\tmargin-top: -2px;\\n\\t\\t\\t\\tmargin-bottom: -2px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--with-subtitle--editable .app-sidebar-header__subtitle {\\n\\t\\t\\t\\tmargin-top: -2px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.app-sidebar-header__tertiary-actions {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\tflex: 0 0 auto;\\n\\n\\t\\t\\t\\t.app-sidebar-header__star {\\n\\t\\t\\t\\t\\t// Override default Button component styles\\n\\t\\t\\t\\t\\tbox-shadow: none;\\n\\t\\t\\t\\t\\t&:hover {\\n\\t\\t\\t\\t\\t\\tbox-shadow: none;\\n\\t\\t\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t// titles\\n\\t\\t\\t.app-sidebar-header__title-container {\\n\\t\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tflex-direction: column;\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\tmin-width: 0;\\n\\n\\t\\t\\t\\t.app-sidebar-header__maintitle-container {\\n\\t\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\t\\tmin-height: $clickable-area;\\n\\n\\t\\t\\t\\t\\t// main title\\n\\t\\t\\t\\t\\t.app-sidebar-header__maintitle {\\n\\t\\t\\t\\t\\t\\tpadding: 0;\\n\\t\\t\\t\\t\\t\\tmin-height: 30px;\\n\\t\\t\\t\\t\\t\\tfont-size: 20px;\\n\\t\\t\\t\\t\\t\\tline-height: $desc-title-height;\\n\\n\\t\\t\\t\\t\\t\\t// Needs 'deep' as the link is generated by the linkify directive\\n\\t\\t\\t\\t\\t\\t&:deep(.linkified) {\\n\\t\\t\\t\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\t\\t\\t\\ttext-decoration: underline;\\n\\t\\t\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t.app-sidebar-header__maintitle-form {\\n\\t\\t\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t\\t\\t\\tinput.app-sidebar-header__maintitle-input {\\n\\t\\t\\t\\t\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\t\\t\\tpadding: $desc-input-padding;\\n\\t\\t\\t\\t\\t\\t\\tfont-size: 20px;\\n\\t\\t\\t\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t// main menu\\n\\t\\t\\t\\t\\t.app-sidebar-header__menu {\\n\\t\\t\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\t\\t\\tborder-radius: math.div($clickable-area, 2);\\n\\t\\t\\t\\t\\t\\tbackground-color: $action-background-hover;\\n\\t\\t\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// shared between main and subtitle\\n\\t\\t\\t\\t.app-sidebar-header__maintitle,\\n\\t\\t\\t\\t.app-sidebar-header__subtitle {\\n\\t\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// subtitle\\n\\t\\t\\t\\t.app-sidebar-header__subtitle {\\n\\t\\t\\t\\t\\tpadding: 0;\\n\\t\\t\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\t\\t\\tfont-size: var(--default-font-size);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// sidebar description slot\\n\\t\\t&__description {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmargin: 0 10px;\\n\\t\\t}\\n\\t}\\n}\\n\\n// Make the sidebar full-width on small screens\\n@media only screen and (max-width: 768px) {\\n\\t.app-sidebar {\\n\\t\\twidth: 100vw;\\n\\t\\tmax-width: 100vw;\\n\\t}\\n}\\n\\n.slide-right-leave-active,\\n.slide-right-enter-active {\\n\\ttransition-duration: var(--animation-quick);\\n\\ttransition-property: max-width, min-width;\\n}\\n\\n.slide-right-enter-to,\\n.slide-right-leave {\\n\\tmin-width: $sidebar-min-width;\\n\\tmax-width: $sidebar-max-width;\\n}\\n\\n.slide-right-enter,\\n.slide-right-leave-to {\\n\\tmin-width: 0 !important;\\n\\tmax-width: 0 !important;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},6180:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar-header__description button,.app-sidebar-header__description .button,.app-sidebar-header__description input[type=button],.app-sidebar-header__description input[type=submit],.app-sidebar-header__description input[type=reset]{padding:6px 22px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppSidebar/NcAppSidebar.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCHA,4OAIC,gBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n// ! slots specific designs, cannot be scoped\\n// if any button inside the description slot, increase visual padding\\n.app-sidebar-header__description {\\n\\tbutton, .button,\\n\\tinput[type='button'],\\n\\tinput[type='submit'],\\n\\tinput[type='reset'] {\\n\\t\\tpadding: 6px 22px;\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},9290:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-204e1d5c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar-tabs[data-v-204e1d5c]{display:flex;flex-direction:column;min-height:0;flex:1 1 100%}.app-sidebar-tabs__nav[data-v-204e1d5c]{margin-top:10px}.app-sidebar-tabs__nav ul[data-v-204e1d5c]{display:flex;justify-content:stretch}.app-sidebar-tabs__tab[data-v-204e1d5c]{display:block;flex:1 1;min-width:0;text-align:center}.app-sidebar-tabs__tab a[data-v-204e1d5c]{position:relative;display:block;overflow:hidden;padding:25px 5px 5px 5px;transition:color var(--animation-quick),opacity var(--animation-quick),border-color var(--animation-quick);text-align:center;white-space:nowrap;text-overflow:ellipsis;opacity:.7;color:var(--color-main-text);border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__tab a[data-v-204e1d5c]:hover,.app-sidebar-tabs__tab a[data-v-204e1d5c]:focus,.app-sidebar-tabs__tab a[data-v-204e1d5c]:active,.app-sidebar-tabs__tab a.active[data-v-204e1d5c]{opacity:1}.app-sidebar-tabs__tab a:hover .app-sidebar-tabs__tab-icon[data-v-204e1d5c],.app-sidebar-tabs__tab a:focus .app-sidebar-tabs__tab-icon[data-v-204e1d5c],.app-sidebar-tabs__tab a:active .app-sidebar-tabs__tab-icon[data-v-204e1d5c],.app-sidebar-tabs__tab a.active .app-sidebar-tabs__tab-icon[data-v-204e1d5c]{opacity:1}.app-sidebar-tabs__tab a[data-v-204e1d5c]:not(.active):hover,.app-sidebar-tabs__tab a[data-v-204e1d5c]:not(.active):focus{border-bottom-color:var(--color-background-darker);box-shadow:inset 0 -1px 0 var(--color-background-darker)}.app-sidebar-tabs__tab a.active[data-v-204e1d5c]{color:var(--color-main-text);border-bottom-color:var(--color-main-text);box-shadow:inset 0 -1px 0 var(--color-main-text);font-weight:bold}.app-sidebar-tabs__tab a[data-v-204e1d5c]:focus{border-bottom-color:var(--color-primary-element);box-shadow:inset 0 -1px 0 var(--color-primary-element)}.app-sidebar-tabs__tab-icon[data-v-204e1d5c]{position:absolute;top:0;left:0;width:100%;height:25px;transition:opacity var(--animation-quick);opacity:.7}.app-sidebar-tabs__tab-icon>span[data-v-204e1d5c]{display:flex;align-items:center;justify-content:center;background-size:16px}.app-sidebar-tabs__content[data-v-204e1d5c]{position:relative;min-height:0;height:100%}.app-sidebar-tabs__content--multiple[data-v-204e1d5c]>:not(section){display:none}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppSidebar/NcAppSidebarTabs.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,YAAA,CACA,qBAAA,CACA,YAAA,CACA,aAAA,CAEA,wCACC,eAAA,CACA,2CACC,YAAA,CACA,uBAAA,CAGF,wCACC,aAAA,CACA,QAAA,CACA,WAAA,CACA,iBAAA,CACA,0CACC,iBAAA,CACA,aAAA,CACA,eAAA,CACA,wBAAA,CACA,0GAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,UCcc,CDbd,4BAAA,CACA,2CAAA,CAEA,kMAIC,SCOW,CDNX,kTACC,SCKU,CDFZ,0HAEC,kDAAA,CACA,wDAAA,CAED,iDACC,4BAAA,CACA,0CAAA,CACA,gDAAA,CACA,gBAAA,CAKD,gDACC,gDAAA,CACA,sDAAA,CAKH,6CACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CACA,yCAAA,CACA,UC3Be,CD6Bf,kDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,oBAAA,CAIF,4CACC,iBAAA,CAEA,YAAA,CACA,WAAA,CAGA,oEACC,YAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-sidebar-tabs {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmin-height: 0;\\n\\tflex: 1 1 100%;\\n\\n\\t&__nav {\\n\\t\\tmargin-top: 10px;\\n\\t\\tul {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tjustify-content: stretch;\\n\\t\\t}\\n\\t}\\n\\t&__tab {\\n\\t\\tdisplay: block;\\n\\t\\tflex: 1 1;\\n\\t\\tmin-width: 0;\\n\\t\\ttext-align: center;\\n\\t\\ta {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tpadding: 25px 5px 5px 5px;\\n\\t\\t\\ttransition: color var(--animation-quick), opacity var(--animation-quick), border-color var(--animation-quick);\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active,\\n\\t\\t\\t&.active {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\t.app-sidebar-tabs__tab-icon {\\n\\t\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&:not(.active):hover,\\n\\t\\t\\t&:not(.active):focus {\\n\\t\\t\\t\\tborder-bottom-color: var(--color-background-darker);\\n\\t\\t\\t\\tbox-shadow: inset 0 -1px 0 var(--color-background-darker);\\n\\t\\t\\t}\\n\\t\\t\\t&.active {\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\tborder-bottom-color: var(--color-main-text);\\n\\t\\t\\t\\tbox-shadow: inset 0 -1px 0 var(--color-main-text);\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t}\\n\\t\\t\\t// differentiate the two for accessibility purpose\\n\\t\\t\\t// make sure the user knows she's focusing the navigation\\n\\t\\t\\t// and can use arrows/home/pageup...\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\tborder-bottom-color: var(--color-primary-element);\\n\\t\\t\\t\\tbox-shadow: inset 0 -1px 0 var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__tab-icon {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\twidth: 100%;\\n\\t\\theight: 25px;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t& > span {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tbackground-size: 16px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__content {\\n\\t\\tposition: relative;\\n\\t\\t// take full available height\\n\\t\\tmin-height: 0;\\n\\t\\theight: 100%;\\n\\t\\t// force the use of the tab component if more than one tab\\n\\t\\t// you can just put raw content if you don't use tabs\\n\\t\\t&--multiple > :not(section) {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},8222:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-0c059703]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar__tab[data-v-0c059703]{display:none;padding:10px;min-height:100%;max-height:100%;height:100%;overflow:auto}.app-sidebar__tab[data-v-0c059703]:focus{border-color:var(--color-primary-element);box-shadow:0 0 .2em var(--color-primary-element);outline:0}.app-sidebar__tab--active[data-v-0c059703]{display:block}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppSidebarTab/NcAppSidebarTab.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,YAAA,CACA,YAAA,CACA,eAAA,CACA,eAAA,CACA,WAAA,CACA,aAAA,CAEA,yCACC,yCAAA,CACA,gDAAA,CACA,SAAA,CAGD,2CACC,aAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-sidebar__tab {\\n\\tdisplay: none;\\n\\tpadding: 10px;\\n\\tmin-height: 100%; // fill available height\\n\\tmax-height: 100%; // scroll inside\\n\\theight: 100%;\\n\\toverflow: auto;\\n\\n\\t&:focus {\\n\\t\\tborder-color: var(--color-primary-element);\\n\\t\\tbox-shadow: 0 0 0.2em var(--color-primary-element);\\n\\t\\toutline: 0;\\n\\t}\\n\\n\\t&--active {\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},4343:(t,e,n)=>{n.d(e,{Z:()=>g});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r),s=n(1667),l=n.n(s),A=new URL(n(3423),n.b),c=new URL(n(2605),n.b),d=new URL(n(7127),n.b),p=o()(a()),u=l()(A),m=l()(c),h=l()(d);p.push([t.id,\".material-design-icon[data-v-b1ea54bc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.avatardiv[data-v-b1ea54bc]{position:relative;display:inline-block;width:var(--size);height:var(--size)}.avatardiv--unknown[data-v-b1ea54bc]{position:relative;background-color:var(--color-main-background);white-space:normal}.avatardiv[data-v-b1ea54bc]:not(.avatardiv--unknown){background-color:var(--color-main-background) !important;box-shadow:0 0 5px rgba(0,0,0,.05) inset}.avatardiv--with-menu[data-v-b1ea54bc]{cursor:pointer}.avatardiv--with-menu[data-v-b1ea54bc] .v-popper{position:absolute;top:0;left:0}.avatardiv--with-menu .icon-more[data-v-b1ea54bc]{cursor:pointer;opacity:0}.avatardiv--with-menu:focus .icon-more[data-v-b1ea54bc],.avatardiv--with-menu:hover .icon-more[data-v-b1ea54bc]{opacity:1}.avatardiv--with-menu:focus img[data-v-b1ea54bc],.avatardiv--with-menu:hover img[data-v-b1ea54bc]{opacity:.3}.avatardiv--with-menu .icon-more[data-v-b1ea54bc],.avatardiv--with-menu img[data-v-b1ea54bc]{transition:opacity var(--animation-quick)}.avatardiv .avatardiv__initials-wrapper[data-v-b1ea54bc]{height:var(--size);width:var(--size);background-color:var(--color-main-background);border-radius:50%}.avatardiv .avatardiv__initials-wrapper .unknown[data-v-b1ea54bc]{position:absolute;top:0;left:0;display:block;width:100%;text-align:center;font-weight:normal}.avatardiv img[data-v-b1ea54bc]{width:100%;height:100%;object-fit:cover}.avatardiv .material-design-icon[data-v-b1ea54bc]{width:var(--size);height:var(--size)}.avatardiv .avatardiv__user-status[data-v-b1ea54bc]{position:absolute;right:-4px;bottom:-4px;max-height:18px;max-width:18px;height:40%;width:40%;line-height:15px;font-size:var(--default-font-size);border:2px solid var(--color-main-background);background-color:var(--color-main-background);background-repeat:no-repeat;background-size:16px;background-position:center;border-radius:50%}.acli:hover .avatardiv .avatardiv__user-status[data-v-b1ea54bc]{border-color:var(--color-background-hover);background-color:var(--color-background-hover)}.acli.active .avatardiv .avatardiv__user-status[data-v-b1ea54bc]{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}.avatardiv .avatardiv__user-status--online[data-v-b1ea54bc]{background-image:url(\"+u+\")}.avatardiv .avatardiv__user-status--dnd[data-v-b1ea54bc]{background-image:url(\"+m+\");background-color:#fff}.avatardiv .avatardiv__user-status--away[data-v-b1ea54bc]{background-image:url(\"+h+\")}.avatardiv .avatardiv__user-status--icon[data-v-b1ea54bc]{border:none;background-color:rgba(0,0,0,0)}.avatardiv .popovermenu-wrapper[data-v-b1ea54bc]{position:relative;display:inline-block}.avatar-class-icon[data-v-b1ea54bc]{border-radius:50%;background-color:var(--color-background-darker);height:100%}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAvatar/NcAvatar.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,4BACC,iBAAA,CACA,oBAAA,CACA,iBAAA,CACA,kBAAA,CAEA,qCACC,iBAAA,CACA,6CAAA,CACA,kBAAA,CAGD,qDAEC,wDAAA,CACA,wCAAA,CAGD,uCACC,cAAA,CACA,iDACC,iBAAA,CACA,KAAA,CACA,MAAA,CAED,kDACC,cAAA,CACA,SAAA,CAIA,gHACC,SAAA,CAED,kGACC,UAAA,CAGF,6FAEC,yCAAA,CAIF,yDACC,kBAAA,CACA,iBAAA,CACA,6CAAA,CACA,iBAAA,CAEA,kEACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,aAAA,CACA,UAAA,CACA,iBAAA,CACA,kBAAA,CAIF,gCAEC,UAAA,CACA,WAAA,CAEA,gBAAA,CAGD,kDACC,iBAAA,CACA,kBAAA,CAGD,oDACC,iBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,cAAA,CACA,UAAA,CACA,SAAA,CACA,gBAAA,CACA,kCAAA,CACA,6CAAA,CACA,6CAAA,CACA,2BAAA,CACA,oBAAA,CACA,0BAAA,CACA,iBAAA,CAEA,gEACC,0CAAA,CACA,8CAAA,CAED,iEACC,+CAAA,CACA,mDAAA,CAGD,4DACC,wDAAA,CAED,yDACC,wDAAA,CACA,qBAAA,CAED,0DACC,wDAAA,CAED,0DACC,WAAA,CACA,8BAAA,CAIF,iDACC,iBAAA,CACA,oBAAA,CAIF,oCACC,iBAAA,CACA,+CAAA,CACA,WAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.avatardiv {\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\twidth: var(--size);\\n\\theight: var(--size);\\n\\n\\t&--unknown {\\n\\t\\tposition: relative;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\twhite-space: normal;\\n\\t}\\n\\n\\t&:not(&--unknown) {\\n\\t\\t// White/black background for avatars with transparency\\n\\t\\tbackground-color: var(--color-main-background) !important;\\n\\t\\tbox-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\\n\\t}\\n\\n\\t&--with-menu {\\n\\t\\tcursor: pointer;\\n\\t\\t:deep(.v-popper) {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t}\\n\\t\\t.icon-more {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\topacity: 0;\\n\\t\\t}\\n\\t\\t&:focus,\\n\\t\\t&:hover {\\n\\t\\t\\t.icon-more {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t\\timg {\\n\\t\\t\\t\\topacity: 0.3;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t.icon-more,\\n\\t\\timg {\\n\\t\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\t}\\n\\t}\\n\\n\\t.avatardiv__initials-wrapper {\\n\\t\\theight: var(--size);\\n\\t\\twidth: var(--size);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tborder-radius: 50%;\\n\\n\\t\\t.unknown {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t}\\n\\t}\\n\\n\\timg {\\n\\t\\t// Cover entire area\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\t// Keep ratio\\n\\t\\tobject-fit: cover;\\n\\t}\\n\\n\\t.material-design-icon {\\n\\t\\twidth: var(--size);\\n\\t\\theight: var(--size);\\n\\t}\\n\\n\\t.avatardiv__user-status {\\n\\t\\tposition: absolute;\\n\\t\\tright: -4px;\\n\\t\\tbottom: -4px;\\n\\t\\tmax-height: 18px;\\n\\t\\tmax-width: 18px;\\n\\t\\theight: 40%;\\n\\t\\twidth: 40%;\\n\\t\\tline-height: 15px;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-size: 16px;\\n\\t\\tbackground-position: center;\\n\\t\\tborder-radius: 50%;\\n\\n\\t\\t.acli:hover & {\\n\\t\\t\\tborder-color: var(--color-background-hover);\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t\\t.acli.active & {\\n\\t\\t\\tborder-color: var(--color-primary-element-light);\\n\\t\\t\\tbackground-color: var(--color-primary-element-light);\\n\\t\\t}\\n\\n\\t\\t&--online{\\n\\t\\t\\tbackground-image: url('../../assets/status-icons/user-status-online.svg');\\n\\t\\t}\\n\\t\\t&--dnd{\\n\\t\\t\\tbackground-image: url('../../assets/status-icons/user-status-dnd.svg');\\n\\t\\t\\tbackground-color: #ffffff;\\n\\t\\t}\\n\\t\\t&--away{\\n\\t\\t\\tbackground-image: url('../../assets/status-icons/user-status-away.svg');\\n\\t\\t}\\n\\t\\t&--icon {\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t.popovermenu-wrapper {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: inline-block;\\n\\t}\\n}\\n\\n.avatar-class-icon {\\n\\tborder-radius: 50%;\\n\\tbackground-color: var(--color-background-darker);\\n\\theight: 100%;\\n}\\n\\n\"],sourceRoot:\"\"}]);const g=p},9560:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-74afe090]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-crumb[data-v-74afe090]{background-image:none;display:inline-flex;height:44px;padding:0}.vue-crumb[data-v-74afe090]:last-child{max-width:210px;font-weight:bold}.vue-crumb:last-child .vue-crumb__separator[data-v-74afe090]{display:none}.vue-crumb>a[data-v-74afe090]:hover,.vue-crumb>a[data-v-74afe090]:focus{background-color:var(--color-background-dark);color:var(--color-main-text)}.vue-crumb--hidden[data-v-74afe090]{display:none}.vue-crumb.vue-crumb--hovered>a[data-v-74afe090]{background-color:var(--color-background-dark);color:var(--color-main-text)}.vue-crumb__separator[data-v-74afe090]{padding:0;color:var(--color-text-maxcontrast)}.vue-crumb>a[data-v-74afe090]{overflow:hidden;color:var(--color-text-maxcontrast);padding:12px;min-width:44px;max-width:100%;border-radius:var(--border-radius-pill);align-items:center;display:inline-flex;justify-content:center}.vue-crumb>a>span[data-v-74afe090]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vue-crumb[data-v-74afe090]:not(.dropdown) .action-item{max-width:100%}.vue-crumb[data-v-74afe090]:not(.dropdown) .action-item .button-vue{padding:0 4px 0 16px}.vue-crumb[data-v-74afe090]:not(.dropdown) .action-item .button-vue__wrapper{flex-direction:row-reverse}.vue-crumb[data-v-74afe090]:not(.dropdown) .action-item.action-item--open .action-item__menutoggle{background-color:var(--color-background-dark);color:var(--color-main-text)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcBreadcrumb/NcBreadcrumb.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,4BACC,qBAAA,CACA,mBAAA,CACA,WCmBgB,CDlBhB,SAAA,CAEA,uCACC,eAAA,CACA,gBAAA,CAGA,6DACC,YAAA,CAKF,wEAEC,6CAAA,CACA,4BAAA,CAGD,oCACC,YAAA,CAGD,iDACC,6CAAA,CACA,4BAAA,CAGD,uCACC,SAAA,CACA,mCAAA,CAGD,8BACC,eAAA,CACA,mCAAA,CACA,YAAA,CACA,cCnBe,CDoBf,cAAA,CACA,uCAAA,CACA,kBAAA,CACA,mBAAA,CACA,sBAAA,CAEA,mCACC,eAAA,CACA,sBAAA,CACA,kBAAA,CAMF,wDAEC,cAAA,CAEA,oEACC,oBAAA,CAEA,6EACC,0BAAA,CAKF,mGACC,6CAAA,CACA,4BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.vue-crumb {\\n\\tbackground-image: none;\\n\\tdisplay: inline-flex;\\n\\theight: $clickable-area;\\n\\tpadding: 0;\\n\\n\\t&:last-child {\\n\\t\\tmax-width: 210px;\\n\\t\\tfont-weight: bold;\\n\\n\\t\\t// Don't show breadcrumb separator for last crumb\\n\\t\\t.vue-crumb__separator {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t// Hover and focus effect for crumbs\\n\\t& > a:hover,\\n\\t& > a:focus {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tcolor: var(--color-main-text);\\n\\t}\\n\\n\\t&--hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t&#{&}--hovered > a {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tcolor: var(--color-main-text);\\n\\t}\\n\\n\\t&__separator {\\n\\t\\tpadding: 0;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t> a {\\n\\t\\toverflow: hidden;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding: 12px;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\tmax-width: 100%;\\n\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\talign-items: center;\\n\\t\\tdisplay: inline-flex;\\n\\t\\tjustify-content: center;\\n\\n\\t\\t> span {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\t}\\n\\n\\t// Adjust action item appearance for crumbs with actions\\n\\t// to match other crumbs\\n\\t&:not(.dropdown) :deep(.action-item) {\\n\\t\\t// Adjustments necessary to correctly shrink on small screens\\n\\t\\tmax-width: 100%;\\n\\n\\t\\t.button-vue {\\n\\t\\t\\tpadding: 0 4px 0 16px;\\n\\n\\t\\t\\t&__wrapper {\\n\\t\\t\\t\\tflex-direction: row-reverse;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Adjust the background of the last crumb when the action is open\\n\\t\\t&.action-item--open .action-item__menutoggle {\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},9007:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-32bc320f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.breadcrumb[data-v-32bc320f]{width:100%;flex-grow:1;display:inline-flex;align-items:center}.breadcrumb--collapsed[data-v-32bc320f] .vue-crumb:last-child{min-width:100px;flex-shrink:1}.breadcrumb nav[data-v-32bc320f]{flex-shrink:1;max-width:100%;min-width:228px}.breadcrumb .breadcrumb__crumbs[data-v-32bc320f]{max-width:100%}.breadcrumb .breadcrumb__crumbs[data-v-32bc320f],.breadcrumb .breadcrumb__actions[data-v-32bc320f]{display:inline-flex}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcBreadcrumbs/NcBreadcrumbs.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,6BACC,UAAA,CACA,WAAA,CACA,mBAAA,CACA,kBAAA,CAEA,8DACC,eAAA,CACA,aAAA,CAGD,iCACC,aAAA,CACA,cAAA,CAKA,eAAA,CAGD,iDACC,cAAA,CAGD,mGAEC,mBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.breadcrumb {\\n\\twidth: 100%;\\n\\tflex-grow: 1;\\n\\tdisplay: inline-flex;\\n\\talign-items: center;\\n\\n\\t&--collapsed :deep(.vue-crumb:last-child) {\\n\\t\\tmin-width: 100px;\\n\\t\\tflex-shrink: 1;\\n\\t}\\n\\n\\tnav {\\n\\t\\tflex-shrink: 1;\\n\\t\\tmax-width: 100%;\\n\\t\\t/**\\n\\t\\t * This value is given by the min-width of the last crumb (100px) plus\\n\\t\\t * two times the width of a crumb with an icon (first crumb and hidden crumbs actions).\\n\\t\\t */\\n\\t\\tmin-width: 228px;\\n\\t}\\n\\n\\t& #{&}__crumbs {\\n\\t\\tmax-width: 100%;\\n\\t}\\n\\n\\t& #{&}__crumbs,\\n\\t& #{&}__actions {\\n\\t\\tdisplay: inline-flex;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},4466:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-4c8c7bff]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-4c8c7bff]{position:relative;width:fit-content;overflow:hidden;border:0;padding:0;font-size:var(--default-font-size);font-weight:bold;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:22px;transition-property:color,border-color,background-color;transition-duration:.1s;transition-timing-function:linear;color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light)}.button-vue *[data-v-4c8c7bff],.button-vue span[data-v-4c8c7bff]{cursor:pointer}.button-vue[data-v-4c8c7bff]:focus{outline:none}.button-vue[data-v-4c8c7bff]:disabled{cursor:default;opacity:.5;filter:saturate(0.7)}.button-vue:disabled *[data-v-4c8c7bff]{cursor:default}.button-vue[data-v-4c8c7bff]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-4c8c7bff]:active{background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-4c8c7bff]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue__icon[data-v-4c8c7bff]{height:44px;width:44px;min-height:44px;min-width:44px;display:flex;justify-content:center;align-items:center}.button-vue__text[data-v-4c8c7bff]{font-weight:bold;margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue--icon-only[data-v-4c8c7bff]{width:44px !important}.button-vue--text-only[data-v-4c8c7bff]{padding:0 12px}.button-vue--text-only .button-vue__text[data-v-4c8c7bff]{margin-left:4px;margin-right:4px}.button-vue--icon-and-text[data-v-4c8c7bff]{padding:0 16px 0 4px}.button-vue--wide[data-v-4c8c7bff]{width:100%}.button-vue[data-v-4c8c7bff]:focus-visible{outline:2px solid var(--color-main-text) !important;box-shadow:0 0 0 4px var(--color-main-background) !important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-4c8c7bff]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius);background-color:rgba(0,0,0,0)}.button-vue--vue-primary[data-v-4c8c7bff]{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.button-vue--vue-primary[data-v-4c8c7bff]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-4c8c7bff]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-4c8c7bff]{color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light)}.button-vue--vue-secondary[data-v-4c8c7bff]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--vue-tertiary[data-v-4c8c7bff]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary[data-v-4c8c7bff]:hover:not(:disabled){background-color:var(--color);background-color:var(--color-background-hover)}.button-vue--vue-tertiary-no-background[data-v-4c8c7bff]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-no-background[data-v-4c8c7bff]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-4c8c7bff]{color:var(--color-primary-element-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-4c8c7bff]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-success[data-v-4c8c7bff]{background-color:var(--color-success);color:#fff}.button-vue--vue-success[data-v-4c8c7bff]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-4c8c7bff]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-4c8c7bff]{background-color:var(--color-warning);color:#fff}.button-vue--vue-warning[data-v-4c8c7bff]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-4c8c7bff]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-4c8c7bff]{background-color:var(--color-error);color:#fff}.button-vue--vue-error[data-v-4c8c7bff]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-4c8c7bff]:active{background-color:var(--color-error)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcButton/NcButton.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,6BACC,iBAAA,CACA,iBAAA,CACA,eAAA,CACA,QAAA,CACA,SAAA,CACA,kCAAA,CACA,gBAAA,CACA,eCcgB,CDbhB,cCagB,CDZhB,YAAA,CACA,kBAAA,CACA,sBAAA,CAGA,cAAA,CAKA,kBAAA,CACA,uDAAA,CACA,uBAAA,CACA,iCAAA,CAkBA,6CAAA,CACA,mDAAA,CA1BA,iEAEC,cAAA,CAQD,mCACC,YAAA,CAGD,sCACC,cAAA,CAIA,UCIiB,CDFjB,oBAAA,CALA,wCACC,cAAA,CAUF,kDACC,yDAAA,CAKD,oCACC,mDAAA,CAGD,sCACC,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CAGD,mCACC,WCvCe,CDwCf,UCxCe,CDyCf,eCzCe,CD0Cf,cC1Ce,CD2Cf,YAAA,CACA,sBAAA,CACA,kBAAA,CAGD,mCACC,gBAAA,CACA,iBAAA,CACA,aAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CAID,wCACC,qBAAA,CAID,wCACC,cAAA,CACA,0DACC,eAAA,CACA,gBAAA,CAKF,4CACC,oBAAA,CAID,mCACC,UAAA,CAGD,2CACC,mDAAA,CACA,4DAAA,CACA,+EACC,mDAAA,CACA,kCAAA,CACA,8BAAA,CAOF,0CACC,6CAAA,CACA,uCAAA,CACA,+DACC,mDAAA,CAID,iDACC,6CAAA,CAKF,4CACC,6CAAA,CACA,mDAAA,CACA,iEACC,6CAAA,CACA,yDAAA,CAKF,2CACC,4BAAA,CACA,8BAAA,CACA,gEACC,6BAAA,CACA,8CAAA,CAKF,yDACC,4BAAA,CACA,8BAAA,CACA,8EACC,8BAAA,CAKF,sDACC,uCAAA,CACA,8BAAA,CAEA,2EACC,8BAAA,CAKF,0CACC,qCAAA,CACA,UAAA,CACA,+DACC,2CAAA,CAID,iDACC,qCAAA,CAKF,0CACC,qCAAA,CACA,UAAA,CACA,+DACC,2CAAA,CAID,iDACC,qCAAA,CAKF,wCACC,mCAAA,CACA,UAAA,CACA,6DACC,yCAAA,CAID,+CACC,mCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.button-vue {\\n\\tposition: relative;\\n\\twidth: fit-content;\\n\\toverflow: hidden;\\n\\tborder: 0;\\n\\tpadding: 0;\\n\\tfont-size: var(--default-font-size);\\n\\tfont-weight: bold;\\n\\tmin-height: $clickable-area;\\n\\tmin-width: $clickable-area;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\n\\t// Cursor pointer on element and all children\\n\\tcursor: pointer;\\n\\t& *,\\n\\tspan {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\tborder-radius: math.div($clickable-area, 2);\\n\\ttransition-property: color, border-color, background-color;\\n\\ttransition-duration: 0.1s;\\n\\ttransition-timing-function: linear;\\n\\n\\t// No outline feedback for focus. Handled with a toggled class in js (see data)\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t&:disabled {\\n\\t\\tcursor: default;\\n\\t\\t& * {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t// Gives a wash out effect\\n\\t\\tfilter: saturate($opacity_normal);\\n\\t}\\n\\n\\t// Default button type\\n\\tcolor: var(--color-primary-element-light-text);\\n\\tbackground-color: var(--color-primary-element-light);\\n\\t&:hover:not(:disabled) {\\n\\t\\tbackground-color: var(--color-primary-element-light-hover);\\n\\t}\\n\\n\\t// Back to the default color for this button when active\\n\\t// TODO: add ripple effect\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-primary-element-light);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\theight: $clickable-area;\\n\\t\\twidth: $clickable-area;\\n\\t\\tmin-height: $clickable-area;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__text {\\n\\t\\tfont-weight: bold;\\n\\t\\tmargin-bottom: 1px;\\n\\t\\tpadding: 2px 0;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t// Icon-only button\\n\\t&--icon-only {\\n\\t\\twidth: $clickable-area !important;\\n\\t}\\n\\n\\t// Text-only button\\n\\t&--text-only {\\n\\t\\tpadding: 0 12px;\\n\\t\\t& .button-vue__text {\\n\\t\\t\\tmargin-left: 4px;\\n\\t\\t\\tmargin-right: 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Icon and text button\\n\\t&--icon-and-text {\\n\\t\\tpadding: 0 16px 0 4px;\\n\\t}\\n\\n\\t// Wide button spans the whole width of the container\\n\\t&--wide {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&:focus-visible {\\n\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\\n\\t\\t&.button-vue--vue-tertiary-on-primary {\\n\\t\\t\\toutline: 2px solid var(--color-primary-element-text);\\n\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Button types\\n\\n\\t// Primary\\n\\t&--vue-primary {\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-primary-element-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\t// Secondary\\n\\t&--vue-secondary {\\n\\t\\tcolor: var(--color-primary-element-light-text);\\n\\t\\tbackground-color: var(--color-primary-element-light);\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tcolor: var(--color-primary-element-light-text);\\n\\t\\t\\tbackground-color: var(--color-primary-element-light-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary\\n\\t&--vue-tertiary {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: transparent;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color);\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary, no background\\n\\t&--vue-tertiary-no-background {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: transparent;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary on primary color (like the header)\\n\\t&--vue-tertiary-on-primary {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\tbackground-color: transparent;\\n\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Success\\n\\t&--vue-success {\\n\\t\\tbackground-color: var(--color-success);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-success-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// : add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-success);\\n\\t\\t}\\n\\t}\\n\\n\\t// Warning\\n\\t&--vue-warning {\\n\\t\\tbackground-color: var(--color-warning);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-warning-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-warning);\\n\\t\\t}\\n\\t}\\n\\n\\t// Error\\n\\t&--vue-error {\\n\\t\\tbackground-color: var(--color-error);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-error-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-error);\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},8523:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-781f2f28]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.checkbox-radio-switch[data-v-781f2f28]{display:flex}.checkbox-radio-switch__input[data-v-781f2f28]{position:absolute;z-index:-1;opacity:0 !important;width:var(--icon-size);height:var(--icon-size)}.checkbox-radio-switch__label[data-v-781f2f28]{display:flex;position:relative;align-items:center;user-select:none;min-height:44px;border-radius:44px;padding:4px 14px;margin:0 -14px}.checkbox-radio-switch__label[data-v-781f2f28],.checkbox-radio-switch__label *[data-v-781f2f28]{cursor:pointer}.checkbox-radio-switch__icon[data-v-781f2f28]{margin-right:4px;margin-left:-2px;color:var(--color-primary-element);width:var(--icon-size);height:var(--icon-size)}.checkbox-radio-switch--disabled .checkbox-radio-switch__label[data-v-781f2f28]{opacity:.5}.checkbox-radio-switch--disabled .checkbox-radio-switch__label .checkbox-radio-switch__icon[data-v-781f2f28]{color:var(--color-main-text)}.checkbox-radio-switch:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__label[data-v-781f2f28]:hover,.checkbox-radio-switch:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__label[data-v-781f2f28]:focus-within{background-color:var(--color-primary-element-light)}.checkbox-radio-switch-switch:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon[data-v-781f2f28]{color:var(--color-text-maxcontrast)}.checkbox-radio-switch-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked .checkbox-radio-switch__icon[data-v-781f2f28]{color:var(--color-primary-element-light)}.checkbox-radio-switch--button-variant .checkbox-radio-switch__label[data-v-781f2f28]{border-radius:0;width:100%;margin:0}.checkbox-radio-switch--button-variant[data-v-781f2f28]:not(.checkbox-radio-switch--button-variant-v-grouped):not(.checkbox-radio-switch--button-variant-h-grouped){border-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-v-grouped[data-v-781f2f28]:first-of-type{border-top-left-radius:var(--border-radius-large);border-top-right-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-v-grouped[data-v-781f2f28]:last-of-type{border-bottom-left-radius:var(--border-radius-large);border-bottom-right-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-v-grouped+.checkbox-radio-switch--button-variant-v-grouped[data-v-781f2f28]:not(.checkbox-radio-switch--button-variant-v-grouped.checkbox-radio-switch--checked){border-top:0}.checkbox-radio-switch--button-variant-v-grouped+.checkbox-radio-switch--button-variant-v-grouped.checkbox-radio-switch--checked[data-v-781f2f28]{margin-top:-2px}.checkbox-radio-switch--button-variant-h-grouped[data-v-781f2f28]:first-of-type{border-top-left-radius:var(--border-radius-large);border-bottom-left-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-h-grouped[data-v-781f2f28]:last-of-type{border-top-right-radius:var(--border-radius-large);border-bottom-right-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-h-grouped+.checkbox-radio-switch--button-variant-h-grouped[data-v-781f2f28]:not(.checkbox-radio-switch--button-variant-h-grouped.checkbox-radio-switch--checked){border-left:0}.checkbox-radio-switch--button-variant-h-grouped+.checkbox-radio-switch--button-variant-h-grouped.checkbox-radio-switch--checked[data-v-781f2f28]{margin-left:-2px}.checkbox-radio-switch--button-variant.checkbox-radio-switch[data-v-781f2f28]{border:2px solid var(--color-border-dark);overflow:hidden}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked[data-v-781f2f28]{font-weight:bold;border:2px solid var(--color-primary-element-light)}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked[data-v-781f2f28]:hover{border:2px solid var(--color-primary-element)}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked label[data-v-781f2f28]{background-color:var(--color-background-dark)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcCheckboxRadioSwitch/NcCheckboxRadioSwitch.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,wCACC,YAAA,CAEA,+CACC,iBAAA,CACA,UAAA,CACA,oBAAA,CACA,sBAAA,CACA,uBAAA,CAGD,+CACC,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,gBAAA,CACA,eCKe,CDJf,kBCIe,CDHf,gBAAA,CACA,cAAA,CAEA,gGACC,cAAA,CAIF,8CACC,gBA7BQ,CA+BR,gBAAA,CACA,kCAAA,CACA,sBAAA,CACA,uBAAA,CAGD,gFACC,UCEiB,CDDjB,6GACC,4BAAA,CAIF,2OAEC,mDAAA,CAID,iHACC,mCAAA,CAID,2IACC,wCAAA,CAGD,sFACC,eAAA,CACA,UAAA,CACA,QAAA,CAGD,oKACC,wCAAA,CAIA,gFACC,iDAAA,CACA,kDAAA,CAED,+EACC,oDAAA,CACA,qDAAA,CAID,wMACC,YAAA,CAED,kJAGC,eAAA,CAKD,gFACC,iDAAA,CACA,oDAAA,CAED,+EACC,kDAAA,CACA,qDAAA,CAID,wMACC,aAAA,CAED,kJAGC,gBAAA,CAIF,8EACC,yCAAA,CAEA,eAAA,CAEA,uFACC,gBAAA,CACA,mDAAA,CAEA,6FACC,6CAAA,CAGD,6FACC,6CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n$spacing: 4px;\\n\\n.checkbox-radio-switch {\\n\\tdisplay: flex;\\n\\n\\t&__input {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: -1;\\n\\t\\topacity: 0 !important; // We need !important, or it gets overwritten by server style\\n\\t\\twidth: var(--icon-size);\\n\\t\\theight: var(--icon-size);\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\tposition: relative;\\n\\t\\talign-items: center;\\n\\t\\tuser-select: none;\\n\\t\\tmin-height: $clickable-area;\\n\\t\\tborder-radius: $clickable-area;\\n\\t\\tpadding: 4px $icon-margin;\\n\\t\\tmargin: 0 #{-$icon-margin};\\n\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tmargin-right: $spacing;\\n\\t\\t// Remove the left margin of material design icons to align text\\n\\t\\tmargin-left: -2px;\\n\\t\\tcolor: var(--color-primary-element);\\n\\t\\twidth: var(--icon-size);\\n\\t\\theight: var(--icon-size);\\n\\t}\\n\\n\\t&--disabled &__label {\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t.checkbox-radio-switch__icon {\\n\\t\\t\\tcolor: var(--color-main-text)\\n\\t\\t}\\n\\t}\\n\\n\\t&:not(&--disabled) &__label:hover,\\n\\t&:not(&--disabled) &__label:focus-within {\\n\\t\\tbackground-color: var(--color-primary-element-light);\\n\\t}\\n\\n\\t// Switch specific rules\\n\\t&-switch:not(&--checked) &__icon {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t// If switch is checked AND disabled, use the fade primary colour\\n\\t&-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked &__icon {\\n\\t\\tcolor: var(--color-primary-element-light);\\n\\t}\\n\\n\\t&--button-variant &__label {\\n\\t\\tborder-radius: 0;\\n\\t\\twidth: 100%;\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\t&--button-variant:not(&--button-variant-v-grouped):not(&--button-variant-h-grouped) {\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\n\\t&--button-variant-v-grouped {\\n\\t\\t&:first-of-type {\\n\\t\\t\\tborder-top-left-radius: var(--border-radius-large);\\n\\t\\t\\tborder-top-right-radius: var(--border-radius-large);\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\tborder-bottom-left-radius: var(--border-radius-large);\\n\\t\\t\\tborder-bottom-right-radius: var(--border-radius-large);\\n\\t\\t}\\n\\n\\t\\t// avoid double borders between elements\\n\\t\\t& + &:not(&.checkbox-radio-switch--checked) {\\n\\t\\t\\tborder-top: 0;\\n\\t\\t}\\n\\t\\t& + &.checkbox-radio-switch--checked {\\n\\t\\t\\t// as the selected element has all borders:\\n\\t\\t\\t// small trick to cover the previous bottom border (only if there is one)\\n\\t\\t\\tmargin-top: -2px;\\n\\t\\t}\\n\\t}\\n\\n\\t&--button-variant-h-grouped {\\n\\t\\t&:first-of-type {\\n\\t\\t\\tborder-top-left-radius: var(--border-radius-large);\\n\\t\\t\\tborder-bottom-left-radius: var(--border-radius-large);\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\tborder-top-right-radius: var(--border-radius-large);\\n\\t\\t\\tborder-bottom-right-radius: var(--border-radius-large);\\n\\t\\t}\\n\\n\\t\\t// avoid double borders between elements\\n\\t\\t& + &:not(&.checkbox-radio-switch--checked) {\\n\\t\\t\\tborder-left: 0;\\n\\t\\t}\\n\\t\\t& + &.checkbox-radio-switch--checked {\\n\\t\\t\\t// as the selected element has all borders:\\n\\t\\t\\t// small trick to cover the previous bottom border (only if there is one)\\n\\t\\t\\tmargin-left: -2px;\\n\\t\\t}\\n\\t}\\n\\n\\t&--button-variant.checkbox-radio-switch {\\n\\t\\tborder: 2px solid var(--color-border-dark);\\n\\t\\t// better than setting border-radius on labels (producing a small gap)\\n\\t\\toverflow: hidden;\\n\\n\\t\\t&--checked {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tborder: 2px solid var(--color-primary-element-light);\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tborder: 2px solid var(--color-primary-element);\\n\\t\\t\\t}\\n\\n\\t\\t\\tlabel {\\n\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},3246:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-6cccc0ac]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.color-picker[data-v-6cccc0ac]{display:flex;overflow:hidden;align-content:flex-end;flex-direction:column;justify-content:space-between;box-sizing:content-box !important;width:176px;padding:8px;border-radius:3px}.color-picker--advanced-fields[data-v-6cccc0ac]{width:264px}.color-picker__simple[data-v-6cccc0ac]{display:grid;grid-template-columns:repeat(auto-fit, 44px);grid-auto-rows:44px}.color-picker__simple-color-circle[data-v-6cccc0ac]{display:flex;align-items:center;justify-content:center;width:34px;height:34px;min-height:34px;margin:auto;padding:0;color:#fff;border:1px solid rgba(0,0,0,.25);border-radius:50%;font-size:16px}.color-picker__simple-color-circle[data-v-6cccc0ac]:hover{opacity:.6}.color-picker__simple-color-circle--active[data-v-6cccc0ac]{width:38px;height:38px;min-height:38px;transition:all 100ms ease-in-out;opacity:1 !important}.color-picker__advanced[data-v-6cccc0ac]{box-shadow:none !important}.color-picker__navigation[data-v-6cccc0ac]{display:flex;flex-direction:row;justify-content:space-between;margin-top:10px}[data-v-6cccc0ac] .vc-chrome{width:unset;background-color:var(--color-main-background)}[data-v-6cccc0ac] .vc-chrome-color-wrap{width:30px;height:30px}[data-v-6cccc0ac] .vc-chrome-active-color{width:34px;height:34px;border-radius:17px}[data-v-6cccc0ac] .vc-chrome-body{padding:14px 0 0 0;background-color:var(--color-main-background)}[data-v-6cccc0ac] .vc-chrome-body .vc-input__input{box-shadow:none}[data-v-6cccc0ac] .vc-chrome-toggle-btn{filter:var(--background-invert-if-dark)}[data-v-6cccc0ac] .vc-chrome-saturation-wrap{border-radius:3px}[data-v-6cccc0ac] .vc-chrome-saturation-circle{width:20px;height:20px}.slide-enter[data-v-6cccc0ac]{transform:translateX(-50%);opacity:0}.slide-enter-to[data-v-6cccc0ac]{transform:translateX(0);opacity:1}.slide-leave[data-v-6cccc0ac]{transform:translateX(0);opacity:1}.slide-leave-to[data-v-6cccc0ac]{transform:translateX(-50%);opacity:0}.slide-enter-active[data-v-6cccc0ac],.slide-leave-active[data-v-6cccc0ac]{transition:all 50ms ease-in-out}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcColorPicker/NcColorPicker.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,+BACC,YAAA,CACA,eAAA,CACA,sBAAA,CACA,qBAAA,CACA,6BAAA,CACA,iCAAA,CACA,WAAA,CACA,WAAA,CACA,iBAAA,CAEA,gDACC,WAAA,CAGD,uCACC,YAAA,CACA,4CAAA,CACA,mBCKe,CDHf,oDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,WAAA,CACA,SAAA,CACA,UAAA,CACA,gCAAA,CACA,iBAAA,CACA,cAAA,CACA,0DACC,UAAA,CAED,4DACC,UAAA,CACA,WAAA,CACA,eAAA,CACA,gCAAA,CACA,oBAAA,CAKH,yCACC,0BAAA,CAGD,2CACC,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,eAAA,CAKD,8BACC,WAAA,CACA,6CAAA,CAEA,yCACC,UAAA,CACA,WAAA,CAGD,2CACC,UAAA,CACA,WAAA,CACA,kBAAA,CAGD,mCACC,kBAAA,CACA,6CAAA,CACA,oDACC,eAAA,CAIF,yCACC,uCAAA,CAIA,8CACC,iBAAA,CAGD,gDACC,UAAA,CACA,WAAA,CAOH,8BACC,0BAAA,CACA,SAAA,CAED,iCACC,uBAAA,CACA,SAAA,CAED,8BACC,uBAAA,CACA,SAAA,CAED,iCACC,0BAAA,CACA,SAAA,CAED,0EAEC,+BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.color-picker {\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\talign-content: flex-end;\\n\\tflex-direction: column;\\n\\tjustify-content: space-between;\\n\\tbox-sizing: content-box !important;\\n\\twidth: 176px;\\n\\tpadding: 8px;\\n\\tborder-radius: 3px;\\n\\n\\t&--advanced-fields {\\n\\t\\twidth: 264px;\\n\\t}\\n\\n\\t&__simple {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: repeat(auto-fit, $clickable-area);\\n\\t\\tgrid-auto-rows: $clickable-area;\\n\\n\\t\\t&-color-circle {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: 34px;\\n\\t\\t\\theight: 34px;\\n\\t\\t\\tmin-height: 34px;\\n\\t\\t\\tmargin: auto;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: white;\\n\\t\\t\\tborder: 1px solid rgba(0, 0, 0, 0.25);\\n\\t\\t\\tborder-radius: 50%;\\n\\t\\t\\tfont-size: 16px;\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\topacity: .6;\\n\\t\\t\\t}\\n\\t\\t\\t&--active {\\n\\t\\t\\t\\twidth: 38px;\\n\\t\\t\\t\\theight: 38px;\\n\\t\\t\\t\\tmin-height: 38px;\\n\\t\\t\\t\\ttransition: all 100ms ease-in-out;\\n\\t\\t\\t\\topacity: 1 !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__advanced {\\n\\t\\tbox-shadow: none !important;\\n\\t}\\n\\n\\t&__navigation {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tjustify-content: space-between;\\n\\t\\tmargin-top: 10px;\\n\\t}\\n}\\n\\n:deep() .vc {\\n\\t&-chrome {\\n\\t\\twidth: unset;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\n\\t\\t&-color-wrap {\\n\\t\\t\\twidth: 30px;\\n\\t\\t\\theight: 30px;\\n\\t\\t}\\n\\n\\t\\t&-active-color {\\n\\t\\t\\twidth: 34px;\\n\\t\\t\\theight: 34px;\\n\\t\\t\\tborder-radius: 17px;\\n\\t\\t}\\n\\n\\t\\t&-body {\\n\\t\\t\\tpadding: 14px 0 0 0;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t.vc-input__input {\\n\\t\\t\\t\\tbox-shadow: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-toggle-btn {\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t}\\n\\n\\t\\t&-saturation {\\n\\t\\t\\t&-wrap {\\n\\t\\t\\t\\tborder-radius: 3px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-circle {\\n\\t\\t\\t\\twidth: 20px;\\n\\t\\t\\t\\theight: 20px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.slide {\\n\\t&-enter {\\n\\t\\ttransform: translateX(-50%);\\n\\t\\topacity: 0;\\n\\t}\\n\\t&-enter-to {\\n\\t\\ttransform: translateX(0);\\n\\t\\topacity: 1;\\n\\t}\\n\\t&-leave {\\n\\t\\ttransform: translateX(0);\\n\\t\\topacity: 1;\\n\\t}\\n\\t&-leave-to {\\n\\t\\ttransform: translateX(-50%);\\n\\t\\topacity: 0;\\n\\t}\\n\\t&-enter-active,\\n\\t&-leave-active {\\n\\t\\ttransition: all 50ms ease-in-out;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},7168:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-f8d5ac8e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.content[data-v-f8d5ac8e]{box-sizing:border-box;margin:var(--body-container-margin);margin-top:50px;display:flex;width:calc(100% - var(--body-container-margin)*2);border-radius:var(--body-container-radius);height:var(--body-height);overflow:hidden;padding:0}.content[data-v-f8d5ac8e]:not(.with-sidebar--full){position:fixed}.content[data-v-f8d5ac8e] *{box-sizing:border-box}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcContent/NcContent.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,0BACC,qBAAA,CACA,mCAAA,CACA,eAAA,CACA,YAAA,CACA,iDAAA,CACA,0CAAA,CACA,yBAAA,CACA,eAAA,CACA,SAAA,CAEA,mDACC,cAAA,CAGD,4BACC,qBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.content {\\n\\tbox-sizing: border-box;\\n\\tmargin: var(--body-container-margin);\\n\\tmargin-top: 50px;\\n\\tdisplay: flex;\\n\\twidth: calc(100% - var(--body-container-margin) * 2);\\n\\tborder-radius: var(--body-container-radius);\\n\\theight: var(--body-height);\\n\\toverflow: hidden;\\n\\tpadding: 0;\\n\\n\\t&:not(.with-sidebar--full) {\\n\\t\\tposition: fixed;\\n\\t}\\n\\n\\t:deep(*) {\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},3236:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-345fc3d1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.counter-bubble__counter[data-v-345fc3d1]{font-size:calc(var(--default-font-size)*.8);overflow:hidden;width:fit-content;max-width:44px;text-align:center;text-overflow:ellipsis;line-height:1em;padding:4px 6px;border-radius:var(--border-radius-pill);background-color:var(--color-primary-element-light);font-weight:bold;color:var(--color-primary-element)}.counter-bubble__counter--highlighted[data-v-345fc3d1]{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.counter-bubble__counter--outlined[data-v-345fc3d1]{color:var(--color-primary-element);background:rgba(0,0,0,0);box-shadow:inset 0 0 0 2px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcCounterBubble/NcCounterBubble.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,0CACC,2CAAA,CACA,eAAA,CACA,iBAAA,CACA,cCmBgB,CDlBhB,iBAAA,CACA,sBAAA,CACA,eAAA,CACA,eAAA,CACA,uCAAA,CACA,mDAAA,CACA,gBAAA,CACA,kCAAA,CAEA,uDACC,uCAAA,CACA,6CAAA,CAGD,oDACC,kCAAA,CACA,wBAAA,CACA,0BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.counter-bubble__counter {\\n\\tfont-size: calc(var(--default-font-size) * .8);\\n\\toverflow: hidden;\\n\\twidth: fit-content;\\n\\tmax-width: $clickable-area;\\n\\ttext-align: center;\\n\\ttext-overflow: ellipsis;\\n\\tline-height: 1em;\\n\\tpadding: 4px 6px;\\n\\tborder-radius: var(--border-radius-pill);\\n\\tbackground-color: var(--color-primary-element-light);\\n\\tfont-weight: bold;\\n\\tcolor: var(--color-primary-element);\\n\\n\\t&--highlighted {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t}\\n\\n\\t&--outlined {\\n\\t\\tcolor: var(--color-primary-element);\\n\\t\\tbackground: transparent;\\n\\t\\tbox-shadow: inset 0 0 0 2px;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},3048:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-35ac6098]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dashboard-widget[data-v-35ac6098] .empty-content{text-align:center;margin-top:0;padding-top:5vh}.dashboard-widget[data-v-35ac6098] .empty-content.half-screen{padding-top:0;margin-top:0;margin-bottom:1vh}.more[data-v-35ac6098]{display:block;text-align:center;color:var(--color-text-maxcontrast);line-height:60px;cursor:pointer}.more[data-v-35ac6098]:hover,.more[data-v-35ac6098]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-large);color:var(--color-main-text)}.item-list__entry[data-v-35ac6098]{display:flex;align-items:flex-start;padding:8px}.item-list__entry .item-avatar[data-v-35ac6098]{position:relative;margin-top:auto;margin-bottom:auto;background-color:var(--color-background-dark) !important}.item-list__entry .item__details[data-v-35ac6098]{padding-left:8px;max-height:44px;flex-grow:1;overflow:hidden;display:flex;flex-direction:column}.item-list__entry .item__details h3[data-v-35ac6098],.item-list__entry .item__details .message[data-v-35ac6098]{white-space:nowrap;background-color:var(--color-background-dark)}.item-list__entry .item__details h3[data-v-35ac6098]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-35ac6098]{width:80%;height:15px;margin-top:5px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcDashboardWidget/NcDashboardWidget.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,kDACC,iBAAA,CACA,YAAA,CACA,eAAA,CACA,8DACC,aAAA,CACA,YAAA,CACA,iBAAA,CAIF,uBACC,aAAA,CACA,iBAAA,CACA,mCAAA,CACA,gBAAA,CACA,cAAA,CAEA,0DAEC,8CAAA,CACA,wCAAA,CACA,4BAAA,CAKF,mCACC,YAAA,CACA,sBAAA,CACA,WAAA,CAEA,gDACC,iBAAA,CACA,eAAA,CACA,kBAAA,CACA,wDAAA,CAED,kDACC,gBAAA,CACA,eAAA,CACA,WAAA,CACA,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,gHAEC,kBAAA,CACA,6CAAA,CAED,qDACC,cAAA,CACA,QAAA,CAED,2DACC,SAAA,CACA,WAAA,CACA,cAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.dashboard-widget :deep(.empty-content) {\\n\\ttext-align: center;\\n\\tmargin-top: 0;\\n\\tpadding-top: 5vh;\\n\\t&.half-screen {\\n\\t\\tpadding-top: 0;\\n\\t\\tmargin-top: 0;\\n\\t\\tmargin-bottom: 1vh;\\n\\t}\\n}\\n\\n.more {\\n\\tdisplay: block;\\n\\ttext-align: center;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tline-height: 60px;\\n\\tcursor: pointer;\\n\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tcolor: var(--color-main-text);\\n\\t}\\n}\\n\\n/* skeleton */\\n.item-list__entry {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\tpadding: 8px;\\n\\n\\t.item-avatar {\\n\\t\\tposition: relative;\\n\\t\\tmargin-top: auto;\\n\\t\\tmargin-bottom: auto;\\n\\t\\tbackground-color: var(--color-background-dark) !important;\\n\\t}\\n\\t.item__details {\\n\\t\\tpadding-left: 8px;\\n\\t\\tmax-height: 44px;\\n\\t\\tflex-grow: 1;\\n\\t\\toverflow: hidden;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\n\\t\\th3,\\n\\t\\t.message {\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t}\\n\\t\\th3 {\\n\\t\\t\\tfont-size: 100%;\\n\\t\\t\\tmargin: 0;\\n\\t\\t}\\n\\t\\t.message {\\n\\t\\t\\twidth: 80%;\\n\\t\\t\\theight: 15px;\\n\\t\\t\\tmargin-top: 5px;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},342:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-cde45638]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.item-list__entry[data-v-cde45638]{display:flex;align-items:flex-start;position:relative;padding:8px}.item-list__entry[data-v-cde45638]:hover,.item-list__entry[data-v-cde45638]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.item-list__entry .item-avatar[data-v-cde45638]{position:relative;margin-top:auto;margin-bottom:auto}.item-list__entry .item__details[data-v-cde45638]{padding-left:8px;max-height:44px;flex-grow:1;overflow:hidden;display:flex;flex-direction:column}.item-list__entry .item__details h3[data-v-cde45638],.item-list__entry .item__details .message[data-v-cde45638]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-list__entry .item__details .message span[data-v-cde45638]{width:10px;display:inline-block;margin-bottom:-3px}.item-list__entry .item__details h3[data-v-cde45638]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-cde45638]{width:100%;color:var(--color-text-maxcontrast)}.item-list__entry .item-icon[data-v-cde45638]{position:relative;width:14px;height:14px;margin:27px -3px 0px -7px}.item-list__entry button.primary[data-v-cde45638]{padding:21px;margin:0}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,YAAA,CACA,sBAAA,CACA,iBAAA,CACA,WAAA,CAEA,kFAEC,8CAAA,CACA,wCAAA,CAED,gDACC,iBAAA,CACA,eAAA,CACA,kBAAA,CAED,kDACC,gBAAA,CACA,eAAA,CACA,WAAA,CACA,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,gHAEC,kBAAA,CACA,eAAA,CACA,sBAAA,CAED,gEACC,UAAA,CACA,oBAAA,CACA,kBAAA,CAED,qDACC,cAAA,CACA,QAAA,CAED,2DACC,UAAA,CACA,mCAAA,CAIF,8CACC,iBAAA,CACA,UAAA,CACA,WAAA,CACA,yBAAA,CAGD,kDACC,YAAA,CACA,QAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.item-list__entry {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\tposition: relative;\\n\\tpadding: 8px;\\n\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\t.item-avatar {\\n\\t\\tposition: relative;\\n\\t\\tmargin-top: auto;\\n\\t\\tmargin-bottom: auto;\\n\\t}\\n\\t.item__details {\\n\\t\\tpadding-left: 8px;\\n\\t\\tmax-height: 44px;\\n\\t\\tflex-grow: 1;\\n\\t\\toverflow: hidden;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\n\\t\\th3,\\n\\t\\t.message {\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\t\\t.message span {\\n\\t\\t\\twidth: 10px;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\tmargin-bottom: -3px;\\n\\t\\t}\\n\\t\\th3 {\\n\\t\\t\\tfont-size: 100%;\\n\\t\\t\\tmargin: 0;\\n\\t\\t}\\n\\t\\t.message {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n\\n\\t.item-icon {\\n\\t\\tposition: relative;\\n\\t\\twidth: 14px;\\n\\t\\theight: 14px;\\n\\t\\tmargin: 27px -3px 0px -7px;\\n\\t}\\n\\n\\tbutton.primary {\\n\\t\\tpadding: 21px;\\n\\t\\tmargin: 0;\\n\\t}\\n}\\n/*\\n.content-popover {\\n\\theight: 0px;\\n\\twidth: 0px;\\n\\tmargin-left: auto;\\n\\tmargin-right: auto;\\n}\\n.popover-container {\\n\\twidth: 100%;\\n\\theight: 0px;\\n}\\n*/\\n\"],sourceRoot:\"\"}]);const s=o},8739:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-5d83a2ec]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.native-datetime-picker[data-v-5d83a2ec]{display:flex;flex-direction:column}.native-datetime-picker .native-datetime-picker--input[data-v-5d83a2ec]{width:100%;flex:0 0 auto;padding-right:4px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcDateTimePickerNative/NcDateTimePickerNative.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,yCACC,YAAA,CACA,qBAAA,CAGD,wEACC,UAAA,CACA,aAAA,CACA,iBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.native-datetime-picker {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\\n.native-datetime-picker .native-datetime-picker--input {\\n\\twidth: 100%;\\n\\tflex: 0 0 auto;\\n\\tpadding-right: 4px;\\n}\\n\"],sourceRoot:\"\"}]);const s=o},6526:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-68e9c068]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mx-datepicker[data-v-68e9c068] .mx-input-wrapper .mx-input{background-clip:border-box}.datetime-picker-inline-icon[data-v-68e9c068]{opacity:.3;border:none;background-color:rgba(0,0,0,0);border-radius:0;padding:0 !important;margin:0}.datetime-picker-inline-icon--highlighted[data-v-68e9c068]{opacity:.7}.datetime-picker-inline-icon[data-v-68e9c068]:focus,.datetime-picker-inline-icon[data-v-68e9c068]:hover{opacity:1}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcDatetimePicker/NcDatetimePicker.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,4DACC,0BAAA,CAGD,8CACC,UAAA,CACA,WAAA,CACA,8BAAA,CACA,eAAA,CACA,oBAAA,CACA,QAAA,CAEA,2DACC,UAAA,CAGD,wGAEC,SAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.mx-datepicker :deep(.mx-input-wrapper .mx-input) {\\n\\tbackground-clip: border-box;\\n}\\n\\n.datetime-picker-inline-icon {\\n\\topacity: .3;\\n\\tborder: none;\\n\\tbackground-color: transparent;\\n\\tborder-radius: 0;\\n\\tpadding: 0 !important;\\n\\tmargin: 0;\\n\\n\\t&--highlighted {\\n\\t\\topacity: .7;\\n\\t}\\n\\n\\t&:focus,\\n\\t&:hover {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},2618:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper{border-radius:var(--border-radius-large)}.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner{padding:4px;border-radius:var(--border-radius-large)}.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__title{padding:4px 0;padding-left:14px}.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select .vs__dropdown-toggle{border-radius:calc(var(--border-radius-large) - 4px)}.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select.vs--open .vs__dropdown-toggle{border-bottom-left-radius:0;border-bottom-right-radius:0}.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select.vs--open.select--drop-up .vs__dropdown-toggle{border-radius:0 0 calc(var(--border-radius-large) - 4px) calc(var(--border-radius-large) - 4px)}.vs__dropdown-menu--floating{z-index:100001}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcDatetimePicker/NcDatetimePicker.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,sFACC,wCAAA,CAEA,uGACC,WAAA,CACA,wCAAA,CAGC,wIACC,aAAA,CACA,iBAAA,CAKA,gLACC,oDAAA,CAIA,yLACC,2BAAA,CACA,4BAAA,CAED,yMACC,+FAAA,CASN,6BAEC,cAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n// We overwrite the popover base class, so we can style\\n// the popover for the timezone select only.\\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper {\\n\\tborder-radius: var(--border-radius-large);\\n\\n\\t.v-popper__inner {\\n\\t\\tpadding: 4px;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\n\\t\\t.timezone-popover-wrapper {\\n\\t\\t\\t&__title {\\n\\t\\t\\t\\tpadding: 4px 0;\\n\\t\\t\\t\\tpadding-left: 14px; // Left-align with NcSelect text\\n\\t\\t\\t}\\n\\n\\t\\t\\t// We overwrite the border radius of the input to account for the popover border-radius minus the padding\\n\\t\\t\\t&__timezone-select.v-select {\\n\\t\\t\\t\\t.vs__dropdown-toggle {\\n\\t\\t\\t\\t\\tborder-radius: calc(var(--border-radius-large) - 4px);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&.vs--open {\\n\\t\\t\\t\\t\\t.vs__dropdown-toggle {\\n\\t\\t\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t&.select--drop-up .vs__dropdown-toggle {\\n\\t\\t\\t\\t\\t\\tborder-radius: 0 0 calc(var(--border-radius-large) - 4px) calc(var(--border-radius-large) - 4px);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n// TODO: This should be scoped or targeted by a specific selector, but the NcSelect component does not allow this yet.\\n.vs__dropdown-menu--floating {\\n\\t// Higher z-index than the popover in which the NcSelect is located.\\n\\tz-index: 100001;\\n}\\n\"],sourceRoot:\"\"}]);const s=o},436:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-3daafbe0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.name-parts[data-v-3daafbe0]{display:flex;max-width:100%;cursor:inherit}.name-parts__first[data-v-3daafbe0]{overflow:hidden;text-overflow:ellipsis}.name-parts__first[data-v-3daafbe0],.name-parts__last[data-v-3daafbe0]{white-space:pre;cursor:inherit}.name-parts__first strong[data-v-3daafbe0],.name-parts__last strong[data-v-3daafbe0]{font-weight:bold}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcEllipsisedOption/NcEllipsisedOption.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,6BACC,YAAA,CACA,cAAA,CACA,cAAA,CACA,oCACC,eAAA,CACA,sBAAA,CAED,uEAGC,eAAA,CACA,cAAA,CACA,qFACC,gBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.name-parts {\\n\\tdisplay: flex;\\n\\tmax-width: 100%;\\n\\tcursor: inherit;\\n\\t&__first {\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\t&__first,\\n\\t&__last {\\n\\t\\t// prevent whitespace from being trimmed\\n\\t\\twhite-space: pre;\\n\\t\\tcursor: inherit;\\n\\t\\tstrong {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},4722:(t,e,n)=>{n.d(e,{Z:()=>A});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r),s=n(2463),l=o()(a());l.i(s.Z),l.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.emoji-mart{background-color:var(--color-main-background) !important;border:0;color:var(--color-main-text) !important}.emoji-mart button{margin:0;padding:0;border:none;background:rgba(0,0,0,0);font-size:inherit;height:36px;width:auto}.emoji-mart button *{cursor:pointer !important}.emoji-mart .emoji-mart-bar,.emoji-mart .emoji-mart-anchors,.emoji-mart .emoji-mart-search,.emoji-mart .emoji-mart-search input,.emoji-mart .emoji-mart-category,.emoji-mart .emoji-mart-category-label,.emoji-mart .emoji-mart-category-label span,.emoji-mart .emoji-mart-skin-swatches{background-color:rgba(0,0,0,0) !important;border-color:var(--color-border) !important;color:inherit !important}.emoji-mart .emoji-mart-search input:focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary-element);outline:none}.emoji-mart .emoji-mart-bar:first-child{border-top-left-radius:var(--border-radius) !important;border-top-right-radius:var(--border-radius) !important}.emoji-mart .emoji-mart-anchors button{border-radius:0;padding:12px 4px;height:auto}.emoji-mart .emoji-mart-anchors button:focus-visible{outline:2px solid var(--color-primary-element)}.emoji-mart .emoji-mart-category{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:start}.emoji-mart .emoji-mart-category .emoji-mart-category-label,.emoji-mart .emoji-mart-category .emoji-mart-emoji{user-select:none;flex-grow:0;flex-shrink:0}.emoji-mart .emoji-mart-category .emoji-mart-category-label{flex-basis:100%;margin:0}.emoji-mart .emoji-mart-category .emoji-mart-emoji{flex-basis:12.5%;text-align:center}.emoji-mart .emoji-mart-category .emoji-mart-emoji:hover::before,.emoji-mart .emoji-mart-category .emoji-mart-emoji.emoji-mart-emoji-selected::before{background-color:var(--color-background-hover) !important;outline:2px solid var(--color-primary-element)}.emoji-mart .emoji-mart-category button:focus-visible{background-color:var(--color-background-hover);border:2px solid var(--color-primary-element) !important;border-radius:50%}.search{padding:0 8px 4px 8px}.search .input-field__label{padding:5px 4px;font-weight:500}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcEmojiPicker/NcEmojiPicker.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,YACC,wDAAA,CACA,QAAA,CACA,uCAAA,CAGA,mBACC,QAAA,CACA,SAAA,CACA,WAAA,CACA,wBAAA,CACA,iBAAA,CACA,WAAA,CACA,UAAA,CAEA,qBACC,yBAAA,CAIF,0RAQC,yCAAA,CACA,2CAAA,CACA,wBAAA,CAGD,mDACC,uDAAA,CACA,YAAA,CAIA,wCACC,sDAAA,CACA,uDAAA,CAKD,uCACC,eAAA,CACA,gBAAA,CACA,WAAA,CACA,qDAEC,8CAAA,CAKH,iCACC,YAAA,CACA,kBAAA,CACA,cAAA,CACA,qBAAA,CAEA,+GAEC,gBAAA,CACA,WAAA,CACA,aAAA,CAGD,4DACC,eAAA,CACA,QAAA,CAGD,mDAEC,gBAAA,CACA,iBAAA,CAEA,sJAEC,yDAAA,CACA,8CAAA,CAKD,sDACC,8CAAA,CACA,wDAAA,CACA,iBAAA,CAOJ,QACC,qBAAA,CACA,4BAEC,eAAA,CACA,eAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n@import '~emoji-mart-vue-fast/css/emoji-mart.css';\\n\\n.emoji-mart {\\n\\tbackground-color: var(--color-main-background) !important;\\n\\tborder: 0;\\n\\tcolor: var(--color-main-text) !important;\\n\\n\\t// default style reset\\n\\tbutton {\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tborder: none;\\n\\t\\tbackground: transparent;\\n\\t\\tfont-size: inherit;\\n\\t\\theight: 36px;\\n\\t\\twidth: auto;\\n\\n\\t\\t* {\\n\\t\\t\\tcursor: pointer !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.emoji-mart-bar,\\n\\t.emoji-mart-anchors,\\n\\t.emoji-mart-search,\\n\\t.emoji-mart-search input,\\n\\t.emoji-mart-category,\\n\\t.emoji-mart-category-label,\\n\\t.emoji-mart-category-label span,\\n\\t.emoji-mart-skin-swatches {\\n\\t\\tbackground-color: transparent !important;\\n\\t\\tborder-color: var(--color-border) !important;\\n\\t\\tcolor: inherit !important;\\n\\t}\\n\\n\\t.emoji-mart-search input:focus-visible {\\n\\t\\tbox-shadow: inset 0 0 0 2px var(--color-primary-element);\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t.emoji-mart-bar {\\n\\t\\t&:first-child {\\n\\t\\t\\tborder-top-left-radius: var(--border-radius) !important;\\n\\t\\t\\tborder-top-right-radius: var(--border-radius) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.emoji-mart-anchors {\\n\\t\\tbutton {\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t\\tpadding: 12px 4px;\\n\\t\\t\\theight: auto;\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\t/* box-shadow: inset 0 0 0 2px var(--color-primary-element); */\\n\\t\\t\\t\\toutline: 2px solid var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.emoji-mart-category {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tjustify-content: start;\\n\\n\\t\\t.emoji-mart-category-label,\\n\\t\\t.emoji-mart-emoji {\\n\\t\\t\\tuser-select: none;\\n\\t\\t\\tflex-grow: 0;\\n\\t\\t\\tflex-shrink: 0;\\n\\t\\t}\\n\\n\\t\\t.emoji-mart-category-label {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t\\tmargin: 0;\\n\\t\\t}\\n\\n\\t\\t.emoji-mart-emoji {\\n\\t\\t\\t// 8 emoji per row\\n\\t\\t\\tflex-basis: calc(100% / 8);\\n\\t\\t\\ttext-align: center;\\n\\n\\t\\t\\t&:hover::before,\\n\\t\\t\\t&.emoji-mart-emoji-selected::before{\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover) !important;\\n\\t\\t\\t\\toutline: 2px solid var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\tbutton {\\n\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\tborder: 2px solid var(--color-primary-element) !important;\\n\\t\\t\\t\\tborder-radius: 50%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n}\\n\\n.search {\\n\\tpadding: 0 8px 4px 8px;\\n\\t.input-field__label {\\n\\t\\t// Match styles in emoji-mart-vue-fast\\n\\t\\tpadding: 5px 4px;\\n\\t\\tfont-weight: 500;\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const A=l},635:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-957b98b0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.empty-content[data-v-957b98b0]{display:flex;align-items:center;flex-direction:column;margin-top:20vh}.modal-wrapper .empty-content[data-v-957b98b0]{margin-top:5vh;margin-bottom:5vh}.empty-content__icon[data-v-957b98b0]{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto 15px;opacity:.4;background-repeat:no-repeat;background-position:center;background-size:64px}.empty-content__icon[data-v-957b98b0] svg{width:64px;height:64px;max-width:64px;max-height:64px}.empty-content__title[data-v-957b98b0]{margin-bottom:10px;text-align:center}.empty-content__action[data-v-957b98b0]{margin-top:8px}.modal-wrapper .empty-content__action[data-v-957b98b0]{margin-top:20px;display:flex}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcEmptyContent/NcEmptyContent.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,gCACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,eAAA,CAEA,+CACC,cAAA,CACA,iBAAA,CAGD,sCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,kBAAA,CACA,UAAA,CACA,2BAAA,CACA,0BAAA,CACA,oBAAA,CAEA,0CACC,UAAA,CACA,WAAA,CACA,cAAA,CACA,eAAA,CAIF,uCACC,kBAAA,CACA,iBAAA,CAGD,wCACC,cAAA,CAEA,uDACC,eAAA,CACA,YAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.empty-content {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tflex-direction: column;\\n\\tmargin-top: 20vh;\\n\\n\\t.modal-wrapper & {\\n\\t\\tmargin-top: 5vh;\\n\\t\\tmargin-bottom: 5vh;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 64px;\\n\\t\\theight: 64px;\\n\\t\\tmargin: 0 auto 15px;\\n\\t\\topacity: .4;\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: 64px;\\n\\n\\t\\t:deep(svg) {\\n\\t\\t\\twidth: 64px;\\n\\t\\t\\theight: 64px;\\n\\t\\t\\tmax-width: 64px;\\n\\t\\t\\tmax-height: 64px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__title {\\n\\t\\tmargin-bottom: 10px;\\n\\t\\ttext-align: center;\\n\\t}\\n\\n\\t&__action {\\n\\t\\tmargin-top: 8px;\\n\\n\\t\\t.modal-wrapper & {\\n\\t\\t\\tmargin-top: 20px;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},1552:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-91d382a6]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}#guest-content-vue[data-v-91d382a6]{color:var(--color-main-text);background-color:var(--color-main-background);min-width:0;border-radius:var(--border-radius-large);box-shadow:0 0 10px var(--color-box-shadow);height:fit-content;padding:15px;margin:20px auto}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcGuestContent/NcGuestContent.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,oCACC,4BAAA,CACA,6CAAA,CACA,WAAA,CACA,wCAAA,CACA,2CAAA,CACA,kBAAA,CACA,YAAA,CACA,gBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n#guest-content-vue {\\n\\tcolor: var(--color-main-text);\\n\\tbackground-color: var(--color-main-background);\\n\\tmin-width: 0;\\n\\tborder-radius: var(--border-radius-large);\\n\\tbox-shadow: 0 0 10px var(--color-box-shadow);\\n\\theight: fit-content;\\n\\tpadding: 15px;\\n\\tmargin: 20px auto;\\n}\\n\"],sourceRoot:\"\"}]);const s=o},7267:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}#content.nc-guest-content{overflow:auto;margin-bottom:0;height:calc(var(--body-height) + var(--body-container-margin))}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcGuestContent/NcGuestContent.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,0BAEC,aAAA,CAGA,eAAA,CACA,8DAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n#content.nc-guest-content {\\n\\t// Enable scrolling\\n\\toverflow: auto;\\n\\n\\t// Fix box being cutoff at the bottom\\n\\tmargin-bottom: 0;\\n\\theight: calc(var(--body-height) + var(--body-container-margin));\\n}\\n\"],sourceRoot:\"\"}]);const s=o},9950:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,'.material-design-icon[data-v-357d93a8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.header-menu[data-v-357d93a8]{position:relative;width:var(--header-height);height:var(--header-height)}.header-menu__trigger[data-v-357d93a8]{display:flex;align-items:center;justify-content:center;width:var(--header-height);height:var(--header-height);margin:0;padding:0;cursor:pointer;opacity:.85;filter:none !important;color:var(--color-primary-text) !important}.header-menu--opened .header-menu__trigger[data-v-357d93a8],.header-menu__trigger[data-v-357d93a8]:hover,.header-menu__trigger[data-v-357d93a8]:focus,.header-menu__trigger[data-v-357d93a8]:active{opacity:1}.header-menu__trigger[data-v-357d93a8]:focus-visible{outline:none}.header-menu__wrapper[data-v-357d93a8]{position:fixed;z-index:2000;top:50px;right:0;box-sizing:border-box;margin:0 8px;padding:8px;border-radius:0 0 var(--border-radius) var(--border-radius);border-radius:var(--border-radius-large);background-color:var(--color-main-background);filter:drop-shadow(0 1px 5px var(--color-box-shadow))}.header-menu__carret[data-v-357d93a8]{position:absolute;z-index:2001;bottom:0;left:calc(50% - 10px);width:0;height:0;content:\" \";pointer-events:none;border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background)}.header-menu__content[data-v-357d93a8]{overflow:auto;width:350px;max-width:calc(100vw - 16px);min-height:66px;max-height:calc(100vh - 100px)}.header-menu__content[data-v-357d93a8] .empty-content{margin:12vh 10px}@media only screen and (max-width: 512px){.header-menu[data-v-357d93a8]{width:44px}.header-menu__trigger[data-v-357d93a8]{width:44px}}',\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcHeaderMenu/NcHeaderMenu.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCFD,8BACC,iBAAA,CACA,0BAAA,CACA,2BAAA,CAEA,uCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,0BAAA,CACA,2BAAA,CACA,QAAA,CACA,SAAA,CACA,cAAA,CACA,WAAA,CAGA,sBAAA,CACA,0CAAA,CAGD,oMAIC,SAAA,CAGD,qDACC,YAAA,CAGD,uCACC,cAAA,CACA,YAAA,CACA,QAAA,CACA,OAAA,CACA,qBAAA,CACA,YAAA,CACA,WAAA,CACA,2DAAA,CACA,wCAAA,CACA,6CAAA,CAEA,qDAAA,CAGD,sCACC,iBAAA,CACA,YAAA,CACA,QAAA,CACA,qBAAA,CACA,OAAA,CACA,QAAA,CACA,WAAA,CACA,mBAAA,CACA,+BAAA,CACA,gDAAA,CAGD,uCACC,aAAA,CACA,WAAA,CACA,4BAAA,CACA,eAAA,CACA,8BAAA,CACA,sDACC,gBAAA,CAKH,0CACC,8BACC,UCvDe,CDyDf,uCACC,UC1Dc,CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n// content inner and outer margin\\n// Also used for menu top-right positioning\\n$externalMargin: 8px;\\n\\n.header-menu {\\n\\tposition: relative;\\n\\twidth: var(--header-height);\\n\\theight: var(--header-height);\\n\\n\\t&__trigger {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: var(--header-height);\\n\\t\\theight: var(--header-height);\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tcursor: pointer;\\n\\t\\topacity: .85;\\n\\n\\t\\t// header is filled with primary or image background\\n\\t\\tfilter: none !important;\\n\\t\\tcolor: var(--color-primary-text) !important;\\n\\t}\\n\\n\\t&--opened &__trigger,\\n\\t&__trigger:hover,\\n\\t&__trigger:focus,\\n\\t&__trigger:active {\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\t&__trigger:focus-visible {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tposition: fixed;\\n\\t\\tz-index: 2000;\\n\\t\\ttop: 50px;\\n\\t\\tright: 0;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmargin: 0 $externalMargin;\\n\\t\\tpadding: 8px;\\n\\t\\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\n\\t\\tfilter: drop-shadow(0 1px 5px var(--color-box-shadow));\\n\\t}\\n\\n\\t&__carret {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 2001; // Because __wrapper is 2000.\\n\\t\\tbottom: 0;\\n\\t\\tleft: calc(50% - 10px);\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tcontent: ' ';\\n\\t\\tpointer-events: none;\\n\\t\\tborder: 10px solid transparent;\\n\\t\\tborder-bottom-color: var(--color-main-background);\\n\\t}\\n\\n\\t&__content {\\n\\t\\toverflow: auto;\\n\\t\\twidth: 350px;\\n\\t\\tmax-width: calc(100vw - 2 * $externalMargin);\\n\\t\\tmin-height: calc(44px * 1.5);\\n\\t\\tmax-height: calc(100vh - 50px * 2);\\n\\t\\t:deep(.empty-content) {\\n\\t\\t\\tmargin: 12vh 10px;\\n\\t\\t}\\n\\t}\\n}\\n\\n@media only screen and (max-width: math.div($breakpoint-mobile, 2)) {\\n\\t.header-menu {\\n\\t\\twidth: $clickable-area;\\n\\n\\t\\t&__trigger {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},8973:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-a3da3488]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-a3da3488]{display:flex;justify-content:center;align-items:center;min-width:44px;min-height:44px;opacity:1}.icon-vue[data-v-a3da3488] svg{fill:currentColor;max-width:20px;max-height:20px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcIconSvgWrapper/NcIconSvgWrapper.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,2BACC,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,cAAA,CACA,eAAA,CACA,SAAA,CAEA,+BACC,iBAAA,CACA,cAAA,CACA,eAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.icon-vue {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\talign-items: center;\\n\\tmin-width: 44px;\\n\\tmin-height: 44px;\\n\\topacity: 1;\\n\\n\\t&:deep(svg) {\\n\\t\\tfill: currentColor;\\n\\t\\tmax-width: 20px;\\n\\t\\tmax-height: 20px;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},4326:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-474d33a2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.input-field[data-v-474d33a2]{position:relative;width:100%;border-radius:var(--border-radius-large)}.input-field__main-wrapper[data-v-474d33a2]{height:36px;position:relative}.input-field__input[data-v-474d33a2]{margin:0;padding:0 12px;font-size:var(--default-font-size);background-color:var(--color-main-background);color:var(--color-main-text);border:2px solid var(--color-border-maxcontrast);height:36px !important;border-radius:var(--border-radius-large);text-overflow:ellipsis;cursor:pointer;width:100%;-webkit-appearance:textfield !important;-moz-appearance:textfield !important}.input-field__input[data-v-474d33a2]:active:not([disabled]),.input-field__input[data-v-474d33a2]:hover:not([disabled]),.input-field__input[data-v-474d33a2]:focus:not([disabled]){border-color:var(--color-primary-element)}.input-field__input[data-v-474d33a2]:focus{cursor:text}.input-field__input[data-v-474d33a2]:focus-visible{box-shadow:unset !important}.input-field__input--success[data-v-474d33a2]{border-color:var(--color-success) !important}.input-field__input--success[data-v-474d33a2]:focus-visible{box-shadow:#f8fafc 0px 0px 0px 2px,var(--color-primary-element) 0px 0px 0px 4px,rgba(0,0,0,.05) 0px 1px 2px 0px}.input-field__input--error[data-v-474d33a2]{border-color:var(--color-error) !important}.input-field__input--error[data-v-474d33a2]:focus-visible{box-shadow:#f8fafc 0px 0px 0px 2px,var(--color-primary-element) 0px 0px 0px 4px,rgba(0,0,0,.05) 0px 1px 2px 0px}.input-field__input--leading-icon[data-v-474d33a2]{padding-left:28px}.input-field__input--trailing-icon[data-v-474d33a2]{padding-right:28px}.input-field__label[data-v-474d33a2]{padding:4px 0;display:block}.input-field__label--hidden[data-v-474d33a2]{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.input-field__icon[data-v-474d33a2]{position:absolute;height:32px;width:32px;display:flex;align-items:center;justify-content:center;opacity:.7}.input-field__icon--leading[data-v-474d33a2]{bottom:2px;left:2px}.input-field__icon--trailing[data-v-474d33a2]{bottom:2px;right:2px}.input-field__clear-button.button-vue[data-v-474d33a2]{position:absolute;top:2px;right:1px;min-width:unset;min-height:unset;height:32px;width:32px !important;border-radius:var(--border-radius-large)}.input-field__helper-text-message[data-v-474d33a2]{padding:4px 0;display:flex;align-items:center}.input-field__helper-text-message__icon[data-v-474d33a2]{margin-right:8px;align-self:start;margin-top:4px}.input-field__helper-text-message--error[data-v-474d33a2]{color:var(--color-error)}.input-field__helper-text-message--success[data-v-474d33a2]{color:var(--color-success)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcInputField/NcInputField.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,8BACC,iBAAA,CACA,UAAA,CACA,wCAAA,CAEA,4CACC,WAAA,CACA,iBAAA,CAGD,qCACC,QAAA,CACA,cAAA,CACA,kCAAA,CACA,6CAAA,CACA,4BAAA,CACA,gDAAA,CACA,sBAAA,CACA,wCAAA,CACA,sBAAA,CACA,cAAA,CACA,UAAA,CACA,uCAAA,CACA,oCAAA,CAEA,kLAGC,yCAAA,CAGD,2CACC,WAAA,CAGD,mDACC,2BAAA,CAGD,8CACC,4CAAA,CACA,4DACC,+GAAA,CAIF,4CACC,0CAAA,CACA,0DACC,+GAAA,CAIF,mDACC,iBAAA,CAGD,oDACC,kBAAA,CAIF,qCACC,aAAA,CACA,aAAA,CAEA,6CACC,iBAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,eAAA,CAIF,oCACC,iBAAA,CACA,WAAA,CACA,UAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,6CACC,UAAA,CACA,QAAA,CAGD,8CACC,UAAA,CACA,SAAA,CAIF,uDACC,iBAAA,CACA,OAAA,CACA,SAAA,CACA,eAAA,CACA,gBAAA,CACA,WAAA,CACA,qBAAA,CACA,wCAAA,CAGD,mDACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,yDACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,0DACC,wBAAA,CAGD,4DACC,0BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.input-field {\\n\\tposition: relative;\\n\\twidth: 100%;\\n\\tborder-radius: var(--border-radius-large);\\n\\n\\t&__main-wrapper {\\n\\t\\theight: 36px;\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__input {\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0 12px;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 2px solid var(--color-border-maxcontrast);\\n\\t\\theight: 36px !important;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcursor: pointer;\\n\\t\\twidth: 100%;\\n\\t\\t-webkit-appearance: textfield !important;\\n\\t\\t-moz-appearance: textfield !important;\\n\\n\\t\\t&:active:not([disabled]),\\n\\t\\t&:hover:not([disabled]),\\n\\t\\t&:focus:not([disabled]) {\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\n\\t\\t&:focus {\\n\\t\\t\\tcursor: text;\\n\\t\\t}\\n\\n\\t\\t&:focus-visible {\\n\\t\\t\\tbox-shadow: unset !important; // Override server rules\\n\\t\\t}\\n\\n\\t\\t&--success {\\n\\t\\t\\tborder-color: var(--color-success) !important; //Override hover border color\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\tbox-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--error {\\n\\t\\t\\tborder-color: var(--color-error) !important; //Override hover border color\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\tbox-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--leading-icon {\\n\\t\\t\\tpadding-left: 28px;\\n\\t\\t}\\n\\n\\t\\t&--trailing-icon {\\n\\t\\t\\tpadding-right: 28px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__label {\\n\\t\\tpadding: 4px 0;\\n\\t\\tdisplay: block;\\n\\n\\t\\t&--hidden {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tleft: -10000px;\\n\\t\\t\\ttop: auto;\\n\\t\\t\\twidth: 1px;\\n\\t\\t\\theight: 1px;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tposition: absolute;\\n\\t\\theight: 32px;\\n\\t\\twidth: 32px;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\topacity: 0.7;\\n\\t\\t&--leading {\\n\\t\\t\\tbottom: 2px;\\n\\t\\t\\tleft: 2px;\\n\\t\\t}\\n\\n\\t\\t&--trailing {\\n\\t\\t\\tbottom: 2px;\\n\\t\\t\\tright: 2px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__clear-button.button-vue {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 2px;\\n\\t\\tright: 1px;\\n\\t\\tmin-width: unset;\\n\\t\\tmin-height: unset;\\n\\t\\theight: 32px;\\n\\t\\twidth: 32px !important;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\n\\t&__helper-text-message {\\n\\t\\tpadding: 4px 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\n\\t\\t&__icon {\\n\\t\\t\\tmargin-right: 8px;\\n\\t\\t\\talign-self: start;\\n\\t\\t\\tmargin-top: 4px;\\n\\t\\t}\\n\\n\\t\\t&--error {\\n\\t\\t\\tcolor: var(--color-error);\\n\\t\\t}\\n\\n\\t\\t&--success {\\n\\t\\t\\tcolor: var(--color-success);\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},3408:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-f418ea78]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.list-item__wrapper[data-v-f418ea78]{position:relative;width:100%}.list-item__wrapper--active .list-item[data-v-f418ea78],.list-item__wrapper:active .list-item[data-v-f418ea78],.list-item__wrapper.active .list-item[data-v-f418ea78]{background-color:var(--color-primary-element-light)}.list-item[data-v-f418ea78]{display:block;position:relative;flex:0 0 auto;justify-content:flex-start;padding:8px;border-radius:32px;margin:2px 0;width:100%;cursor:pointer;transition:background-color var(--animation-quick) ease-in-out;list-style:none}.list-item[data-v-f418ea78]:hover,.list-item[data-v-f418ea78]:focus{background-color:var(--color-background-hover)}.list-item-content__wrapper[data-v-f418ea78]{display:flex;align-items:center;height:48px}.list-item-content__wrapper--compact[data-v-f418ea78]{height:36px}.list-item-content__wrapper--compact .line-one[data-v-f418ea78],.list-item-content__wrapper--compact .line-two[data-v-f418ea78]{margin-top:-4px;margin-bottom:-4px}.list-item-content[data-v-f418ea78]{display:flex;flex:1 1 auto;justify-content:space-between;padding-left:8px}.list-item-content__main[data-v-f418ea78]{flex:1 1 auto;width:0;margin:auto 0}.list-item-content__main--oneline[data-v-f418ea78]{display:flex}.list-item-content__actions[data-v-f418ea78]{flex:0 0 auto;align-self:center;justify-content:center;margin-left:4px}.list-item__extra[data-v-f418ea78]{margin-top:4px}[data-themes*=highcontrast] .list-item__wrapper--active .list-item[data-v-f418ea78],[data-themes*=highcontrast] .list-item__wrapper:active .list-item[data-v-f418ea78],[data-themes*=highcontrast] .list-item__wrapper.active .list-item[data-v-f418ea78]{background-color:var(--color-primary-element-light-hover)}.line-one[data-v-f418ea78]{display:flex;align-items:center;justify-content:space-between;white-space:nowrap;margin:0 auto 0 0;overflow:hidden}.line-one__title[data-v-f418ea78]{overflow:hidden;flex-grow:1;cursor:pointer;text-overflow:ellipsis;color:var(--color-main-text);font-weight:bold}.line-one__details[data-v-f418ea78]{color:var(--color-text-maxcontrast);margin:0 8px;font-weight:normal}.line-two[data-v-f418ea78]{display:flex;align-items:flex-start;justify-content:space-between;white-space:nowrap}.line-two--bold[data-v-f418ea78]{font-weight:bold}.line-two__subtitle[data-v-f418ea78]{overflow:hidden;flex-grow:1;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.line-two__additional_elements[data-v-f418ea78]{margin:2px 4px 0 4px;display:flex;align-items:center}.line-two__indicator[data-v-f418ea78]{margin:0 5px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcListItem/NcListItem.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,qCACC,iBAAA,CACA,UAAA,CAKC,sKACC,mDAAA,CAMH,4BACC,aAAA,CACA,iBAAA,CACA,aAAA,CACA,0BAAA,CACA,WAAA,CAGA,kBAAA,CACA,YAAA,CACA,UAAA,CACA,cAAA,CACA,8DAAA,CACA,eAAA,CACA,oEAEC,8CAAA,CAGD,6CACC,YAAA,CACA,kBAAA,CACA,WAAA,CAEA,sDACC,WAAA,CAEA,gIACC,eAAA,CACA,kBAAA,CAKH,oCACC,YAAA,CACA,aAAA,CACA,6BAAA,CACA,gBAAA,CAEA,0CACC,aAAA,CACA,OAAA,CACA,aAAA,CAEA,mDACC,YAAA,CAIF,6CACC,aAAA,CACA,iBAAA,CACA,sBAAA,CACA,eAAA,CAIF,mCACC,cAAA,CAUC,0PACC,yDAAA,CAMJ,2BACC,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,kBAAA,CACA,iBAAA,CACA,eAAA,CAEA,kCACC,eAAA,CACA,WAAA,CACA,cAAA,CACA,sBAAA,CACA,4BAAA,CACA,gBAAA,CAGD,oCACC,mCAAA,CACA,YAAA,CACA,kBAAA,CAIF,2BACC,YAAA,CACA,sBAAA,CACA,6BAAA,CACA,kBAAA,CACA,iCACC,gBAAA,CAGD,qCACC,eAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,gDACC,oBAAA,CACA,YAAA,CACA,kBAAA,CAGD,sCACC,YAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.list-item__wrapper {\\n\\tposition: relative;\\n\\twidth: 100%;\\n\\n\\t&--active,\\n\\t&:active,\\n\\t&.active {\\n\\t\\t.list-item {\\n\\t\\t\\tbackground-color: var(--color-primary-element-light);\\n\\t\\t}\\n\\t}\\n}\\n\\n// NcListItem\\n.list-item {\\n\\tdisplay: block;\\n\\tposition: relative;\\n\\tflex: 0 0 auto;\\n\\tjustify-content: flex-start;\\n\\tpadding: 8px;\\n\\t// Fix for border-radius being too large for 3-line entries like in Mail\\n\\t// 44px avatar size / 2 + 8px padding, and 2px for better visual quality\\n\\tborder-radius: 32px;\\n\\tmargin: 2px 0;\\n\\twidth: 100%;\\n\\tcursor: pointer;\\n\\ttransition: background-color var(--animation-quick) ease-in-out;\\n\\tlist-style: none;\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t}\\n\\n\\t&-content__wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\theight: 48px;\\n\\n\\t\\t&--compact {\\n\\t\\t\\theight: 36px;\\n\\n\\t\\t\\t.line-one, .line-two {\\n\\t\\t\\t\\tmargin-top: -4px;\\n\\t\\t\\t\\tmargin-bottom: -4px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&-content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex: 1 1 auto;\\n\\t\\tjustify-content: space-between;\\n\\t\\tpadding-left: 8px;\\n\\n\\t\\t&__main {\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\twidth: 0;\\n\\t\\t\\tmargin: auto 0;\\n\\n\\t\\t\\t&--oneline {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&__actions {\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\talign-self: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tmargin-left: 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__extra {\\n\\t\\tmargin-top: 4px;\\n\\t}\\n}\\n\\n// Add more contrast for active entry\\n[data-themes*='highcontrast'] {\\n\\t.list-item__wrapper {\\n\\t\\t&--active,\\n\\t\\t&:active,\\n\\t\\t&.active {\\n\\t\\t\\t.list-item {\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element-light-hover);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.line-one {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: space-between;\\n\\twhite-space: nowrap;\\n\\tmargin: 0 auto 0 0;\\n\\toverflow: hidden;\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\tflex-grow: 1;\\n\\t\\tcursor: pointer;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tfont-weight: bold;\\n\\t}\\n\\n\\t&__details {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin: 0 8px;\\n\\t\\tfont-weight: normal;\\n\\t}\\n}\\n\\n.line-two {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\tjustify-content: space-between;\\n\\twhite-space: nowrap;\\n\\t&--bold {\\n\\t\\tfont-weight: bold;\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\toverflow: hidden;\\n\\t\\tflex-grow: 1;\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__additional_elements {\\n\\t\\tmargin: 2px 4px 0 4px;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__indicator {\\n\\t\\tmargin: 0 5px;\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},808:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-4f3daf70]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.option[data-v-4f3daf70]{display:flex;align-items:center;width:100%;height:var(--height);cursor:inherit}.option__avatar[data-v-4f3daf70]{margin-right:var(--margin)}.option__details[data-v-4f3daf70]{display:flex;flex:1 1;flex-direction:column;justify-content:center;min-width:0}.option__lineone[data-v-4f3daf70]{color:var(--color-main-text)}.option__linetwo[data-v-4f3daf70]{color:var(--color-text-maxcontrast)}.option__lineone[data-v-4f3daf70],.option__linetwo[data-v-4f3daf70]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.1em}.option__lineone strong[data-v-4f3daf70],.option__linetwo strong[data-v-4f3daf70]{font-weight:bold}.option__icon[data-v-4f3daf70]{width:44px;height:44px;color:var(--color-text-maxcontrast)}.option__icon.icon[data-v-4f3daf70]{flex:0 0 44px;opacity:.7;background-position:center;background-size:16px}.option__details[data-v-4f3daf70],.option__lineone[data-v-4f3daf70],.option__linetwo[data-v-4f3daf70],.option__icon[data-v-4f3daf70]{cursor:inherit}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcListItemIcon/NcListItemIcon.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,yBACC,YAAA,CACA,kBAAA,CACA,UAAA,CACA,oBAAA,CACA,cAAA,CAEA,iCACC,0BAAA,CAGD,kCACC,YAAA,CACA,QAAA,CACA,qBAAA,CACA,sBAAA,CACA,WAAA,CAGD,kCACC,4BAAA,CAGD,kCACC,mCAAA,CAGD,oEAEC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,iBAAA,CACA,kFACC,gBAAA,CAIF,+BACC,UChBe,CDiBf,WCjBe,CDkBf,mCAAA,CACA,oCACC,aAAA,CACA,UCHc,CDId,0BAAA,CACA,oBAAA,CAIF,qIAIC,cAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.option {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\twidth: 100%;\\n\\theight: var(--height);\\n\\tcursor: inherit;\\n\\n\\t&__avatar {\\n\\t\\tmargin-right: var(--margin);\\n\\t}\\n\\n\\t&__details {\\n\\t\\tdisplay: flex;\\n\\t\\tflex: 1 1;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tmin-width: 0;\\n\\t}\\n\\n\\t&__lineone {\\n\\t\\tcolor: var(--color-main-text);\\n\\t}\\n\\n\\t&__linetwo {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__lineone,\\n\\t&__linetwo {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tline-height: 1.1em;\\n\\t\\tstrong {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon {\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t&.icon {\\n\\t\\t\\tflex: 0 0 $clickable-area;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-size: 16px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__details,\\n\\t&__lineone,\\n\\t&__linetwo,\\n\\t&__icon {\\n\\t\\tcursor: inherit;\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},5030:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-c4a9cada]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.loading-icon svg[data-v-c4a9cada]{animation:rotate var(--animation-duration, 0.8s) linear infinite}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcLoadingIcon/NcLoadingIcon.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,gEAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.loading-icon svg{\\n\\tanimation: rotate var(--animation-duration, 0.8s) linear infinite;\\n}\\n\"],sourceRoot:\"\"}]);const s=o},4274:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,'.material-design-icon[data-v-09b21bad]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-09b21bad]{position:fixed;z-index:9998;top:0;left:0;display:block;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.modal-mask--dark[data-v-09b21bad]{background-color:rgba(0,0,0,.92)}.modal-header[data-v-09b21bad]{position:absolute;z-index:10001;top:0;right:0;left:0;display:flex !important;align-items:center;justify-content:center;width:100%;height:50px;overflow:hidden;transition:opacity 250ms,visibility 250ms}.modal-header.invisible[style*=\"display:none\"][data-v-09b21bad],.modal-header.invisible[style*=\"display: none\"][data-v-09b21bad]{visibility:hidden}.modal-header .modal-title[data-v-09b21bad]{overflow-x:hidden;box-sizing:border-box;width:100%;padding:0 132px 0 12px;transition:padding ease 100ms;white-space:nowrap;text-overflow:ellipsis;color:#fff;font-size:14px;margin-bottom:0}@media only screen and (min-width: 1024px){.modal-header .modal-title[data-v-09b21bad]{padding-left:132px;text-align:center}}.modal-header .icons-menu[data-v-09b21bad]{position:absolute;right:0;display:flex;align-items:center;justify-content:flex-end}.modal-header .icons-menu .header-close[data-v-09b21bad]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;margin:3px;padding:0}.modal-header .icons-menu .play-pause-icons[data-v-09b21bad]{position:relative;width:50px;height:50px;margin:0;padding:0;cursor:pointer;border:none;background-color:rgba(0,0,0,0)}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__play[data-v-09b21bad],.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__pause[data-v-09b21bad],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__play[data-v-09b21bad],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__pause[data-v-09b21bad]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,.25)}.modal-header .icons-menu .play-pause-icons__play[data-v-09b21bad],.modal-header .icons-menu .play-pause-icons__pause[data-v-09b21bad]{box-sizing:border-box;width:44px;height:44px;margin:3px;cursor:pointer;opacity:.7}.modal-header .icons-menu .header-actions[data-v-09b21bad]{color:#fff}.modal-header .icons-menu[data-v-09b21bad] .action-item{margin:3px}.modal-header .icons-menu[data-v-09b21bad] .action-item--single{box-sizing:border-box;width:44px;height:44px;cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu[data-v-09b21bad] button{color:#fff}.modal-header .icons-menu[data-v-09b21bad] .action-item__menutoggle{padding:0}.modal-header .icons-menu[data-v-09b21bad] .action-item__menutoggle span,.modal-header .icons-menu[data-v-09b21bad] .action-item__menutoggle svg{width:var(--icon-size);height:var(--icon-size)}.modal-wrapper[data-v-09b21bad]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.modal-wrapper .prev[data-v-09b21bad],.modal-wrapper .next[data-v-09b21bad]{z-index:10000;display:flex !important;height:35vw;position:absolute;transition:opacity 250ms,visibility 250ms;color:var(--color-primary-element-text)}.modal-wrapper .prev[data-v-09b21bad]:focus-visible,.modal-wrapper .next[data-v-09b21bad]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev.invisible[style*=\"display:none\"][data-v-09b21bad],.modal-wrapper .prev.invisible[style*=\"display: none\"][data-v-09b21bad],.modal-wrapper .next.invisible[style*=\"display:none\"][data-v-09b21bad],.modal-wrapper .next.invisible[style*=\"display: none\"][data-v-09b21bad]{visibility:hidden}.modal-wrapper .prev[data-v-09b21bad]{left:2px}.modal-wrapper .next[data-v-09b21bad]{right:2px}.modal-wrapper .modal-container[data-v-09b21bad]{position:relative;display:block;overflow:auto;padding:0;transition:transform 300ms ease;border-radius:var(--border-radius-large);background-color:var(--color-main-background);box-shadow:0 0 40px rgba(0,0,0,.2)}.modal-wrapper .modal-container__close[data-v-09b21bad]{position:absolute;top:4px;right:4px}.modal-wrapper--small .modal-container[data-v-09b21bad]{width:400px;max-width:90%;max-height:90%}.modal-wrapper--normal .modal-container[data-v-09b21bad]{max-width:90%;width:600px;max-height:90%}.modal-wrapper--large .modal-container[data-v-09b21bad]{max-width:90%;width:900px;max-height:90%}.modal-wrapper--full .modal-container[data-v-09b21bad]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:50px;border-radius:0}@media only screen and (max-width: 512px){.modal-wrapper .modal-container[data-v-09b21bad]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:50px;border-radius:0}}.fade-enter-active[data-v-09b21bad],.fade-leave-active[data-v-09b21bad]{transition:opacity 250ms}.fade-enter[data-v-09b21bad],.fade-leave-to[data-v-09b21bad]{opacity:0}.fade-visibility-enter[data-v-09b21bad],.fade-visibility-leave-to[data-v-09b21bad]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-09b21bad],.modal-in-leave-active[data-v-09b21bad],.modal-out-enter-active[data-v-09b21bad],.modal-out-leave-active[data-v-09b21bad]{transition:opacity 250ms}.modal-in-enter[data-v-09b21bad],.modal-in-leave-to[data-v-09b21bad],.modal-out-enter[data-v-09b21bad],.modal-out-leave-to[data-v-09b21bad]{opacity:0}.modal-in-enter .modal-container[data-v-09b21bad],.modal-in-leave-to .modal-container[data-v-09b21bad]{transform:scale(0.9)}.modal-out-enter .modal-container[data-v-09b21bad],.modal-out-leave-to .modal-container[data-v-09b21bad]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-09b21bad]{position:absolute;top:0;left:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-09b21bad]{transition:100ms stroke-dashoffset;transform-origin:50% 50%;animation:progressring-09b21bad linear var(--slideshow-duration) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .icon-pause[data-v-09b21bad]{animation:breath-09b21bad 2s cubic-bezier(0.4, 0, 0.2, 1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-09b21bad]{animation-play-state:paused !important}@keyframes progressring-09b21bad{from{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-09b21bad{0%{opacity:1}50%{opacity:0}100%{opacity:1}}',\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcModal/NcModal.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,6BACC,cAAA,CACA,YAAA,CACA,KAAA,CACA,MAAA,CACA,aAAA,CACA,UAAA,CACA,WAAA,CACA,+BAAA,CACA,mCACC,gCAAA,CAIF,+BACC,iBAAA,CACA,aAAA,CACA,KAAA,CACA,OAAA,CACA,MAAA,CAGA,uBAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WCuBe,CDtBf,eAAA,CACA,yCAAA,CAIA,iIAEC,iBAAA,CAGD,4CACC,iBAAA,CACA,qBAAA,CACA,UAAA,CACA,sBAAA,CACA,6BAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,cChBY,CDiBZ,eAAA,CAID,2CACC,4CACC,kBAAA,CACA,iBAAA,CAAA,CAIF,2CACC,iBAAA,CACA,OAAA,CACA,YAAA,CACA,kBAAA,CACA,wBAAA,CAEA,yDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA,CAGD,6DACC,iBAAA,CACA,UC3Ba,CD4Bb,WC5Ba,CD6Bb,QAAA,CACA,SAAA,CACA,cAAA,CACA,WAAA,CACA,8BAAA,CAGC,8WAEC,SC9CU,CD+CV,kBAAA,CACA,sCCxDW,CD2Db,uIAEC,qBAAA,CACA,UCzEa,CD0Eb,WC1Ea,CD2Eb,UAAA,CACA,cAAA,CACA,UC3Da,CD+Df,2DACC,UAAA,CAGD,yDACC,UAAA,CAEA,iEACC,qBAAA,CACA,UC1Fa,CD2Fb,WC3Fa,CD4Fb,cAAA,CACA,0BAAA,CACA,oBAAA,CAIF,kDAEC,UAAA,CAID,oEACC,SAAA,CACA,iJACC,sBAAA,CACA,uBAAA,CAMJ,gCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CAGA,4EAEC,aAAA,CAEA,uBAAA,CACA,WAAA,CACA,iBAAA,CACA,yCAAA,CAEA,uCAAA,CAEA,wGAEC,sDAAA,CACA,wCAAA,CAOD,8RAEC,iBAAA,CAGF,sCACC,QAAA,CAED,sCACC,SAAA,CAID,iDACC,iBAAA,CACA,aAAA,CACA,aAAA,CACA,SAAA,CACA,+BAAA,CACA,wCAAA,CACA,6CAAA,CACA,kCAAA,CACA,wDACC,iBAAA,CACA,OAAA,CACA,SAAA,CAMD,wDACC,WAAA,CACA,aAAA,CACA,cAAA,CAID,yDACC,aAAA,CACA,WAAA,CACA,cAAA,CAID,wDACC,aAAA,CACA,WAAA,CACA,cAAA,CAID,uDACC,UAAA,CACA,wCAAA,CACA,iBAAA,CACA,QC7Ka,CD8Kb,eAAA,CAKF,0CACC,iDACC,iBAAA,CACA,UAAA,CACA,kBAAA,CACA,wCAAA,CACA,iBAAA,CACA,QC1La,CD2Lb,eAAA,CAAA,CAMH,wEAEC,wBAAA,CAGD,6DAEC,SAAA,CAGD,mFAEC,iBAAA,CACA,SAAA,CAGD,kKAIC,wBAAA,CAGD,4IAIC,SAAA,CAGD,uGAEC,oBAAA,CAGD,yGAEC,oBAAA,CAQA,8DACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,wBAAA,CACA,qFACC,kCAAA,CACA,wBAAA,CACA,yEAAA,CAEA,oBAAA,CACA,+BAAA,CACA,8BAAA,CAID,mEACC,kEAAA,CAED,8EACC,sCAAA,CAMH,iCACC,KACC,+BAAA,CAED,GACC,mBAAA,CAAA,CAIF,2BACC,GACC,SAAA,CAED,IACC,SAAA,CAED,KACC,SAAA,CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.modal-mask {\\n\\tposition: fixed;\\n\\tz-index: 9998;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tbackground-color: rgba(0, 0, 0, .5);\\n\\t&--dark {\\n\\t\\tbackground-color: rgba(0, 0, 0, .92);\\n\\t}\\n}\\n\\n.modal-header {\\n\\tposition: absolute;\\n\\tz-index: 10001;\\n\\ttop: 0;\\n\\tright: 0;\\n\\tleft: 0;\\n\\t// prevent vue show to use display:none and reseting\\n\\t// the circle animation loop\\n\\tdisplay: flex !important;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\twidth: 100%;\\n\\theight: $header-height;\\n\\toverflow: hidden;\\n\\ttransition: opacity 250ms,\\n\\t\\tvisibility 250ms;\\n\\n\\t// replace display by visibility\\n\\t&.invisible[style*='display:none'],\\n\\t&.invisible[style*='display: none'] {\\n\\t\\tvisibility: hidden;\\n\\t}\\n\\n\\t.modal-title {\\n\\t\\toverflow-x: hidden;\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: 100%;\\n\\t\\tpadding: 0 #{$clickable-area * 3} 0 12px; // maximum actions is 3\\n\\t\\ttransition: padding ease 100ms;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: #fff;\\n\\t\\tfont-size: $icon-margin;\\n\\t\\tmargin-bottom: 0;\\n\\t}\\n\\n\\t// On wider screens the title can be centered\\n\\t@media only screen and (min-width: $breakpoint-mobile) {\\n\\t\\t.modal-title {\\n\\t\\t\\tpadding-left: #{$clickable-area * 3}; // maximum actions is 3\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\t}\\n\\n\\t.icons-menu {\\n\\t\\tposition: absolute;\\n\\t\\tright: 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: flex-end;\\n\\n\\t\\t.header-close {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\tmargin: math.div($header-height - $clickable-area, 2);\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\n\\t\\t.play-pause-icons {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\twidth: $header-height;\\n\\t\\t\\theight: $header-height;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\t.play-pause-icons__play,\\n\\t\\t\\t\\t.play-pause-icons__pause {\\n\\t\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\t\\tborder-radius: math.div($clickable-area, 2);\\n\\t\\t\\t\\t\\tbackground-color: $icon-focus-bg;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&__play,\\n\\t\\t\\t&__pause {\\n\\t\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\tmargin: math.div($header-height - $clickable-area, 2);\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.header-actions {\\n\\t\\t\\tcolor: white;\\n\\t\\t}\\n\\n\\t\\t&:deep() .action-item {\\n\\t\\t\\tmargin: math.div($header-height - $clickable-area, 2);\\n\\n\\t\\t\\t&--single {\\n\\t\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\tbackground-position: center;\\n\\t\\t\\t\\tbackground-size: 22px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t:deep(button) {\\n\\t\\t\\t// force white instead of default main text\\n\\t\\t\\tcolor: #fff;\\n\\t\\t}\\n\\n\\t\\t// Force the Actions menu icon to be the same size as other icons\\n\\t\\t&:deep(.action-item__menutoggle) {\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tspan, svg {\\n\\t\\t\\t\\twidth: var(--icon-size);\\n\\t\\t\\t\\theight: var(--icon-size);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.modal-wrapper {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tbox-sizing: border-box;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\n\\t/* Navigation buttons */\\n\\t.prev,\\n\\t.next {\\n\\t\\tz-index: 10000;\\n\\t\\t// ignore display: none\\n\\t\\tdisplay: flex !important;\\n\\t\\theight: 35vw;\\n\\t\\tposition: absolute;\\n\\t\\ttransition: opacity 250ms,\\n\\t\\t\\tvisibility 250ms;\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\n\\t\\t&:focus-visible {\\n\\t\\t\\t// Override NcButton focus styles\\n\\t\\t\\tbox-shadow: 0 0 0 2px var(--color-primary-element-text);\\n\\t\\t\\tbackground-color: var(--color-box-shadow);\\n\\t\\t}\\n\\n\\t\\t// we want to keep the elements on page\\n\\t\\t// even if hidden to avoid having a unbalanced\\n\\t\\t// centered content\\n\\t\\t// replace display by visibility\\n\\t\\t&.invisible[style*='display:none'],\\n\\t\\t&.invisible[style*='display: none'] {\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t}\\n\\t}\\n\\t.prev {\\n\\t\\tleft: 2px;\\n\\t}\\n\\t.next {\\n\\t\\tright: 2px;\\n\\t}\\n\\n\\t/* Content */\\n\\t.modal-container {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: block;\\n\\t\\toverflow: auto; // avoids unecessary hacks if the content should be bigger than the modal\\n\\t\\tpadding: 0;\\n\\t\\ttransition: transform 300ms ease;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tbox-shadow: 0 0 40px rgba(0, 0, 0, .2);\\n\\t\\t&__close {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 4px;\\n\\t\\t\\tright: 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Sizing\\n\\t&--small {\\n\\t\\t.modal-container {\\n\\t\\t\\twidth: 400px;\\n\\t\\t\\tmax-width: 90%;\\n\\t\\t\\tmax-height: 90%;\\n\\t\\t}\\n\\t}\\n\\t&--normal {\\n\\t\\t.modal-container {\\n\\t\\t\\tmax-width: 90%;\\n\\t\\t\\twidth: 600px;\\n\\t\\t\\tmax-height: 90%;\\n\\t\\t}\\n\\t}\\n\\t&--large {\\n\\t\\t.modal-container {\\n\\t\\t\\tmax-width: 90%;\\n\\t\\t\\twidth: 900px;\\n\\t\\t\\tmax-height: 90%;\\n\\t\\t}\\n\\t}\\n\\t&--full {\\n\\t\\t.modal-container {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: calc(100% - var(--header-height));\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: $header-height;\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t// Make modal full screen on mobile\\n\\t@media only screen and (max-width: math.div($breakpoint-mobile, 2)) {\\n\\t\\t.modal-container {\\n\\t\\t\\tmax-width: initial;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmax-height: initial;\\n\\t\\t\\theight: calc(100% - var(--header-height));\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: $header-height;\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n/* TRANSITIONS */\\n.fade-enter-active,\\n.fade-leave-active {\\n\\ttransition: opacity 250ms;\\n}\\n\\n.fade-enter,\\n.fade-leave-to {\\n\\topacity: 0;\\n}\\n\\n.fade-visibility-enter,\\n.fade-visibility-leave-to {\\n\\tvisibility: hidden;\\n\\topacity: 0;\\n}\\n\\n.modal-in-enter-active,\\n.modal-in-leave-active,\\n.modal-out-enter-active,\\n.modal-out-leave-active {\\n\\ttransition: opacity 250ms;\\n}\\n\\n.modal-in-enter,\\n.modal-in-leave-to,\\n.modal-out-enter,\\n.modal-out-leave-to {\\n\\topacity: 0;\\n}\\n\\n.modal-in-enter .modal-container,\\n.modal-in-leave-to .modal-container {\\n\\ttransform: scale(.9);\\n}\\n\\n.modal-out-enter .modal-container,\\n.modal-out-leave-to .modal-container {\\n\\ttransform: scale(1.1);\\n}\\n\\n// animated circle\\n$radius: 15;\\n$pi: 3.14159265358979;\\n\\n.modal-mask .play-pause-icons {\\n\\t.progress-ring {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\ttransform: rotate(-90deg);\\n\\t\\t.progress-ring__circle {\\n\\t\\t\\ttransition: 100ms stroke-dashoffset;\\n\\t\\t\\ttransform-origin: 50% 50%; // axis compensation\\n\\t\\t\\tanimation: progressring linear var(--slideshow-duration) infinite;\\n\\n\\t\\t\\tstroke-linecap: round;\\n\\t\\t\\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\\n\\t\\t\\tstroke-dasharray: $radius * 2 * $pi; // radius * 2 * PI\\n\\t\\t}\\n\\t}\\n\\t&--paused {\\n\\t\\t.icon-pause {\\n\\t\\t\\tanimation: breath 2s cubic-bezier(.4, 0, .2, 1) infinite;\\n\\t\\t}\\n\\t\\t.progress-ring__circle {\\n\\t\\t\\tanimation-play-state: paused !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n// keyframes get scoped too and break the animation name, we need them unscoped\\n@keyframes progressring {\\n\\tfrom {\\n\\t\\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\\n\\t}\\n\\tto {\\n\\t\\tstroke-dashoffset: 0;\\n\\t}\\n}\\n\\n@keyframes breath {\\n\\t0% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t50% {\\n\\t\\topacity: 0;\\n\\t}\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},3621:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-141377ba]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-141377ba]{color:var(--color-main-text) !important;background-color:var(--note-background) !important;border-inline-start:4px solid var(--note-theme);border-radius:var(--border-radius);margin:1rem 0;margin-top:1rem;padding:1rem;display:flex;flex-direction:row;gap:1rem}.notecard__icon--heading[data-v-141377ba]{margin-bottom:auto;margin-top:.3rem}.notecard--success[data-v-141377ba]{--note-background: rgba(var(--color-success-rgb), 0.1);--note-theme: var(--color-success)}.notecard--error[data-v-141377ba]{--note-background: rgba(var(--color-error-rgb), 0.1);--note-theme: var(--color-error)}.notecard--warning[data-v-141377ba]{--note-background: rgba(var(--color-warning-rgb), 0.1);--note-theme: var(--color-warning)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcNoteCard/NcNoteCard.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,2BACC,uCAAA,CACA,kDAAA,CACA,+CAAA,CACA,kCAAA,CACA,aAAA,CACA,eAAA,CACA,YAAA,CACA,YAAA,CACA,kBAAA,CACA,QAAA,CAEA,0CACC,kBAAA,CACA,gBAAA,CAGD,oCACC,sDAAA,CACA,kCAAA,CAGD,kCACC,oDAAA,CACA,gCAAA,CAGD,oCACC,sDAAA,CACA,kCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.notecard {\\n\\tcolor: var(--color-main-text) !important;\\n\\tbackground-color: var(--note-background) !important;\\n\\tborder-inline-start: 4px solid var(--note-theme);\\n\\tborder-radius: var(--border-radius);\\n\\tmargin: 1rem 0;\\n\\tmargin-top: 1rem;\\n\\tpadding: 1rem;\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tgap: 1rem;\\n\\n\\t&__icon--heading {\\n\\t\\tmargin-bottom: auto;\\n\\t\\tmargin-top: 0.3rem;\\n\\t}\\n\\n\\t&--success {\\n\\t\\t--note-background: rgba(var(--color-success-rgb), 0.1);\\n\\t\\t--note-theme: var(--color-success);\\n\\t}\\n\\n\\t&--error {\\n\\t\\t--note-background: rgba(var(--color-error-rgb), 0.1);\\n\\t\\t--note-theme: var(--color-error);\\n\\t}\\n\\n\\t&--warning {\\n\\t\\t--note-background: rgba(var(--color-warning-rgb), 0.1);\\n\\t\\t--note-theme: var(--color-warning);\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},1625:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:rgba(0,0,0,0);pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper--theme-dropdown.v-popper__popper{z-index:100000;top:0;left:0;display:block !important;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.v-popper--theme-dropdown.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius-large);overflow:hidden;background:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-10px;border-bottom-width:0;border-top-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-10px;border-top-width:0;border-bottom-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-10px;border-left-width:0;border-right-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px;border-right-width:0;border-left-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}.v-popper--theme-dropdown.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcPopover/NcPopover.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,iBACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,UAAA,CACA,WAAA,CACA,WAAA,CACA,8BAAA,CACA,mBAAA,CACA,aAAA,CACA,eAAA,CACA,SAAA,CAGD,wBACC,aAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,WAAA,CACA,UAAA,CACA,eAAA,CACA,mBAAA,CACA,UAAA,CAMA,2CACC,cAAA,CACA,KAAA,CACA,MAAA,CACA,wBAAA,CAEA,sDAAA,CAEA,4DACC,SAAA,CACA,4BAAA,CACA,wCAAA,CACA,eAAA,CACA,uCAAA,CAGD,sEACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,QAAA,CACA,kBAAA,CACA,0BAAA,CACA,iBA1BW,CA6BZ,kGACC,YAAA,CACA,qBAAA,CACA,6CAAA,CAGD,qGACC,SAAA,CACA,kBAAA,CACA,gDAAA,CAGD,oGACC,UAAA,CACA,mBAAA,CACA,+CAAA,CAGD,mGACC,WAAA,CACA,oBAAA,CACA,8CAAA,CAGD,6DACC,iBAAA,CACA,2EAAA,CACA,SAAA,CAGD,8DACC,kBAAA,CACA,yCAAA,CACA,SAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.resize-observer {\\n\\tposition:absolute;\\n\\ttop:0;\\n\\tleft:0;\\n\\tz-index:-1;\\n\\twidth:100%;\\n\\theight:100%;\\n\\tborder:none;\\n\\tbackground-color:transparent;\\n\\tpointer-events:none;\\n\\tdisplay:block;\\n\\toverflow:hidden;\\n\\topacity:0\\n}\\n\\n.resize-observer object {\\n\\tdisplay:block;\\n\\tposition:absolute;\\n\\ttop:0;\\n\\tleft:0;\\n\\theight:100%;\\n\\twidth:100%;\\n\\toverflow:hidden;\\n\\tpointer-events:none;\\n\\tz-index:-1\\n}\\n\\n$arrow-width: 10px;\\n\\n.v-popper--theme-dropdown {\\n\\t&.v-popper__popper {\\n\\t\\tz-index: 100000;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\tdisplay: block !important;\\n\\n\\t\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t\\t.v-popper__inner {\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t.v-popper__arrow-container {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tz-index: 1;\\n\\t\\t\\twidth: 0;\\n\\t\\t\\theight: 0;\\n\\t\\t\\tborder-style: solid;\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tborder-width: $arrow-width;\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='top'] .v-popper__arrow-container {\\n\\t\\t\\tbottom: -$arrow-width;\\n\\t\\t\\tborder-bottom-width: 0;\\n\\t\\t\\tborder-top-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='bottom'] .v-popper__arrow-container {\\n\\t\\t\\ttop: -$arrow-width;\\n\\t\\t\\tborder-top-width: 0;\\n\\t\\t\\tborder-bottom-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='right'] .v-popper__arrow-container {\\n\\t\\t\\tleft: -$arrow-width;\\n\\t\\t\\tborder-left-width: 0;\\n\\t\\t\\tborder-right-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='left'] .v-popper__arrow-container {\\n\\t\\t\\tright: -$arrow-width;\\n\\t\\t\\tborder-right-width: 0;\\n\\t\\t\\tborder-left-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[aria-hidden='true'] {\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t\\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\\n\\t\\t\\topacity: 0;\\n\\t\\t}\\n\\n\\t\\t&[aria-hidden='false'] {\\n\\t\\t\\tvisibility: visible;\\n\\t\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},2:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-31ffd2d4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}ul[data-v-31ffd2d4]{display:flex;flex-direction:column;gap:4px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcPopoverMenu/NcPopoverMenu.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,oBACC,YAAA,CACA,qBAAA,CACA,OAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\nul {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 4px;\\n}\\n\"],sourceRoot:\"\"}]);const s=o},408:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,'.material-design-icon[data-v-127b0c62]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li[data-v-127b0c62]{display:flex;flex:0 0 auto}li.hidden[data-v-127b0c62]{display:none}li>button[data-v-127b0c62],li>a[data-v-127b0c62],li>.menuitem[data-v-127b0c62]{cursor:pointer;line-height:44px;border:0;background-color:rgba(0,0,0,0);display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^=icon-][data-v-127b0c62],li>button span[class*=\" icon-\"][data-v-127b0c62],li>button[class^=icon-][data-v-127b0c62],li>button[class*=\" icon-\"][data-v-127b0c62],li>a span[class^=icon-][data-v-127b0c62],li>a span[class*=\" icon-\"][data-v-127b0c62],li>a[class^=icon-][data-v-127b0c62],li>a[class*=\" icon-\"][data-v-127b0c62],li>.menuitem span[class^=icon-][data-v-127b0c62],li>.menuitem span[class*=\" icon-\"][data-v-127b0c62],li>.menuitem[class^=icon-][data-v-127b0c62],li>.menuitem[class*=\" icon-\"][data-v-127b0c62]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^=icon-][data-v-127b0c62],li>button span[class*=\" icon-\"][data-v-127b0c62],li>a span[class^=icon-][data-v-127b0c62],li>a span[class*=\" icon-\"][data-v-127b0c62],li>.menuitem span[class^=icon-][data-v-127b0c62],li>.menuitem span[class*=\" icon-\"][data-v-127b0c62]{padding:22px 0 22px 44px}li>button:not([class^=icon-]):not([class*=icon-])>span[data-v-127b0c62]:not([class^=icon-]):not([class*=icon-]):first-child,li>button:not([class^=icon-]):not([class*=icon-])>input[data-v-127b0c62]:not([class^=icon-]):not([class*=icon-]):first-child,li>button:not([class^=icon-]):not([class*=icon-])>form[data-v-127b0c62]:not([class^=icon-]):not([class*=icon-]):first-child,li>a:not([class^=icon-]):not([class*=icon-])>span[data-v-127b0c62]:not([class^=icon-]):not([class*=icon-]):first-child,li>a:not([class^=icon-]):not([class*=icon-])>input[data-v-127b0c62]:not([class^=icon-]):not([class*=icon-]):first-child,li>a:not([class^=icon-]):not([class*=icon-])>form[data-v-127b0c62]:not([class^=icon-]):not([class*=icon-]):first-child,li>.menuitem:not([class^=icon-]):not([class*=icon-])>span[data-v-127b0c62]:not([class^=icon-]):not([class*=icon-]):first-child,li>.menuitem:not([class^=icon-]):not([class*=icon-])>input[data-v-127b0c62]:not([class^=icon-]):not([class*=icon-]):first-child,li>.menuitem:not([class^=icon-]):not([class*=icon-])>form[data-v-127b0c62]:not([class^=icon-]):not([class*=icon-]):first-child{margin-left:44px}li>button[class^=icon-][data-v-127b0c62],li>button[class*=\" icon-\"][data-v-127b0c62],li>a[class^=icon-][data-v-127b0c62],li>a[class*=\" icon-\"][data-v-127b0c62],li>.menuitem[class^=icon-][data-v-127b0c62],li>.menuitem[class*=\" icon-\"][data-v-127b0c62]{padding:0 14px 0 44px}li>button[data-v-127b0c62]:not(:disabled):hover,li>button[data-v-127b0c62]:not(:disabled):focus,li>button:not(:disabled).active[data-v-127b0c62],li>a[data-v-127b0c62]:not(:disabled):hover,li>a[data-v-127b0c62]:not(:disabled):focus,li>a:not(:disabled).active[data-v-127b0c62],li>.menuitem[data-v-127b0c62]:not(:disabled):hover,li>.menuitem[data-v-127b0c62]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-127b0c62]{opacity:1 !important}li>button.action[data-v-127b0c62],li>a.action[data-v-127b0c62],li>.menuitem.action[data-v-127b0c62]{padding:inherit !important}li>button>span[data-v-127b0c62],li>a>span[data-v-127b0c62],li>.menuitem>span[data-v-127b0c62]{cursor:pointer;white-space:nowrap}li>button>p[data-v-127b0c62],li>a>p[data-v-127b0c62],li>.menuitem>p[data-v-127b0c62]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal;overflow:hidden;text-overflow:ellipsis}li>button>select[data-v-127b0c62],li>a>select[data-v-127b0c62],li>.menuitem>select[data-v-127b0c62]{margin:0;margin-left:6px}li>button[data-v-127b0c62]:not(:empty),li>a[data-v-127b0c62]:not(:empty),li>.menuitem[data-v-127b0c62]:not(:empty){padding-right:14px !important}li>button>img[data-v-127b0c62],li>a>img[data-v-127b0c62],li>.menuitem>img[data-v-127b0c62]{width:16px;height:16px;margin:14px}li>button>input.radio+label[data-v-127b0c62],li>button>input.checkbox+label[data-v-127b0c62],li>a>input.radio+label[data-v-127b0c62],li>a>input.checkbox+label[data-v-127b0c62],li>.menuitem>input.radio+label[data-v-127b0c62],li>.menuitem>input.checkbox+label[data-v-127b0c62]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-127b0c62]::before,li>a>input.checkbox+label[data-v-127b0c62]::before,li>.menuitem>input.checkbox+label[data-v-127b0c62]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-127b0c62]::before,li>a>input.radio+label[data-v-127b0c62]::before,li>.menuitem>input.radio+label[data-v-127b0c62]::before{margin:-2px 12px 0}li>button>input[data-v-127b0c62]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-127b0c62]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-127b0c62]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-127b0c62],li>a form[data-v-127b0c62],li>.menuitem form[data-v-127b0c62]{display:flex;flex:1 1 auto}li>button form[data-v-127b0c62]:not(:first-child),li>a form[data-v-127b0c62]:not(:first-child),li>.menuitem form[data-v-127b0c62]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-127b0c62],li>button>span[style*=\"display:none\"]+form[data-v-127b0c62],li>a>span.hidden+form[data-v-127b0c62],li>a>span[style*=\"display:none\"]+form[data-v-127b0c62],li>.menuitem>span.hidden+form[data-v-127b0c62],li>.menuitem>span[style*=\"display:none\"]+form[data-v-127b0c62]{margin-left:0}li>button input[data-v-127b0c62],li>a input[data-v-127b0c62],li>.menuitem input[data-v-127b0c62]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-127b0c62]:not(:first-child),li>a input[data-v-127b0c62]:not(:first-child),li>.menuitem input[data-v-127b0c62]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*=\"display:none\"]):first-of-type>button>form[data-v-127b0c62],li:not(.hidden):not([style*=\"display:none\"]):first-of-type>button>input[data-v-127b0c62],li:not(.hidden):not([style*=\"display:none\"]):first-of-type>a>form[data-v-127b0c62],li:not(.hidden):not([style*=\"display:none\"]):first-of-type>a>input[data-v-127b0c62],li:not(.hidden):not([style*=\"display:none\"]):first-of-type>.menuitem>form[data-v-127b0c62],li:not(.hidden):not([style*=\"display:none\"]):first-of-type>.menuitem>input[data-v-127b0c62]{margin-top:12px}li:not(.hidden):not([style*=\"display:none\"]):last-of-type>button>form[data-v-127b0c62],li:not(.hidden):not([style*=\"display:none\"]):last-of-type>button>input[data-v-127b0c62],li:not(.hidden):not([style*=\"display:none\"]):last-of-type>a>form[data-v-127b0c62],li:not(.hidden):not([style*=\"display:none\"]):last-of-type>a>input[data-v-127b0c62],li:not(.hidden):not([style*=\"display:none\"]):last-of-type>.menuitem>form[data-v-127b0c62],li:not(.hidden):not([style*=\"display:none\"]):last-of-type>.menuitem>input[data-v-127b0c62]{margin-bottom:12px}li>button[data-v-127b0c62]{padding:0}li>button span[data-v-127b0c62]{opacity:1}',\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcPopoverMenu/NcPopoverMenuItem.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,oBACC,YAAA,CACA,aAAA,CAEA,2BACC,YAAA,CAGD,+EAGC,cAAA,CACA,gBCWe,CDVf,QAAA,CACA,8BAAA,CACA,YAAA,CACA,sBAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBAAA,CACA,eAAA,CACA,UAAA,CACA,4BAAA,CACA,kBAAA,CACA,UCgBe,CDbf,ohBAIC,WAAA,CACA,YAAA,CACA,+BAAA,CACA,oBCRS,CDWV,yRAIC,wBAAA,CAQC,ylCACC,gBC5BY,CDiCf,2PAEC,qBAAA,CAGD,6aAGC,oBAAA,CAID,oGACC,0BAAA,CAGD,8FACC,cAAA,CACA,kBAAA,CAID,qFACC,WAAA,CACA,iBAAA,CACA,aAAA,CACA,kBAAA,CAGA,eAAA,CACA,sBAAA,CAID,oGACC,QAAA,CACA,eAAA,CAID,mHACC,6BAAA,CAKD,2FACC,UC5ES,CD6ET,WC7ES,CD8ET,WC1EW,CD8EZ,mRAEC,oBAAA,CACA,UAAA,CAED,sKACC,kBAAA,CAED,6JACC,kBAAA,CAED,4QACC,WAAA,CAID,8FACC,YAAA,CACA,aAAA,CAGA,oJACC,eAAA,CAIF,oTAEC,aAAA,CAGD,iGACC,cCtHc,CDuHd,eAAA,CACA,YAAA,CACA,aAAA,CAEA,uJACC,eAAA,CAUA,+gBACC,eAAA,CAMD,ygBACC,kBAAA,CAKJ,2BACC,SAAA,CACA,gCACC,SCnIY\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\nli {\\n\\tdisplay: flex;\\n\\tflex: 0 0 auto;\\n\\n\\t&.hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t> button,\\n\\t> a,\\n\\t> .menuitem {\\n\\t\\tcursor: pointer;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder: 0;\\n\\t\\tbackground-color: transparent;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tfont-weight: normal;\\n\\t\\tbox-shadow: none;\\n\\t\\twidth: 100%;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\twhite-space: nowrap;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t// TODO split into individual components for readability\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'],\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\t\\tmin-height: 0;\\n\\t\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t}\\n\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'] {\\n\\t\\t\\t/* Keep padding to define the width to\\n\\t\\t\\t\\tassure correct position of a possible text */\\n\\t\\t\\tpadding: #{math.div($clickable-area, 2)} 0 #{math.div($clickable-area, 2)} $clickable-area;\\n\\t\\t}\\n\\n\\t\\t// If no icons set, force left margin to align\\n\\t\\t&:not([class^='icon-']):not([class*='icon-']) {\\n\\t\\t\\t> span,\\n\\t\\t\\t> input,\\n\\t\\t\\t> form {\\n\\t\\t\\t\\t&:not([class^='icon-']):not([class*='icon-']):first-child {\\n\\t\\t\\t\\t\\tmargin-left: $clickable-area;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tpadding: 0 $icon-margin 0 $clickable-area;\\n\\t\\t}\\n\\n\\t\\t&:not(:disabled):hover,\\n\\t\\t&:not(:disabled):focus,\\n\\t\\t&:not(:disabled).active {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t}\\n\\n\\t\\t/* prevent .action class to break the design */\\n\\t\\t&.action {\\n\\t\\t\\tpadding: inherit !important;\\n\\t\\t}\\n\\n\\t\\t> span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\t> p {\\n\\t\\t\\twidth: 150px;\\n\\t\\t\\tline-height: 1.6em;\\n\\t\\t\\tpadding: 8px 0;\\n\\t\\t\\twhite-space: normal;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t// TODO: do we really supports it?\\n\\t\\t> select {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tmargin-left: 6px;\\n\\t\\t}\\n\\n\\t\\t/* Add padding if contains icon+text */\\n\\t\\t&:not(:empty) {\\n\\t\\t\\tpadding-right: $icon-margin !important;\\n\\t\\t}\\n\\n\\t\\t/* DEPRECATED! old img in popover fallback\\n\\t\\t\\t* TODO: to remove */\\n\\t\\t> img {\\n\\t\\t\\twidth: $icon-size;\\n\\t\\t\\theight: $icon-size;\\n\\t\\t\\tmargin: $icon-margin;\\n\\t\\t}\\n\\n\\t\\t/* checkbox/radio fixes */\\n\\t\\t> input.radio + label,\\n\\t\\t> input.checkbox + label {\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t\\t> input.checkbox + label::before {\\n\\t\\t\\tmargin: -2px 13px 0;\\n\\t\\t}\\n\\t\\t> input.radio + label::before {\\n\\t\\t\\tmargin: -2px 12px 0;\\n\\t\\t}\\n\\t\\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\\n\\t\\t\\twidth: 150px;\\n\\t\\t}\\n\\n\\t\\t// Forms & text inputs\\n\\t\\tform {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t/* put a small space between text and form\\n\\t\\t\\t\\tif there is an element before */\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* no margin if hidden span before */\\n\\t\\t> span.hidden + form,\\n\\t\\t> span[style*='display:none'] + form {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\t\\t/* Inputs inside popover supports text, submit & reset */\\n\\t\\tinput {\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\\n\\t\\t\\tmargin: 2px 0;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t// space between inline inputs\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: do that in js, should be cleaner\\n\\t/* css hack, only first not hidden */\\n\\t&:not(.hidden):not([style*='display:none']) {\\n\\t\\t&:first-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-top: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-bottom: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t> button {\\n\\t\\tpadding: 0;\\n\\t\\tspan {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},8235:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-67f460e0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-67f460e0]{display:block;height:var(--progress-bar-height);width:100%;overflow:hidden;border:0;padding:0;background:var(--color-background-dark);border-radius:calc(var(--progress-bar-height)/2)}.progress-bar[data-v-67f460e0]::-webkit-progress-bar{height:var(--progress-bar-height);background-color:rgba(0,0,0,0)}.progress-bar[data-v-67f460e0]::-webkit-progress-value{background:var(--gradient-primary-background);border-radius:calc(var(--progress-bar-height)/2)}.progress-bar[data-v-67f460e0]::-moz-progress-bar{background:var(--gradient-primary-background);border-radius:calc(var(--progress-bar-height)/2)}.progress-bar--error[data-v-67f460e0]::-moz-progress-bar{background:var(--color-error) !important}.progress-bar--error[data-v-67f460e0]::-webkit-progress-value{background:var(--color-error) !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcProgressBar/NcProgressBar.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,+BACC,aAAA,CACA,iCAAA,CACA,UAAA,CACA,eAAA,CACA,QAAA,CACA,SAAA,CACA,uCAAA,CACA,gDAAA,CAGA,qDACC,iCAAA,CACA,8BAAA,CAED,uDACC,6CAAA,CACA,gDAAA,CAED,kDACC,6CAAA,CACA,gDAAA,CAIA,yDACC,wCAAA,CAED,8DACC,wCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.progress-bar {\\n\\tdisplay: block;\\n\\theight: var(--progress-bar-height);\\n\\twidth: 100%;\\n\\toverflow: hidden;\\n\\tborder: 0;\\n\\tpadding: 0;\\n\\tbackground: var(--color-background-dark);\\n\\tborder-radius: calc(var(--progress-bar-height) / 2);\\n\\n\\t// Browser specific rules\\n\\t&::-webkit-progress-bar {\\n\\t\\theight: var(--progress-bar-height);\\n\\t\\tbackground-color: transparent;\\n\\t}\\n\\t&::-webkit-progress-value {\\n\\t\\tbackground: var(--gradient-primary-background);\\n\\t\\tborder-radius: calc(var(--progress-bar-height) / 2);\\n\\t}\\n\\t&::-moz-progress-bar {\\n\\t\\tbackground: var(--gradient-primary-background);\\n\\t\\tborder-radius: calc(var(--progress-bar-height) / 2);\\n\\t}\\n\\t&--error {\\n\\t\\t// Override previous values\\n\\t\\t&::-moz-progress-bar {\\n\\t\\t\\tbackground: var(--color-error) !important;\\n\\t\\t}\\n\\t\\t&::-webkit-progress-value {\\n\\t\\t\\tbackground: var(--color-error) !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},3622:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-4ef94dc9]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.related-resources__header[data-v-4ef94dc9]{margin:0 0 10px 46px}.related-resources__header h5[data-v-4ef94dc9]{font-weight:bold}.related-resources__header p[data-v-4ef94dc9]{color:var(--color-text-maxcontrast)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLA,4CACC,oBAAA,CAEA,+CACC,gBAAA,CAGD,8CACC,mCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.related-resources {\\n\\t&__header {\\n\\t\\tmargin: 0 0 10px 46px;\\n\\n\\t\\th5 {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\n\\t\\tp {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},1466:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-257d6aeb]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.resource[data-v-257d6aeb]{display:flex;align-items:center;height:44px}.resource__button[data-v-257d6aeb]{width:100% !important;justify-content:flex-start !important;padding:0 !important}.resource__button[data-v-257d6aeb] .button-vue__wrapper{justify-content:flex-start !important}.resource__button[data-v-257d6aeb] .button-vue__wrapper .button-vue__text{font-weight:normal !important;margin-left:2px !important}.resource__icon[data-v-257d6aeb]{width:32px;height:32px;background-color:var(--color-text-maxcontrast);border-radius:50%;display:flex;align-items:center;justify-content:center}.resource__icon img[data-v-257d6aeb]{width:16px;height:16px;filter:var(--background-invert-if-dark)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRelatedResourcesPanel/NcResource.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,2BACC,YAAA,CACA,kBAAA,CACA,WAAA,CAGA,mCACC,qBAAA,CACA,qCAAA,CACA,oBAAA,CAGC,wDACC,qCAAA,CAEA,0EACC,6BAAA,CACA,0BAAA,CAMJ,iCACC,UAAA,CACA,WAAA,CACA,8CAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,qCACC,UAAA,CACA,WAAA,CACA,uCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.resource {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\n\\t// Override default NcButton styles\\n\\t&__button {\\n\\t\\twidth: 100% !important;\\n\\t\\tjustify-content: flex-start !important;\\n\\t\\tpadding: 0 !important;\\n\\n\\t\\t&:deep {\\n\\t\\t\\t.button-vue__wrapper {\\n\\t\\t\\t\\tjustify-content: flex-start !important;\\n\\n\\t\\t\\t\\t.button-vue__text {\\n\\t\\t\\t\\t\\tfont-weight: normal !important;\\n\\t\\t\\t\\t\\tmargin-left: 2px !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon {\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t\\tborder-radius: 50%;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\n\\t\\timg {\\n\\t\\t\\twidth: 16px;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},6956:(t,e,n)=>{n.d(e,{Z:()=>g});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r),s=n(1667),l=n.n(s),A=new URL(n(3423),n.b),c=new URL(n(2605),n.b),d=new URL(n(7127),n.b),p=o()(a()),u=l()(A),m=l()(c),h=l()(d);p.push([t.id,\".material-design-icon[data-v-800c95ae]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.autocomplete-result[data-v-800c95ae]{display:flex;height:44px;padding:10px}.highlight .autocomplete-result[data-v-800c95ae]{color:var(--color-primary-element-light-text);background:var(--color-primary-element-light)}.highlight .autocomplete-result[data-v-800c95ae],.highlight .autocomplete-result *[data-v-800c95ae]{cursor:pointer}.autocomplete-result__icon[data-v-800c95ae]{position:relative;flex:0 0 44px;width:44px;min-width:44px;height:44px;border-radius:44px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:24px}.autocomplete-result__icon--with-avatar[data-v-800c95ae]{color:inherit;background-size:cover}.autocomplete-result__status[data-v-800c95ae]{position:absolute;right:-4px;bottom:-4px;box-sizing:border-box;width:18px;height:18px;border:2px solid var(--color-main-background);border-radius:50%;background-color:var(--color-main-background);font-size:var(--default-font-size);line-height:15px;background-repeat:no-repeat;background-size:16px;background-position:center}.autocomplete-result__status--online[data-v-800c95ae]{background-image:url(\"+u+\")}.autocomplete-result__status--dnd[data-v-800c95ae]{background-image:url(\"+m+\");background-color:#fff}.autocomplete-result__status--away[data-v-800c95ae]{background-image:url(\"+h+\")}.autocomplete-result__status--icon[data-v-800c95ae]{border:none;background-color:rgba(0,0,0,0)}.autocomplete-result__content[data-v-800c95ae]{display:flex;flex:1 1 100%;flex-direction:column;justify-content:center;min-width:0;padding-left:10px}.autocomplete-result__title[data-v-800c95ae],.autocomplete-result__subline[data-v-800c95ae]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-result__subline[data-v-800c95ae]{color:var(--color-text-maxcontrast)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichContenteditable/NcAutoCompleteResult.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,sCACC,YAAA,CACA,WCmBgB,CDlBhB,YALsB,CAOtB,iDACC,6CAAA,CACA,6CAAA,CACA,oGACC,cAAA,CAIF,4CACC,iBAAA,CACA,aAAA,CACA,UCKe,CDJf,cCIe,CDHf,WCGe,CDFf,kBCEe,CDDf,+CAAA,CACA,2BAAA,CACA,0BAAA,CACA,oBAAA,CACA,yDACC,aAAA,CACA,qBAAA,CAIF,8CACC,iBAAA,CACA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CACA,6CAAA,CACA,iBAAA,CACA,6CAAA,CACA,kCAAA,CACA,gBAAA,CACA,2BAAA,CACA,oBAAA,CACA,0BAAA,CAEA,sDACC,wDAAA,CAED,mDACC,wDAAA,CACA,qBAAA,CAED,oDACC,wDAAA,CAED,oDACC,WAAA,CACA,8BAAA,CAIF,+CACC,YAAA,CACA,aAAA,CACA,qBAAA,CACA,sBAAA,CACA,WAAA,CACA,iBAtEqB,CAyEtB,4FAEC,kBAAA,CACA,eAAA,CACA,sBAAA,CAGD,+CACC,mCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n$autocomplete-padding: 10px;\\n\\n.autocomplete-result {\\n\\tdisplay: flex;\\n\\theight: $clickable-area;\\n\\tpadding: $autocomplete-padding;\\n\\n\\t.highlight & {\\n\\t\\tcolor: var(--color-primary-element-light-text);\\n\\t\\tbackground: var(--color-primary-element-light);\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tposition: relative;\\n\\t\\tflex: 0 0 $clickable-area;\\n\\t\\twidth: $clickable-area;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tborder-radius: $clickable-area;\\n\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: $clickable-area - 2 * $autocomplete-padding;\\n\\t\\t&--with-avatar {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t}\\n\\n\\t&__status {\\n\\t\\tposition: absolute;\\n\\t\\tright: -4px;\\n\\t\\tbottom: -4px;\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: 18px;\\n\\t\\theight: 18px;\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tborder-radius: 50%;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: 15px;\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-size: 16px;\\n\\t\\tbackground-position: center;\\n\\n\\t\\t&--online{\\n\\t\\t\\tbackground-image: url('../../assets/status-icons/user-status-online.svg');\\n\\t\\t}\\n\\t\\t&--dnd{\\n\\t\\t\\tbackground-image: url('../../assets/status-icons/user-status-dnd.svg');\\n\\t\\t\\tbackground-color: #ffffff;\\n\\t\\t}\\n\\t\\t&--away{\\n\\t\\t\\tbackground-image: url('../../assets/status-icons/user-status-away.svg');\\n\\t\\t}\\n\\t\\t&--icon {\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex: 1 1 100%;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tmin-width: 0;\\n\\t\\tpadding-left: $autocomplete-padding;\\n\\t}\\n\\n\\t&__title,\\n\\t&__subline {\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\n\\t&__subline {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const g=p},5594:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-8a961b36]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mention-bubble--primary .mention-bubble__content[data-v-8a961b36]{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.mention-bubble__wrapper[data-v-8a961b36]{max-width:150px;height:18px;vertical-align:text-bottom;display:inline-flex;align-items:center}.mention-bubble__content[data-v-8a961b36]{display:inline-flex;overflow:hidden;align-items:center;max-width:100%;height:20px;-webkit-user-select:none;user-select:none;padding-right:6px;padding-left:2px;border-radius:10px;background-color:var(--color-background-dark)}.mention-bubble__icon[data-v-8a961b36]{position:relative;width:16px;height:16px;border-radius:8px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:12px}.mention-bubble__icon--with-avatar[data-v-8a961b36]{color:inherit;background-size:cover}.mention-bubble__title[data-v-8a961b36]{overflow:hidden;margin-left:2px;white-space:nowrap;text-overflow:ellipsis}.mention-bubble__title[data-v-8a961b36]::before{content:attr(title)}.mention-bubble__select[data-v-8a961b36]{position:absolute;z-index:-1;left:-1000px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichContenteditable/NcMentionBubble.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CAAA,mECCC,uCAAA,CACA,6CAAA,CAGD,0CACC,eAXiB,CAajB,WAAA,CACA,0BAAA,CACA,mBAAA,CACA,kBAAA,CAGD,0CACC,mBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,WAzBc,CA0Bd,wBAAA,CACA,gBAAA,CACA,iBAAA,CACA,gBA3Be,CA4Bf,kBAAA,CACA,6CAAA,CAGD,uCACC,iBAAA,CACA,UAjCmB,CAkCnB,WAlCmB,CAmCnB,iBAAA,CACA,+CAAA,CACA,2BAAA,CACA,0BAAA,CACA,oBAAA,CAEA,oDACC,aAAA,CACA,qBAAA,CAIF,wCACC,eAAA,CACA,eAlDe,CAmDf,kBAAA,CACA,sBAAA,CAEA,gDACC,mBAAA,CAKF,yCACC,iBAAA,CACA,UAAA,CACA,YAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n$bubble-height: 20px;\\n$bubble-max-width: 150px;\\n$bubble-padding: 2px;\\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\\n\\n.mention-bubble {\\n\\t&--primary &__content {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tmax-width: $bubble-max-width;\\n\\t\\t// Align with text\\n\\t\\theight: $bubble-height - $bubble-padding;\\n\\t\\tvertical-align: text-bottom;\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: inline-flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tmax-width: 100%;\\n\\t\\theight: $bubble-height ;\\n\\t\\t-webkit-user-select: none;\\n\\t\\tuser-select: none;\\n\\t\\tpadding-right: $bubble-padding * 3;\\n\\t\\tpadding-left: $bubble-padding;\\n\\t\\tborder-radius: math.div($bubble-height, 2);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tposition: relative;\\n\\t\\twidth: $bubble-avatar-size;\\n\\t\\theight: $bubble-avatar-size;\\n\\t\\tborder-radius: math.div($bubble-avatar-size, 2);\\n\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\\n\\n\\t\\t&--with-avatar {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\tmargin-left: $bubble-padding;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\t// Put label in ::before so it is not selectable\\n\\t\\t&::before {\\n\\t\\t\\tcontent: attr(title);\\n\\t\\t}\\n\\t}\\n\\n\\t// Hide the mention id so it is selectable\\n\\t&__select {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: -1;\\n\\t\\tleft: -1000px;\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},9773:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-7dd318b8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.rich-contenteditable__input[data-v-7dd318b8]{overflow-y:auto;width:auto;margin:0;padding:8px;cursor:text;white-space:pre-wrap;word-break:break-word;color:var(--color-main-text);border:2px solid var(--color-border-dark);border-radius:var(--border-radius-large);outline:none;background-color:var(--color-main-background);font-family:var(--font-face);font-size:inherit;min-height:44px;max-height:242px}.rich-contenteditable__input--empty[data-v-7dd318b8]:before{content:attr(placeholder);color:var(--color-text-maxcontrast);position:absolute}.rich-contenteditable__input[contenteditable=false][data-v-7dd318b8]:not(.rich-contenteditable__input--disabled){cursor:default;background-color:rgba(0,0,0,0);color:var(--color-main-text);border-color:rgba(0,0,0,0);opacity:1;border-radius:0}.rich-contenteditable__input--multiline[data-v-7dd318b8]{min-height:132px;max-height:none}.rich-contenteditable__input--disabled[data-v-7dd318b8]{opacity:.5;color:var(--color-text-maxcontrast);border:2px solid var(--color-background-darker);border-radius:var(--border-radius);background-color:var(--color-background-dark)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichContenteditable/NcRichContenteditable.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,8CACC,eAAA,CACA,UAAA,CACA,QAAA,CACA,WAAA,CACA,WAAA,CACA,oBAAA,CACA,qBAAA,CACA,4BAAA,CACA,yCAAA,CACA,wCAAA,CACA,YAAA,CACA,6CAAA,CACA,4BAAA,CACA,iBAAA,CACA,eCOgB,CDNhB,gBAAA,CAGA,4DACC,yBAAA,CACA,mCAAA,CACA,iBAAA,CAGD,iHACC,cAAA,CACA,8BAAA,CACA,4BAAA,CACA,0BAAA,CACA,SAAA,CACA,eAAA,CAGD,yDACC,gBAAA,CAEA,eAAA,CAGD,wDACC,UCFiB,CDGjB,mCAAA,CACA,+CAAA,CACA,kCAAA,CACA,6CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n// Standalone styling, independent from server\\n.rich-contenteditable__input {\\n\\toverflow-y: auto;\\n\\twidth: auto;\\n\\tmargin: 0;\\n\\tpadding: 8px;\\n\\tcursor: text;\\n\\twhite-space: pre-wrap;\\n\\tword-break: break-word;\\n\\tcolor: var(--color-main-text);\\n\\tborder: 2px solid var(--color-border-dark);\\n\\tborder-radius: var(--border-radius-large);\\n\\toutline: none;\\n\\tbackground-color: var(--color-main-background);\\n\\tfont-family: var(--font-face);\\n\\tfont-size: inherit;\\n\\tmin-height: $clickable-area;\\n\\tmax-height: $clickable-area * 5.5;\\n\\n\\t// Cannot use :empty because of firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=1513303\\n\\t&--empty:before {\\n\\t\\tcontent: attr(placeholder);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tposition: absolute;\\n\\t}\\n\\n\\t&[contenteditable='false']:not(&--disabled) {\\n\\t\\tcursor: default;\\n\\t\\tbackground-color: transparent;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-color: transparent;\\n\\t\\topacity: 1;\\n\\t\\tborder-radius: 0;\\n\\t}\\n\\n\\t&--multiline {\\n\\t\\tmin-height: $clickable-area * 3;\\n\\t\\t// No max for mutiline\\n\\t\\tmax-height: none;\\n\\t}\\n\\n\\t&--disabled {\\n\\t\\topacity: $opacity_disabled;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tborder: 2px solid var(--color-background-darker);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},2929:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.tribute-container,.tribute-container-emoji,.tribute-container-link{z-index:9000;overflow:auto;min-width:250px;max-width:300px;max-height:288px;margin:5px 0;color:var(--color-main-text);border-radius:var(--border-radius);background:var(--color-main-background);box-shadow:0 1px 5px var(--color-box-shadow)}.tribute-container-emoji,.tribute-container-link{min-width:200px;max-width:200px;padding:4px;max-height:192.5px !important}.tribute-container-emoji__item,.tribute-container-link__item{border-radius:8px;padding:4px 8px;margin-bottom:4px;opacity:.8;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tribute-container-emoji__item:last-child,.tribute-container-link__item:last-child{margin-bottom:0}.tribute-container-emoji__item__emoji,.tribute-container-link__item__emoji{padding-right:8px}.tribute-container-emoji .highlight,.tribute-container-link .highlight{opacity:1;color:var(--color-primary-element-light-text);background:var(--color-primary-element-light)}.tribute-container-emoji .highlight,.tribute-container-emoji .highlight *,.tribute-container-link .highlight,.tribute-container-link .highlight *{cursor:pointer}.tribute-container-link{min-width:200px;max-width:300px}.tribute-container-link__item{display:flex;align-items:center}.tribute-container-link__item__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tribute-container-link__item__icon{margin:auto 0;width:20px;height:20px;object-fit:contain;padding-right:8px;filter:var(--background-invert-if-dark)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichContenteditable/NcRichContenteditable.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,oEACC,YAAA,CACA,aAAA,CACA,eAAA,CACA,eAAA,CAGA,gBAAA,CAEA,YAAA,CACA,4BAAA,CACA,kCAAA,CACA,uCAAA,CACA,4CAAA,CAGD,iDACC,eAAA,CACA,eAAA,CACA,WAAA,CAEA,6BAAA,CAEA,6DACC,iBAAA,CACA,eAAA,CACA,iBAAA,CACA,UAAA,CACA,cAAA,CAGA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,mFACC,eAAA,CAGD,2EACC,iBAAA,CAIF,uEACC,SAAA,CACA,6CAAA,CACA,6CAAA,CACA,kJACC,cAAA,CAKH,wBACC,eAAA,CACA,eAAA,CACA,8BACC,YAAA,CACA,kBAAA,CACA,qCACC,kBAAA,CACA,eAAA,CACA,sBAAA,CAED,oCACC,aAAA,CACA,UAAA,CACA,WAAA,CACA,kBAAA,CACA,iBAAA,CACA,uCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.tribute-container, .tribute-container-emoji, .tribute-container-link {\\n\\tz-index: 9000;\\n\\toverflow: auto;\\n\\tmin-width: 250px;\\n\\tmax-width: 300px;\\n\\t// Show maximum 4 entries and a half to show scroll\\n\\t// 44px + 10px padding\\n\\tmax-height: ($clickable-area + 20px) * 4.5;\\n\\t// Space it out a bit from the text\\n\\tmargin: 5px 0;\\n\\tcolor: var(--color-main-text);\\n\\tborder-radius: var(--border-radius);\\n\\tbackground: var(--color-main-background);\\n\\tbox-shadow: 0 1px 5px var(--color-box-shadow);\\n}\\n\\n.tribute-container-emoji, .tribute-container-link {\\n\\tmin-width: 200px;\\n\\tmax-width: 200px;\\n\\tpadding: 4px;\\n\\t// Show maximum 5 entries and a half to show scroll\\n\\tmax-height: 35px * 5 + math.div(35px, 2) !important;\\n\\n\\t&__item {\\n\\t\\tborder-radius: 8px;\\n\\t\\tpadding: 4px 8px;\\n\\t\\tmargin-bottom: 4px;\\n\\t\\topacity: 0.8;\\n\\t\\tcursor: pointer;\\n\\n\\t\\t// Take care of long names\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\n\\t\\t&:last-child {\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t}\\n\\n\\t\\t&__emoji {\\n\\t\\t\\tpadding-right: 8px;\\n\\t\\t}\\n\\t}\\n\\n\\t.highlight {\\n\\t\\topacity: 1;\\n\\t\\tcolor: var(--color-primary-element-light-text);\\n\\t\\tbackground: var(--color-primary-element-light);\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n}\\n\\n.tribute-container-link {\\n\\tmin-width: 200px;\\n\\tmax-width: 300px;\\n\\t&__item {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\t&__label {\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\t\\t&__icon {\\n\\t\\t\\tmargin: auto 0;\\n\\t\\t\\twidth: 20px;\\n\\t\\t\\theight: 20px;\\n\\t\\t\\tobject-fit: contain;\\n\\t\\t\\tpadding-right: 8px;\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},122:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-36a4d5cc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.widgets--list.icon-loading[data-v-36a4d5cc]{min-height:44px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichText/NcReferenceList.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,6CACC,eAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.widgets--list.icon-loading {\\n\\tmin-height: 44px;\\n}\\n\"],sourceRoot:\"\"}]);const s=o},9425:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-60e96d80]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\"],sourceRoot:\"\"}]);const s=o},8883:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-50f3a10c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.provider-list[data-v-50f3a10c]{width:100%;min-height:350px;padding:0 16px 16px 16px;display:flex;flex-direction:column}.provider-list--empty-content[data-v-50f3a10c]{margin-top:auto !important;margin-bottom:auto !important}.provider-list--select[data-v-50f3a10c]{width:100%}.provider-list--select .provider[data-v-50f3a10c]{display:flex;align-items:center;height:28px;overflow:hidden}.provider-list--select .provider .link-icon[data-v-50f3a10c]{margin-right:8px}.provider-list--select .provider .provider-icon[data-v-50f3a10c]{width:20px;height:20px;object-fit:contain;margin-right:8px;filter:var(--background-invert-if-dark)}.provider-list--select .provider .option-text[data-v-50f3a10c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichText/NcReferencePicker/NcProviderList.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,gCACC,UAAA,CACA,gBAAA,CACA,wBAAA,CACA,YAAA,CACA,qBAAA,CAEA,+CACC,0BAAA,CACA,6BAAA,CAGD,wCACC,UAAA,CAEA,kDACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,eAAA,CAEA,6DACC,gBAAA,CAGD,iEACC,UAAA,CACA,WAAA,CACA,kBAAA,CACA,gBAAA,CACA,uCAAA,CAGD,+DACC,eAAA,CACA,sBAAA,CACA,kBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.provider-list {\\n\\twidth: 100%;\\n\\tmin-height: 350px;\\n\\tpadding: 0 16px 16px 16px;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t&--empty-content {\\n\\t\\tmargin-top: auto !important;\\n\\t\\tmargin-bottom: auto !important;\\n\\t}\\n\\n\\t&--select {\\n\\t\\twidth: 100%;\\n\\n\\t\\t.provider {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\theight: 28px;\\n\\t\\t\\toverflow: hidden;\\n\\n\\t\\t\\t.link-icon {\\n\\t\\t\\t\\tmargin-right: 8px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.provider-icon {\\n\\t\\t\\t\\twidth: 20px;\\n\\t\\t\\t\\theight: 20px;\\n\\t\\t\\t\\tobject-fit: contain;\\n\\t\\t\\t\\tmargin-right: 8px;\\n\\t\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t\\t}\\n\\n\\t\\t\\t.option-text {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},6068:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-2e61b91c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.raw-link[data-v-2e61b91c]{width:100%;min-height:350px;display:flex;flex-direction:column;overflow-y:auto}.raw-link .input-wrapper[data-v-2e61b91c]{width:100%}.raw-link .reference-widget[data-v-2e61b91c]{display:flex}.raw-link--empty-content[data-v-2e61b91c]{margin-top:auto !important;margin-bottom:auto !important}.raw-link--empty-content .provider-icon[data-v-2e61b91c]{width:150px;height:150px;object-fit:contain;filter:var(--background-invert-if-dark)}.raw-link--input[data-v-2e61b91c]{width:99%}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,2BACC,UAAA,CACA,gBAAA,CACA,YAAA,CACA,qBAAA,CACA,eAAA,CAEA,0CACC,UAAA,CAGD,6CACC,YAAA,CAGD,0CACC,0BAAA,CACA,6BAAA,CAEA,yDACC,WAAA,CACA,YAAA,CACA,kBAAA,CACA,uCAAA,CAIF,kCACC,SAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.raw-link {\\n\\twidth: 100%;\\n\\tmin-height: 350px;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\toverflow-y: auto;\\n\\n\\t.input-wrapper {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t.reference-widget {\\n\\t\\tdisplay: flex;\\n\\t}\\n\\n\\t&--empty-content {\\n\\t\\tmargin-top: auto !important;\\n\\t\\tmargin-bottom: auto !important;\\n\\n\\t\\t.provider-icon {\\n\\t\\t\\twidth: 150px;\\n\\t\\t\\theight: 150px;\\n\\t\\t\\tobject-fit: contain;\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t&--input {\\n\\t\\twidth: 99%;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},34:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-9b2f661a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.reference-picker[data-v-9b2f661a]{display:flex;overflow-y:auto;width:100%}.reference-picker .custom-element-wrapper[data-v-9b2f661a]{display:flex;overflow-y:auto;width:100%}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichText/NcReferencePicker/NcReferencePicker.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,YAAA,CACA,eAAA,CACA,UAAA,CAEA,2DACC,YAAA,CACA,eAAA,CACA,UAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.reference-picker {\\n\\tdisplay: flex;\\n\\toverflow-y: auto;\\n\\twidth: 100%;\\n\\n\\t.custom-element-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\toverflow-y: auto;\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},698:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.reference-picker-modal .modal-container{display:flex !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,yCACC,uBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n// this is to avoid scroll on the container and leave it to the result block\\n.reference-picker-modal .modal-container {\\n\\tdisplay: flex !important;\\n}\\n\"],sourceRoot:\"\"}]);const s=o},6508:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-1f66021a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.reference-picker-modal--content[data-v-1f66021a]{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-y:auto}.reference-picker-modal--content .close-button[data-v-1f66021a],.reference-picker-modal--content .back-button[data-v-1f66021a]{position:absolute;top:4px}.reference-picker-modal--content .back-button[data-v-1f66021a]{left:4px}.reference-picker-modal--content .close-button[data-v-1f66021a]{right:4px}.reference-picker-modal--content>h2[data-v-1f66021a]{display:flex;margin:12px 0 20px 0}.reference-picker-modal--content>h2 .icon[data-v-1f66021a]{margin-right:8px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,kDACC,UAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CAEA,+HAEC,iBAAA,CACA,OAAA,CAED,+DACC,QAAA,CAED,gEACC,SAAA,CAGD,qDACC,YAAA,CACA,oBAAA,CACA,2DACC,gBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.reference-picker-modal--content {\\n\\twidth: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\toverflow-y: auto;\\n\\n\\t.close-button,\\n\\t.back-button {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 4px;\\n\\t}\\n\\t.back-button {\\n\\t\\tleft: 4px;\\n\\t}\\n\\t.close-button {\\n\\t\\tright: 4px;\\n\\t}\\n\\n\\t> h2 {\\n\\t\\tdisplay: flex;\\n\\t\\tmargin: 12px 0 20px 0;\\n\\t\\t.icon {\\n\\t\\t\\tmargin-right: 8px;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},2873:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-26e3248c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.smart-picker-search[data-v-26e3248c]{width:100%;display:flex;flex-direction:column;padding:0 16px 16px 16px}.smart-picker-search.with-empty-content[data-v-26e3248c]{min-height:350px}.smart-picker-search--empty-content[data-v-26e3248c]{margin-top:auto !important;margin-bottom:auto !important}.smart-picker-search .provider-icon[data-v-26e3248c]{width:150px;height:150px;object-fit:contain;filter:var(--background-invert-if-dark)}.smart-picker-search--select[data-v-26e3248c]{width:100%}.smart-picker-search--select .search-result[data-v-26e3248c]{width:100%}.smart-picker-search--select .group-title-icon[data-v-26e3248c],.smart-picker-search--select .option-simple-icon[data-v-26e3248c]{width:20px;height:20px;margin:0 20px 0 10px}.smart-picker-search--select .custom-option[data-v-26e3248c]{height:44px;display:flex;align-items:center;overflow:hidden}.smart-picker-search--select .option-text[data-v-26e3248c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.smart-picker-search--select[data-v-26e3248c] .multiselect__content-wrapper{width:calc(100% - 4px) !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichText/NcReferencePicker/NcSearch.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,sCACC,UAAA,CACA,YAAA,CACA,qBAAA,CACA,wBAAA,CACA,yDACC,gBAAA,CAGD,qDACC,0BAAA,CACA,6BAAA,CAGD,qDACC,WAAA,CACA,YAAA,CACA,kBAAA,CACA,uCAAA,CAGD,8CACC,UAAA,CAEA,6DACC,UAAA,CAGD,kIAEC,UAAA,CACA,WAAA,CACA,oBAAA,CAGD,6DACC,WAAA,CACA,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,2DACC,eAAA,CACA,sBAAA,CACA,kBAAA,CAKD,4EACC,iCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.smart-picker-search {\\n\\twidth: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tpadding: 0 16px 16px 16px;\\n\\t&.with-empty-content {\\n\\t\\tmin-height: 350px;\\n\\t}\\n\\n\\t&--empty-content {\\n\\t\\tmargin-top: auto !important;\\n\\t\\tmargin-bottom: auto !important;\\n\\t}\\n\\n\\t.provider-icon {\\n\\t\\twidth: 150px;\\n\\t\\theight: 150px;\\n\\t\\tobject-fit: contain;\\n\\t\\tfilter: var(--background-invert-if-dark);\\n\\t}\\n\\n\\t&--select {\\n\\t\\twidth: 100%;\\n\\n\\t\\t.search-result {\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t.group-title-icon,\\n\\t\\t.option-simple-icon {\\n\\t\\t\\twidth: 20px;\\n\\t\\t\\theight: 20px;\\n\\t\\t\\tmargin: 0 20px 0 10px;\\n\\t\\t}\\n\\n\\t\\t.custom-option {\\n\\t\\t\\theight: 44px;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t}\\n\\n\\t\\t.option-text {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t// multiselect dropdown is wider than the select input\\n\\t\\t// this avoids overflow\\n\\t\\t:deep(.multiselect__content-wrapper) {\\n\\t\\t\\twidth: calc(100% - 4px) !important;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},9052:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-7297c50a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.result[data-v-7297c50a]{display:flex;align-items:center;height:44px;overflow:hidden}.result--icon-class[data-v-7297c50a],.result--image[data-v-7297c50a]{width:40px;min-width:40px;height:40px;object-fit:contain}.result--icon-class.rounded[data-v-7297c50a],.result--image.rounded[data-v-7297c50a]{border-radius:50%}.result--content[data-v-7297c50a]{display:flex;flex-direction:column;padding-left:10px;overflow:hidden}.result--content--title[data-v-7297c50a],.result--content--subline[data-v-7297c50a]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichText/NcReferencePicker/NcSearchResult.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,yBACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,eAAA,CAEA,qEAEC,UAAA,CACA,cAAA,CACA,WAAA,CACA,kBAAA,CAEA,qFACC,iBAAA,CAIF,kCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CACA,eAAA,CAEA,oFAEC,eAAA,CACA,sBAAA,CACA,kBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.result {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\toverflow: hidden;\\n\\n\\t&--icon-class,\\n\\t&--image {\\n\\t\\twidth: 40px;\\n\\t\\tmin-width: 40px;\\n\\t\\theight: 40px;\\n\\t\\tobject-fit: contain;\\n\\n\\t\\t&.rounded {\\n\\t\\t\\tborder-radius: 50%;\\n\\t\\t}\\n\\t}\\n\\n\\t&--content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tpadding-left: 10px;\\n\\t\\toverflow: hidden;\\n\\n\\t\\t&--title,\\n\\t\\t&--subline {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},1880:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-4be6aca8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.widget-custom[data-v-4be6aca8]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px)*3);margin-top:calc(var(--default-grid-baseline, 4px)*3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-large);background-color:rgba(0,0,0,0);display:flex}.widget-access[data-v-4be6aca8]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px)*3);margin-top:calc(var(--default-grid-baseline, 4px)*3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-large);background-color:rgba(0,0,0,0);display:flex;padding:calc(var(--default-grid-baseline, 4px)*3)}.widget-default[data-v-4be6aca8]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px)*3);margin-top:calc(var(--default-grid-baseline, 4px)*3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-large);background-color:rgba(0,0,0,0);display:flex}.widget-default--compact[data-v-4be6aca8]{flex-direction:column}.widget-default--compact .widget-default--image[data-v-4be6aca8]{width:100%;height:150px}.widget-default--compact .widget-default--details[data-v-4be6aca8]{width:100%;padding-top:calc(var(--default-grid-baseline, 4px)*2);padding-bottom:calc(var(--default-grid-baseline, 4px)*2)}.widget-default--compact .widget-default--description[data-v-4be6aca8]{display:none}.widget-default--image[data-v-4be6aca8]{width:40%;background-position:center;background-size:cover;background-repeat:no-repeat}.widget-default--title[data-v-4be6aca8]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:bold}.widget-default--details[data-v-4be6aca8]{padding:calc(var(--default-grid-baseline, 4px)*3);width:60%}.widget-default--details p[data-v-4be6aca8]{margin:0;padding:0}.widget-default--description[data-v-4be6aca8]{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}.widget-default--link[data-v-4be6aca8]{color:var(--color-text-maxcontrast);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichText/NcReferenceWidget.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCOD,gCAXC,UAAA,CACA,WAAA,CACA,uDAAA,CACA,oDAAA,CACA,eAAA,CACA,oCAAA,CACA,wCAAA,CACA,8BAAA,CACA,YAAA,CAOD,gCAfC,UAAA,CACA,WAAA,CACA,uDAAA,CACA,oDAAA,CACA,eAAA,CACA,oCAAA,CACA,wCAAA,CACA,8BAAA,CACA,YAAA,CASA,iDAAA,CAGD,iCApBC,UAAA,CACA,WAAA,CACA,uDAAA,CACA,oDAAA,CACA,eAAA,CACA,oCAAA,CACA,wCAAA,CACA,8BAAA,CACA,YAAA,CAeA,0CACC,qBAAA,CAEA,iEACC,UAAA,CACA,YAAA,CAGD,mEACC,UAAA,CACA,qDAAA,CACA,wDAAA,CAGD,uEACC,YAAA,CAKF,wCACC,SAAA,CACA,0BAAA,CACA,qBAAA,CACA,2BAAA,CAGD,wCACC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,gBAAA,CAGD,0CACC,iDAAA,CACA,SAAA,CAEA,4CACC,QAAA,CACA,SAAA,CAIF,8CACC,eAAA,CACA,sBAAA,CACA,mBAAA,CACA,oBAAA,CACA,YAAA,CACA,2BAAA,CAGD,uCACC,mCAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n@mixin widget {\\n\\twidth: 100%;\\n\\tmargin: auto;\\n\\tmargin-bottom: calc(var(--default-grid-baseline, 4px) * 3);\\n\\tmargin-top: calc(var(--default-grid-baseline, 4px) * 3);\\n\\toverflow: hidden;\\n\\tborder: 2px solid var(--color-border);\\n\\tborder-radius: var(--border-radius-large);\\n\\tbackground-color: transparent;\\n\\tdisplay: flex;\\n}\\n\\n.widget-custom {\\n\\t@include widget;\\n}\\n\\n.widget-access {\\n\\t@include widget;\\n\\tpadding: calc(var(--default-grid-baseline, 4px) * 3);\\n}\\n\\n.widget-default {\\n\\t@include widget;\\n\\n\\t&--compact {\\n\\t\\tflex-direction: column;\\n\\n\\t\\t.widget-default--image {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 150px;\\n\\t\\t}\\n\\n\\t\\t.widget-default--details {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tpadding-top: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t\\t\\tpadding-bottom: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t\\t}\\n\\n\\t\\t.widget-default--description {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&--image {\\n\\t\\twidth: 40%;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: cover;\\n\\t\\tbackground-repeat: no-repeat;\\n\\t}\\n\\n\\t&--title {\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\twhite-space: nowrap;\\n\\t\\tfont-weight: bold;\\n\\t}\\n\\n\\t&--details {\\n\\t\\tpadding: calc(var(--default-grid-baseline, 4px) * 3);\\n\\t\\twidth: 60%;\\n\\n\\t\\tp {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&--description {\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tdisplay: -webkit-box;\\n\\t\\t-webkit-line-clamp: 3;\\n\\t\\tline-clamp: 3;\\n\\t\\t-webkit-box-orient: vertical;\\n\\t}\\n\\n\\t&--link {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\twhite-space: nowrap;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},535:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,'.material-design-icon[data-v-1c15f071]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.rich-text--wrapper[data-v-1c15f071]{word-break:break-word;line-height:1.5}.rich-text--wrapper .rich-text--fallback[data-v-1c15f071],.rich-text--wrapper .rich-text-component[data-v-1c15f071]{display:inline}.rich-text--wrapper .rich-text--external-link[data-v-1c15f071]{text-decoration:underline}.rich-text--wrapper .rich-text--external-link[data-v-1c15f071]:after{content:\" ↗\"}.rich-text--wrapper .rich-text--ordered-list .rich-text--list-item[data-v-1c15f071]{list-style:decimal}.rich-text--wrapper .rich-text--un-ordered-list .rich-text--list-item[data-v-1c15f071]{list-style:initial}.rich-text--wrapper .rich-text--list-item[data-v-1c15f071]{white-space:initial;color:var(--color-text-light);padding:initial;margin-left:20px}.rich-text--wrapper .rich-text--list-item.task-list-item[data-v-1c15f071]{list-style:none;white-space:initial;color:var(--color-text-light)}.rich-text--wrapper .rich-text--list-item.task-list-item input[data-v-1c15f071]{min-height:initial}.rich-text--wrapper .rich-text--strong[data-v-1c15f071]{white-space:initial;font-weight:bold;color:var(--color-text-light)}.rich-text--wrapper .rich-text--italic[data-v-1c15f071]{white-space:initial;font-style:italic;color:var(--color-text-light)}.rich-text--wrapper .rich-text--heading[data-v-1c15f071]{white-space:initial;font-size:initial;color:var(--color-text-light);margin-bottom:5px;margin-top:5px;font-weight:bold}.rich-text--wrapper .rich-text--heading.rich-text--heading-1[data-v-1c15f071]{font-size:20px}.rich-text--wrapper .rich-text--heading.rich-text--heading-2[data-v-1c15f071]{font-size:19px}.rich-text--wrapper .rich-text--heading.rich-text--heading-3[data-v-1c15f071]{font-size:18px}.rich-text--wrapper .rich-text--heading.rich-text--heading-4[data-v-1c15f071]{font-size:17px}.rich-text--wrapper .rich-text--heading.rich-text--heading-5[data-v-1c15f071]{font-size:16px}.rich-text--wrapper .rich-text--heading.rich-text--heading-6[data-v-1c15f071]{font-size:15px}.rich-text--wrapper .rich-text--hr[data-v-1c15f071]{border-top:1px solid var(--color-border-dark);border-bottom:0}.rich-text--wrapper .rich-text--pre[data-v-1c15f071]{border:1px solid var(--color-border-dark);background-color:var(--color-background-dark);padding:5px}.rich-text--wrapper .rich-text--code[data-v-1c15f071]{background-color:var(--color-background-dark)}.rich-text--wrapper .rich-text--blockquote[data-v-1c15f071]{border-left:3px solid var(--color-border-dark);padding-left:5px}.rich-text--wrapper .rich-text--table[data-v-1c15f071]{border-collapse:collapse}.rich-text--wrapper .rich-text--table thead tr th[data-v-1c15f071]{border:1px solid var(--color-border-dark);font-weight:bold;padding:6px 13px}.rich-text--wrapper .rich-text--table tbody tr td[data-v-1c15f071]{border:1px solid var(--color-border-dark);padding:6px 13px}.rich-text--wrapper .rich-text--table tbody tr[data-v-1c15f071]:nth-child(even){background-color:var(--color-background-dark)}.rich-text--wrapper-markdown div>*[data-v-1c15f071]:first-child,.rich-text--wrapper-markdown blockquote>*[data-v-1c15f071]:first-child{margin-top:0 !important}.rich-text--wrapper-markdown div>*[data-v-1c15f071]:last-child,.rich-text--wrapper-markdown blockquote>*[data-v-1c15f071]:last-child{margin-bottom:0 !important}.rich-text--wrapper-markdown h1[data-v-1c15f071],.rich-text--wrapper-markdown h2[data-v-1c15f071],.rich-text--wrapper-markdown h3[data-v-1c15f071],.rich-text--wrapper-markdown h4[data-v-1c15f071],.rich-text--wrapper-markdown h5[data-v-1c15f071],.rich-text--wrapper-markdown h6[data-v-1c15f071],.rich-text--wrapper-markdown p[data-v-1c15f071],.rich-text--wrapper-markdown ul[data-v-1c15f071],.rich-text--wrapper-markdown ol[data-v-1c15f071],.rich-text--wrapper-markdown blockquote[data-v-1c15f071],.rich-text--wrapper-markdown pre[data-v-1c15f071]{margin-top:0;margin-bottom:1em}.rich-text--wrapper-markdown h1[data-v-1c15f071],.rich-text--wrapper-markdown h2[data-v-1c15f071],.rich-text--wrapper-markdown h3[data-v-1c15f071],.rich-text--wrapper-markdown h4[data-v-1c15f071],.rich-text--wrapper-markdown h5[data-v-1c15f071],.rich-text--wrapper-markdown h6[data-v-1c15f071]{font-weight:bold}.rich-text--wrapper-markdown h1[data-v-1c15f071]{font-size:30px}.rich-text--wrapper-markdown ul[data-v-1c15f071],.rich-text--wrapper-markdown ol[data-v-1c15f071]{padding-left:15px}.rich-text--wrapper-markdown ul[data-v-1c15f071]{list-style-type:disc}.rich-text--wrapper-markdown blockquote[data-v-1c15f071]{padding-left:13px;border-left:2px solid var(--color-border-dark);color:var(--color-text-lighter)}a[data-v-1c15f071]:not(.rich-text--component){text-decoration:underline}',\"\",{version:3,sources:[\"webpack://./src/components/NcRichText/NcRichText.vue\",\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichText/richtext.scss\"],names:[],mappings:\"AAAA,uCCGA,YACC,CAAA,iBACA,CAAA,mBACA,CAAA,kBACA,CAAA,sBACA,CAAA,qCCJD,qBACC,CAAA,eACA,CAAA,oHAEA,cACC,CAAA,+DAGD,yBACC,CAAA,qEACA,YACC,CAAA,oFAKD,kBACC,CAAA,uFAKD,kBACC,CAAA,2DAIF,mBACC,CAAA,6BACA,CAAA,eACA,CAAA,gBACA,CAAA,0EAEA,eACC,CAAA,mBACA,CAAA,6BACA,CAAA,gFAEA,kBACC,CAAA,wDAKH,mBACC,CAAA,gBACA,CAAA,6BACA,CAAA,wDAGD,mBACC,CAAA,iBACA,CAAA,6BACA,CAAA,yDAGD,mBACC,CAAA,iBACA,CAAA,6BACA,CAAA,iBACA,CAAA,cACA,CAAA,gBACA,CAAA,8EAEA,cACC,CAAA,8EAGD,cACC,CAAA,8EAGD,cACC,CAAA,8EAGD,cACC,CAAA,8EAGD,cACC,CAAA,8EAGD,cACC,CAAA,oDAIF,6CACC,CAAA,eACA,CAAA,qDAGD,yCACC,CAAA,6CACA,CAAA,WACA,CAAA,sDAGD,6CACC,CAAA,4DAGD,8CACC,CAAA,gBACA,CAAA,uDAGD,wBACC,CAAA,mEAEA,yCACC,CAAA,gBACA,CAAA,gBACA,CAAA,mEAIA,yCACC,CAAA,gBACA,CAAA,gFAGD,6CACC,CAAA,uIAOH,uBAEC,CAAA,qIAED,0BAEC,CAAA,miBAGD,YACC,CAAA,iBACA,CAAA,sSAGD,gBACC,CAAA,iDAGD,cACC,CAAA,kGAGD,iBACC,CAAA,iDAGD,oBACC,CAAA,yDAGD,iBACC,CAAA,8CACA,CAAA,+BACA,CAAA,8CFpKF,yBACC\",sourcesContent:[\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n/* stylelint-disable-next-line scss/at-import-partial-extension */\\n@import './richtext.scss';\\n\\na:not(.rich-text--component) {\\n\\ttext-decoration: underline;\\n}\\n\",\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * Styles are extracted to extract scss to dist folder, too.\\n */\\n\\n.rich-text--wrapper {\\n\\tword-break: break-word;\\n\\tline-height: 1.5;\\n\\n\\t.rich-text--fallback, .rich-text-component {\\n\\t\\tdisplay: inline;\\n\\t}\\n\\n\\t.rich-text--external-link {\\n\\t\\ttext-decoration: underline;\\n\\t\\t&:after {\\n\\t\\t\\tcontent: ' ↗';\\n\\t\\t}\\n\\t}\\n\\n\\t.rich-text--ordered-list {\\n\\t\\t.rich-text--list-item {\\n\\t\\t\\tlist-style: decimal;\\n\\t\\t}\\n\\t}\\n\\n\\t.rich-text--un-ordered-list {\\n\\t\\t.rich-text--list-item {\\n\\t\\t\\tlist-style: initial;\\n\\t\\t}\\n\\t}\\n\\n\\t.rich-text--list-item {\\n\\t\\twhite-space: initial;\\n\\t\\tcolor: var(--color-text-light);\\n\\t\\tpadding: initial;\\n\\t\\tmargin-left: 20px;\\n\\n\\t\\t&.task-list-item {\\n\\t\\t\\tlist-style: none;\\n\\t\\t\\twhite-space: initial;\\n\\t\\t\\tcolor: var(--color-text-light);\\n\\n\\t\\t\\tinput {\\n\\t\\t\\t\\tmin-height: initial;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.rich-text--strong {\\n\\t\\twhite-space: initial;\\n\\t\\tfont-weight: bold;\\n\\t\\tcolor: var(--color-text-light);\\n\\t}\\n\\n\\t.rich-text--italic {\\n\\t\\twhite-space: initial;\\n\\t\\tfont-style: italic;\\n\\t\\tcolor: var(--color-text-light);\\n\\t}\\n\\n\\t.rich-text--heading {\\n\\t\\twhite-space: initial;\\n\\t\\tfont-size: initial;\\n\\t\\tcolor: var(--color-text-light);\\n\\t\\tmargin-bottom: 5px;\\n\\t\\tmargin-top: 5px;\\n\\t\\tfont-weight: bold;\\n\\n\\t\\t&.rich-text--heading-1 {\\n\\t\\t\\tfont-size: 20px;\\n\\t\\t}\\n\\n\\t\\t&.rich-text--heading-2 {\\n\\t\\t\\tfont-size: 19px;\\n\\t\\t}\\n\\n\\t\\t&.rich-text--heading-3 {\\n\\t\\t\\tfont-size: 18px;\\n\\t\\t}\\n\\n\\t\\t&.rich-text--heading-4 {\\n\\t\\t\\tfont-size: 17px;\\n\\t\\t}\\n\\n\\t\\t&.rich-text--heading-5 {\\n\\t\\t\\tfont-size: 16px;\\n\\t\\t}\\n\\n\\t\\t&.rich-text--heading-6 {\\n\\t\\t\\tfont-size: 15px;\\n\\t\\t}\\n\\t}\\n\\n\\t.rich-text--hr {\\n\\t\\tborder-top: 1px solid var(--color-border-dark);\\n\\t\\tborder-bottom: 0;\\n\\t}\\n\\n\\t.rich-text--pre {\\n\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tpadding: 5px;\\n\\t}\\n\\n\\t.rich-text--code {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t.rich-text--blockquote {\\n\\t\\tborder-left: 3px solid var(--color-border-dark);\\n\\t\\tpadding-left: 5px;\\n\\t}\\n\\n\\t.rich-text--table {\\n\\t\\tborder-collapse: collapse;\\n\\n\\t\\tthead tr th {\\n\\t\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tpadding: 6px 13px;\\n\\t\\t}\\n\\n\\t\\ttbody tr {\\n\\t\\t\\ttd {\\n\\t\\t\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\t\\t\\tpadding: 6px 13px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:nth-child(even) {\\n\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.rich-text--wrapper-markdown {\\n\\tdiv > *:first-child,\\n\\tblockquote > *:first-child{\\n\\t\\tmargin-top: 0 !important;\\n\\t}\\n\\tdiv > *:last-child ,\\n\\tblockquote > *:last-child {\\n\\t\\tmargin-bottom: 0 !important;\\n\\t}\\n\\n\\th1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, pre {\\n\\t\\tmargin-top: 0;\\n\\t\\tmargin-bottom: 1em;\\n\\t}\\n\\n\\th1, h2, h3, h4, h5, h6 {\\n\\t\\tfont-weight: bold;\\n\\t}\\n\\n\\th1 {\\n\\t\\tfont-size: 30px;\\n\\t}\\n\\n\\tul, ol {\\n\\t\\tpadding-left: 15px;\\n\\t}\\n\\n\\tul {\\n\\t\\tlist-style-type: disc;\\n\\t}\\n\\n\\tblockquote {\\n\\t\\tpadding-left: 13px;\\n\\t\\tborder-left: 2px solid var(--color-border-dark);\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]);const s=o},394:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}body{--vs-search-input-color: var(--color-main-text);--vs-search-input-bg: var(--color-main-background);--vs-search-input-placeholder-color: var(--color-text-maxcontrast);--vs-font-size: var(--default-font-size);--vs-line-height: var(--default-line-height);--vs-state-disabled-bg: var(--color-background-dark);--vs-state-disabled-color: var(--color-text-maxcontrast);--vs-state-disabled-controls-color: var(--color-text-maxcontrast);--vs-state-disabled-cursor: not-allowed;--vs-disabled-bg: var(--color-background-dark);--vs-disabled-color: var(--color-text-maxcontrast);--vs-disabled-cursor: not-allowed;--vs-border-color: var(--color-border-maxcontrast);--vs-border-width: 2px;--vs-border-style: solid;--vs-border-radius: var(--border-radius-large);--vs-controls-color: var(--color-text-maxcontrast);--vs-selected-bg: var(--color-background-dark);--vs-selected-color: var(--color-main-text);--vs-dropdown-bg: var(--color-main-background);--vs-dropdown-color: var(--color-main-text);--vs-dropdown-z-index: 9999;--vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);--vs-dropdown-option-padding: 8px 20px;--vs-dropdown-option--active-bg: var(--color-background-hover);--vs-dropdown-option--active-color: var(--color-main-text);--vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);--vs-dropdown-option--deselect-bg: var(--color-error);--vs-dropdown-option--deselect-color: #fff;--vs-transition-duration: 0ms}.v-select.select{min-height:44px;min-width:260px;margin:0}.v-select.select .vs__selected{min-height:36px;padding:0 .5em}.v-select.select .vs__clear{margin-right:2px}.v-select.select.vs--open .vs__dropdown-toggle{border-color:var(--color-primary-element);border-bottom-color:rgba(0,0,0,0)}.v-select.select:not(.vs--disabled,.vs--open) .vs__dropdown-toggle:hover{border-color:var(--color-primary-element)}.v-select.select.vs--disabled .vs__clear,.v-select.select.vs--disabled .vs__deselect{display:none}.v-select.select--no-wrap .vs__selected-options{flex-wrap:nowrap;overflow:auto}.v-select.select--drop-up.vs--open .vs__dropdown-toggle{border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-color:rgba(0,0,0,0);border-bottom-color:var(--color-primary-element)}.v-select.select .vs__selected-options{min-height:40px}.v-select.select .vs__selected-options .vs__selected~.vs__search[readonly]{position:absolute}.v-select.select:not(.select--no-wrap) .vs__selected-options{min-width:0}.v-select.select:not(.select--no-wrap) .vs__selected-options .vs__selected{min-width:0}.v-select.select.vs--single.vs--loading .vs__selected,.v-select.select.vs--single.vs--open .vs__selected{max-width:100%}.v-select.select.vs--single .vs__selected-options{flex-wrap:nowrap}.vs__dropdown-menu{border-color:var(--color-primary-element) !important;padding:4px !important}.vs__dropdown-menu--floating{width:max-content;position:absolute;top:0;left:0}.vs__dropdown-menu--floating-placement-top{border-radius:var(--vs-border-radius) var(--vs-border-radius) 0 0 !important;border-top-style:var(--vs-border-style) !important;border-bottom-style:none !important;box-shadow:0px -1px 1px 0px var(--color-box-shadow) !important}.vs__dropdown-menu .vs__dropdown-option{border-radius:6px !important}.vs__dropdown-menu .vs__no-options{color:var(--color-text-lighter) !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcSelect/NcSelect.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,KAOC,+CAAA,CACA,kDAAA,CACA,kEAAA,CAGA,wCAAA,CACA,4CAAA,CAGA,oDAAA,CACA,wDAAA,CACA,iEAAA,CACA,uCAAA,CACA,8CAAA,CACA,kDAAA,CACA,iCAAA,CAGA,kDAAA,CACA,sBAAA,CACA,wBAAA,CACA,8CAAA,CAGA,kDAAA,CAGA,8CAAA,CACA,2CAAA,CAGA,8CAAA,CACA,2CAAA,CACA,2BAAA,CACA,iEAAA,CAGA,sCAAA,CAGA,8DAAA,CACA,0DAAA,CAGA,uFAAA,CAGA,qDAAA,CACA,0CAAA,CAGA,6BAAA,CAGD,iBAEC,eCxCgB,CDyChB,eAAA,CACA,QAAA,CAEA,+BACC,eAAA,CACA,cAAA,CAGD,4BACC,gBAAA,CAGD,+CACC,yCAAA,CACA,iCAAA,CAGD,yEACC,yCAAA,CAIA,qFAEC,YAAA,CAKD,gDACC,gBAAA,CACA,aAAA,CAMA,wDACC,iEAAA,CACA,8BAAA,CACA,gDAAA,CAKH,uCAEC,eAAA,CAGA,2EACC,iBAAA,CAUD,6DACC,WAAA,CACA,2EACC,WAAA,CAQD,yGAEC,cAAA,CAGF,kDACC,gBAAA,CAKH,mBACC,oDAAA,CACA,sBAAA,CAEA,6BAEC,iBAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CAEA,2CACC,4EAAA,CACA,kDAAA,CACA,mCAAA,CACA,8DAAA,CAIF,wCACC,4BAAA,CAGD,mCACC,0CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\nbody {\\n\\t/**\\n\\t * Set custom vue-select CSS variables.\\n\\t * Needs to be on the body (not :root) for theming to apply (see nextcloud/server#36462)\\n\\t */\\n\\n\\t/* Search Input */\\n\\t--vs-search-input-color: var(--color-main-text);\\n\\t--vs-search-input-bg: var(--color-main-background);\\n\\t--vs-search-input-placeholder-color: var(--color-text-maxcontrast);\\n\\n\\t/* Font */\\n\\t--vs-font-size: var(--default-font-size);\\n\\t--vs-line-height: var(--default-line-height);\\n\\n\\t/* Disabled State */\\n\\t--vs-state-disabled-bg: var(--color-background-dark);\\n\\t--vs-state-disabled-color: var(--color-text-maxcontrast);\\n\\t--vs-state-disabled-controls-color: var(--color-text-maxcontrast);\\n\\t--vs-state-disabled-cursor: not-allowed;\\n\\t--vs-disabled-bg: var(--color-background-dark);\\n\\t--vs-disabled-color: var(--color-text-maxcontrast);\\n\\t--vs-disabled-cursor: not-allowed;\\n\\n\\t/* Borders */\\n\\t--vs-border-color: var(--color-border-maxcontrast);\\n\\t--vs-border-width: 2px;\\n\\t--vs-border-style: solid;\\n\\t--vs-border-radius: var(--border-radius-large);\\n\\n\\t/* Component Controls: Clear, Open Indicator */\\n\\t--vs-controls-color: var(--color-text-maxcontrast);\\n\\n\\t/* Selected */\\n\\t--vs-selected-bg: var(--color-background-dark);\\n\\t--vs-selected-color: var(--color-main-text);\\n\\n\\t/* Dropdown */\\n\\t--vs-dropdown-bg: var(--color-main-background);\\n\\t--vs-dropdown-color: var(--color-main-text);\\n\\t--vs-dropdown-z-index: 9999;\\n\\t--vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);\\n\\n\\t/* Options */\\n\\t--vs-dropdown-option-padding: 8px 20px;\\n\\n\\t/* Active State */\\n\\t--vs-dropdown-option--active-bg: var(--color-background-hover);\\n\\t--vs-dropdown-option--active-color: var(--color-main-text);\\n\\n\\t/* Keyboard Focus State */\\n\\t--vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);\\n\\n\\t/* Deselect State */\\n\\t--vs-dropdown-option--deselect-bg: var(--color-error);\\n\\t--vs-dropdown-option--deselect-color: #fff;\\n\\n\\t/* Transitions */\\n\\t--vs-transition-duration: 0ms;\\n}\\n\\n.v-select.select {\\n\\t/* Override default vue-select styles */\\n\\tmin-height: $clickable-area;\\n\\tmin-width: 260px;\\n\\tmargin: 0;\\n\\n\\t.vs__selected {\\n\\t\\tmin-height: 36px;\\n\\t\\tpadding: 0 0.5em;\\n\\t}\\n\\n\\t.vs__clear {\\n\\t\\tmargin-right: 2px;\\n\\t}\\n\\n\\t&.vs--open .vs__dropdown-toggle {\\n\\t\\tborder-color: var(--color-primary-element);\\n\\t\\tborder-bottom-color: transparent;\\n\\t}\\n\\n\\t&:not(.vs--disabled, .vs--open) .vs__dropdown-toggle:hover {\\n\\t\\tborder-color: var(--color-primary-element);\\n\\t}\\n\\n\\t&.vs--disabled {\\n\\t\\t.vs__clear,\\n\\t\\t.vs__deselect {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t&--no-wrap {\\n\\t\\t.vs__selected-options {\\n\\t\\t\\tflex-wrap: nowrap;\\n\\t\\t\\toverflow: auto;\\n\\t\\t}\\n\\t}\\n\\n\\t&--drop-up {\\n\\t\\t&.vs--open {\\n\\t\\t\\t.vs__dropdown-toggle {\\n\\t\\t\\t\\tborder-radius: 0 0 var(--vs-border-radius) var(--vs-border-radius);\\n\\t\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\t\\tborder-bottom-color: var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.vs__selected-options {\\n\\t\\t// If search is hidden, ensure that the height of the search is the same\\n\\t\\tmin-height: 40px; // 36px search height + 4px search margin\\n\\n\\t\\t// Hide search from dom if unused to prevent unneeded flex wrap\\n\\t\\t.vs__selected ~ .vs__search[readonly] {\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\t}\\n\\n\\t/**\\n\\t * Fix overlow of selected options\\n\\t * There is an upstream pull request, if it is merged and released remove this fix\\n\\t * https://github.com/sagalbot/vue-select/pull/1756\\n\\t */\\n\\t&:not(.select--no-wrap) {\\n\\t\\t.vs__selected-options {\\n\\t\\t\\tmin-width: 0;\\n\\t\\t\\t.vs__selected {\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.vs--single {\\n\\t\\t&.vs--loading,\\n\\t\\t&.vs--open {\\n\\t\\t\\t.vs__selected {\\n\\t\\t\\t\\t// Fix `max-width` for `position: absolute`\\n\\t\\t\\t\\tmax-width: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t.vs__selected-options {\\n\\t\\t\\tflex-wrap: nowrap;\\n\\t\\t}\\n\\t}\\n}\\n\\n.vs__dropdown-menu {\\n\\tborder-color: var(--color-primary-element) !important;\\n\\tpadding: 4px !important;\\n\\n\\t&--floating {\\n\\t\\t/* Fallback styles overidden by programmatically set inline styles */\\n\\t\\twidth: max-content;\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\n\\t\\t&-placement-top {\\n\\t\\t\\tborder-radius: var(--vs-border-radius) var(--vs-border-radius) 0 0 !important;\\n\\t\\t\\tborder-top-style: var(--vs-border-style) !important;\\n\\t\\t\\tborder-bottom-style: none !important;\\n\\t\\t\\tbox-shadow: 0px -1px 1px 0px var(--color-box-shadow) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.vs__dropdown-option {\\n\\t\\tborder-radius: 6px !important;\\n\\t}\\n\\n\\t.vs__no-options {\\n\\t\\tcolor: var(--color-text-lighter) !important;\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},9957:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-3896af2a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.settings-section[data-v-3896af2a]{display:block;margin-bottom:auto;padding:30px}.settings-section[data-v-3896af2a]:not(:last-child){border-bottom:1px solid var(--color-border)}.settings-section--limit-width>*[data-v-3896af2a]{max-width:900px}.settings-section__title[data-v-3896af2a]{display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-weight:bold;max-width:900px}.settings-section__info[data-v-3896af2a]{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-14px;margin-left:0;opacity:.7}.settings-section__info[data-v-3896af2a]:hover,.settings-section__info[data-v-3896af2a]:focus,.settings-section__info[data-v-3896af2a]:active{opacity:1}.settings-section__desc[data-v-3896af2a]{margin-top:-0.2em;margin-bottom:1em;opacity:.7;max-width:900px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcSettingsSection/NcSettingsSection.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,mCACC,aAAA,CACA,kBAAA,CACA,YAAA,CAEA,oDACC,2CAAA,CAGD,kDACC,eAZS,CAeV,0CACC,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CACA,gBAAA,CACA,eArBS,CAwBV,yCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UCLe,CDMf,WCNe,CDQf,YAAA,CACA,aAAA,CACA,UCQe,CDNf,8IACC,SCMY,CDFd,yCACC,iBAAA,CACA,iBAAA,CACA,UCFe,CDGf,eA5CS\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n$maxWidth: 900px;\\n\\n.settings-section {\\n\\tdisplay: block;\\n\\tmargin-bottom: auto;\\n\\tpadding: 30px;\\n\\n\\t&:not(:last-child) {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t&--limit-width > * {\\n\\t\\tmax-width: $maxWidth;\\n\\t}\\n\\n\\t&__title {\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\tfont-size: 20px;\\n\\t\\tfont-weight: bold;\\n\\t\\tmax-width: $maxWidth;\\n\\t}\\n\\n\\t&__info {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\t// make sure to properly align the icon with the text\\n\\t\\tmargin: -$icon-margin;\\n\\t\\tmargin-left: 0;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t&:hover, &:focus, &:active {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n\\n\\t&__desc {\\n\\t\\tmargin-top: -.2em;\\n\\t\\tmargin-bottom: 1em;\\n\\t\\topacity: $opacity_normal;\\n\\t\\tmax-width: $maxWidth;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const s=o},505:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\".material-design-icon[data-v-4c7cf49f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.user-bubble__wrapper[data-v-4c7cf49f]{display:inline-block;vertical-align:middle;min-width:0;max-width:100%}.user-bubble__content[data-v-4c7cf49f]{display:inline-flex;max-width:100%;background-color:var(--color-background-dark)}.user-bubble__content--primary[data-v-4c7cf49f]{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.user-bubble__content[data-v-4c7cf49f]>:last-child{padding-right:8px}.user-bubble__avatar[data-v-4c7cf49f]{align-self:center}.user-bubble__title[data-v-4c7cf49f]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-bubble__title[data-v-4c7cf49f],.user-bubble__secondary[data-v-4c7cf49f]{padding:0;padding-left:4px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcUserBubble/NcUserBubble.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLA,uCAEC,oBAAA,CACA,qBAAA,CAEA,WAAA,CACA,cAAA,CAGD,uCACC,mBAAA,CACA,cAAA,CACA,6CAAA,CAEA,gDACC,uCAAA,CACA,6CAAA,CAGD,mDAEC,iBAAA,CAIF,sCACC,iBAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CAGD,8EAGC,SAAA,CACA,gBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7310e89\\\"; @import 'variables'; @import 'material-icons';\\n\\n.user-bubble {\\n\\t&__wrapper {\\n\\t\\t// align inline with text\\n\\t\\tdisplay: inline-block;\\n\\t\\tvertical-align: middle;\\n\\t\\t// shrink and allow grow to fit\\n\\t\\tmin-width: 0;\\n\\t\\tmax-width: 100%;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: inline-flex;\\n\\t\\tmax-width: 100%;\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\n\\t\\t&--primary {\\n\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\n\\t\\t> :last-child {\\n\\t\\t\\t// border radius left padding\\n\\t\\t\\tpadding-right: 8px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__avatar {\\n\\t\\talign-self: center;\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\n\\t&__title,\\n\\t&__secondary {\\n\\t\\t// proper spacing between avatar, title & slot\\n\\t\\tpadding: 0;\\n\\t\\tpadding-left: 4px;\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const s=o},5999:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\"\\n.app-navigation-spacer[data-v-e9226d86] {\\n\\tflex-shrink: 0;\\n\\torder: 1;\\n\\theight: 22px;\\n}\\n\\n\",\"\",{version:3,sources:[\"webpack://./src/components/NcAppNavigationSpacer/NcAppNavigationSpacer.vue\"],names:[],mappings:\";AAwCA;CACA,cAAA;CACA,QAAA;CACA,YAAA;AACA\",sourcesContent:[\"\\x3c!--\\n - @copyright Copyright (c) 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\\n -\\n - @author Christoph Wurst <christoph@winzerhof-wurst.at>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n --\\x3e\\n<template>\\n\\t<li class=\\\"app-navigation-spacer\\\" />\\n</template>\\n\\n<script>\\nexport default {\\n\\tname: 'NcAppNavigationSpacer',\\n}\\n<\\/script>\\n\\n<style scoped>\\n\\t.app-navigation-spacer {\\n\\t\\tflex-shrink: 0;\\n\\t\\torder: 1;\\n\\t\\theight: 22px;\\n\\t}\\n\\n</style>\\n\"],sourceRoot:\"\"}]);const s=o},3841:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\"\\n.row-selected span[data-v-0d89938e] {\\n\\tvertical-align: middle;\\n}\\n.row-selected button[data-v-0d89938e] {\\n\\tvertical-align: middle;\\n}\\n.emoji-delete[data-v-0d89938e] {\\n\\tvertical-align: top;\\n\\tmargin-left: -21px;\\n\\tmargin-top: -3px;\\n}\\n\",\"\",{version:3,sources:[\"webpack://./src/components/NcEmojiPicker/NcEmojiPicker.vue\"],names:[],mappings:\";AAufA;CACA,sBAAA;AACA;AAEA;CACA,sBAAA;AACA;AAEA;CACA,mBAAA;CACA,kBAAA;CACA,gBAAA;AACA\",sourcesContent:['\\x3c!--\\n - @copyright Copyright (c) 2020 Georg Ehrke <oc.list@georgehrke.com>\\n -\\n - @author 2020 Georg Ehrke <oc.list@georgehrke.com>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n --\\x3e\\n\\n<docs>\\n### General description\\n\\nThis component allows the user to pick an emoji.\\n\\n### Usage\\n\\n* Listen to the select event and pass in an HTML element that will be treated as a trigger:\\n\\n```vue\\n<template>\\n\\t<div>\\n\\t\\t<NcEmojiPicker @select=\"select\" style=\"display: inline-block\">\\n\\t\\t\\t<NcButton> Click Me </NcButton>\\n\\t\\t</NcEmojiPicker>\\n\\t\\t<span>selected emoji: {{ emoji }}</span>\\n\\t</div>\\n</template>\\n<script>\\n\\texport default {\\n\\t\\tdata() {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\temoji: \\'\\',\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tmethods: {\\n\\t\\t\\tselect(emoji) {\\n\\t\\t\\t\\tthis.emoji = emoji\\n\\t\\t\\t},\\n\\t\\t},\\n\\t}\\n<\\/script>\\n```\\n\\n* Showing a preview and keeping it open after a user selected an emoji\\n\\n```vue\\n<template>\\n\\t<div>\\n\\t\\t<NcEmojiPicker\\n\\t\\t\\t:close-on-select=\"false\"\\n\\t\\t\\t:show-preview=\"true\"\\n\\t\\t\\t@select=\"select\"\\n\\t\\t\\tstyle=\"display: inline-block\">\\n\\t\\t\\t<NcButton> Click Me </NcButton>\\n\\t\\t</NcEmojiPicker>\\n\\t\\t<span>selected emoji: {{ emoji }}</span>\\n\\t</div>\\n</template>\\n<script>\\n\\texport default {\\n\\t\\tdata() {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\temoji: \\'\\',\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tmethods: {\\n\\t\\t\\tselect(emoji) {\\n\\t\\t\\t\\tthis.emoji = emoji\\n\\t\\t\\t},\\n\\t\\t},\\n\\t}\\n<\\/script>\\n```\\n\\n* Allow unselecting a previously set emoji.\\n\\n```vue\\n<template>\\n\\t<div>\\n\\t\\t<NcEmojiPicker\\n\\t\\t\\t:show-preview=\"true\"\\n\\t\\t\\t:allow-unselect=\"true\"\\n\\t\\t\\t:selected-emoji=\"emoji\"\\n\\t\\t\\t@select=\"select\"\\n\\t\\t\\t@unselect=\"unselect\"\\n\\t\\t\\tstyle=\"display: inline-block\">\\n\\t\\t\\t<NcButton> Click Me </NcButton>\\n\\t\\t</NcEmojiPicker>\\n\\t\\t<span>selected emoji: {{ emoji }}</span>\\n\\t</div>\\n</template>\\n<script>\\n\\texport default {\\n\\t\\tdata() {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\temoji: \\'\\',\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tmethods: {\\n\\t\\t\\tselect(emoji) {\\n\\t\\t\\t\\tthis.emoji = emoji\\n\\t\\t\\t},\\n\\t\\t\\tunselect() {\\n\\t\\t\\t\\tthis.emoji = \\'\\'\\n\\t\\t\\t},\\n\\t\\t},\\n\\t}\\n<\\/script>\\n```\\n\\n</docs>\\n\\n<template>\\n\\t<NcPopover :shown.sync=\"open\"\\n\\t\\t:container=\"container\"\\n\\t\\tv-bind=\"$attrs\"\\n\\t\\tv-on=\"$listeners\"\\n\\t\\t@after-show=\"afterShow\"\\n\\t\\t@after-hide=\"afterHide\">\\n\\t\\t<template #trigger>\\n\\t\\t\\t<slot />\\n\\t\\t</template>\\n\\t\\t<Picker ref=\"picker\"\\n\\t\\t\\t:auto-focus=\"false /* We manage the input focus ourselves */\"\\n\\t\\t\\tcolor=\"var(--color-primary-element)\"\\n\\t\\t\\t:data=\"emojiIndex\"\\n\\t\\t\\t:emoji=\"previewFallbackEmoji\"\\n\\t\\t\\t:i18n=\"i18n\"\\n\\t\\t\\t:native=\"native\"\\n\\t\\t\\t:emoji-size=\"20\"\\n\\t\\t\\t:per-line=\"8\"\\n\\t\\t\\t:picker-styles=\"{ width: \\'320px\\' }\"\\n\\t\\t\\t:show-preview=\"showPreview\"\\n\\t\\t\\t:title=\"previewFallbackTitle\"\\n\\t\\t\\tv-bind=\"$attrs\"\\n\\t\\t\\t@select=\"select\">\\n\\t\\t\\t<template #searchTemplate=\"slotProps\">\\n\\t\\t\\t\\t<NcTextField ref=\"search\"\\n\\t\\t\\t\\t\\tclass=\"search\"\\n\\t\\t\\t\\t\\t:value.sync=\"search\"\\n\\t\\t\\t\\t\\t:label=\"t(\\'Search\\')\"\\n\\t\\t\\t\\t\\t:label-visible=\"true\"\\n\\t\\t\\t\\t\\t:placeholder=\"i18n.search\"\\n\\t\\t\\t\\t\\ttrailing-button-icon=\"close\"\\n\\t\\t\\t\\t\\t:trailing-button-label=\"t(\\'Clear search\\')\"\\n\\t\\t\\t\\t\\t:show-trailing-button=\"search !== \\'\\'\"\\n\\t\\t\\t\\t\\t@trailing-button-click=\"clearSearch(); slotProps.onSearch(search);\"\\n\\t\\t\\t\\t\\t@update:value=\"slotProps.onSearch(search)\" />\\n\\t\\t\\t</template>\\n\\t\\t\\t<template v-if=\"allowUnselect && selectedEmoji\" #customCategory>\\n\\t\\t\\t\\t<div class=\"emoji-mart-category-label\">\\n\\t\\t\\t\\t\\t<h3 class=\"emoji-mart-category-label\">\\n\\t\\t\\t\\t\\t\\t{{ t(\\'Selected\\') }}\\n\\t\\t\\t\\t\\t</h3>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t<Emoji class=\"emoji-selected\"\\n\\t\\t\\t\\t\\t:data=\"emojiIndex\"\\n\\t\\t\\t\\t\\t:emoji=\"selectedEmoji\"\\n\\t\\t\\t\\t\\t:native=\"true\"\\n\\t\\t\\t\\t\\t:size=\"32\"\\n\\t\\t\\t\\t\\t@click=\"unselect\" />\\n\\t\\t\\t\\t<Emoji class=\"emoji-delete\"\\n\\t\\t\\t\\t\\t:data=\"emojiIndex\"\\n\\t\\t\\t\\t\\temoji=\":x:\"\\n\\t\\t\\t\\t\\t:native=\"true\"\\n\\t\\t\\t\\t\\t:size=\"10\"\\n\\t\\t\\t\\t\\t@click=\"unselect\" />\\n\\t\\t\\t</template>\\n\\t\\t</Picker>\\n\\t</NcPopover>\\n</template>\\n\\n<script>\\nimport NcPopover from \\'../NcPopover/index.js\\'\\nimport NcTextField from \\'../NcTextField/index.js\\'\\nimport { t } from \\'../../l10n.js\\'\\n\\nimport { Picker, Emoji, EmojiIndex } from \\'emoji-mart-vue-fast\\'\\nimport data from \\'emoji-mart-vue-fast/data/all.json\\'\\n\\n// Shared emoji index for all NcEmojiPicker instances\\n// Will be initialized on the first NcEmojiPicker creating\\nlet emojiIndex\\n\\nconst i18n = {\\n\\tsearch: t(\\'Search emoji\\'),\\n\\tnotfound: t(\\'No emoji found\\'),\\n\\tcategories: {\\n\\t\\tsearch: t(\\'Search results\\'),\\n\\t\\trecent: t(\\'Frequently used\\'),\\n\\t\\tsmileys: t(\\'Smileys & Emotion\\'),\\n\\t\\tpeople: t(\\'People & Body\\'),\\n\\t\\tnature: t(\\'Animals & Nature\\'),\\n\\t\\tfoods: t(\\'Food & Drink\\'),\\n\\t\\tactivity: t(\\'Activities\\'),\\n\\t\\tplaces: t(\\'Travel & Places\\'),\\n\\t\\tobjects: t(\\'Objects\\'),\\n\\t\\tsymbols: t(\\'Symbols\\'),\\n\\t\\tflags: t(\\'Flags\\'),\\n\\t\\tcustom: t(\\'Custom\\'),\\n\\t},\\n}\\n\\nexport default {\\n\\tname: \\'NcEmojiPicker\\',\\n\\tcomponents: {\\n\\t\\tNcPopover,\\n\\t\\tNcTextField,\\n\\t\\tEmoji,\\n\\t\\tPicker,\\n\\t},\\n\\tprops: {\\n\\t\\t/**\\n\\t\\t * The emoji-set\\n\\t\\t */\\n\\t\\tactiveSet: {\\n\\t\\t\\ttype: String,\\n\\t\\t\\tdefault: \\'native\\',\\n\\t\\t},\\n\\t\\t/**\\n\\t\\t * Show preview section when hovering emoji\\n\\t\\t */\\n\\t\\tshowPreview: {\\n\\t\\t\\ttype: Boolean,\\n\\t\\t\\tdefault: false,\\n\\t\\t},\\n\\t\\t/**\\n\\t\\t * Allow unselecting the selected emoji\\n\\t\\t */\\n\\t\\tallowUnselect: {\\n\\t\\t\\ttype: Boolean,\\n\\t\\t\\tdefault: false,\\n\\t\\t},\\n\\t\\t/**\\n\\t\\t * Selected emoji to allow unselecting\\n\\t\\t */\\n\\t\\tselectedEmoji: {\\n\\t\\t\\ttype: String,\\n\\t\\t\\tdefault: \\'\\',\\n\\t\\t},\\n\\t\\t/**\\n\\t\\t * The fallback emoji in the preview section\\n\\t\\t */\\n\\t\\tpreviewFallbackEmoji: {\\n\\t\\t\\ttype: String,\\n\\t\\t\\tdefault: \\'grinning\\',\\n\\t\\t},\\n\\t\\t/**\\n\\t\\t * The fallback text in the preview section\\n\\t\\t */\\n\\t\\tpreviewFallbackTitle: {\\n\\t\\t\\ttype: String,\\n\\t\\t\\tdefault: t(\\'Pick an emoji\\'),\\n\\t\\t},\\n\\t\\t/**\\n\\t\\t * Whether to close the emoji picker after picking one\\n\\t\\t */\\n\\t\\tcloseOnSelect: {\\n\\t\\t\\ttype: Boolean,\\n\\t\\t\\tdefault: true,\\n\\t\\t},\\n\\n\\t\\t/**\\n\\t\\t * Selector for the popover container\\n\\t\\t */\\n\\t\\tcontainer: {\\n\\t\\t\\ttype: [String, Object, Element, Boolean],\\n\\t\\t\\tdefault: \\'body\\',\\n\\t\\t},\\n\\t},\\n\\temits: [\\n\\t\\t\\'select\\',\\n\\t\\t\\'select-data\\',\\n\\t\\t\\'unselect\\',\\n\\t],\\n\\n\\tsetup() {\\n\\t\\t// If this is the first instance of NcEmojiPicker - setup EmojiIndex\\n\\t\\tif (!emojiIndex) {\\n\\t\\t\\temojiIndex = new EmojiIndex(data)\\n\\t\\t}\\n\\n\\t\\treturn {\\n\\t\\t\\t// Non-reactive constants\\n\\t\\t\\temojiIndex,\\n\\t\\t\\ti18n,\\n\\t\\t}\\n\\t},\\n\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tsearch: \\'\\',\\n\\t\\t\\topen: false,\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\tnative() {\\n\\t\\t\\treturn this.activeSet === \\'native\\'\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\tt,\\n\\n\\t\\tclearSearch() {\\n\\t\\t\\tthis.search = \\'\\'\\n\\t\\t\\tconst input = this.$refs.search?.$refs.inputField?.$refs.input\\n\\t\\t\\tif (input) {\\n\\t\\t\\t\\tinput.focus()\\n\\t\\t\\t}\\n\\t\\t},\\n\\n\\t\\tselect(emojiObject) {\\n\\t\\t\\t/**\\n\\t\\t\\t * Emits a string containing the emoji e.g. \\'👩🏿‍💻\\'\\n\\t\\t\\t */\\n\\t\\t\\tthis.$emit(\\'select\\', emojiObject.native)\\n\\n\\t\\t\\t/**\\n\\t\\t\\t * Emits a object with more data about the picked emoji\\n\\t\\t\\t */\\n\\t\\t\\tthis.$emit(\\'select-data\\', emojiObject)\\n\\n\\t\\t\\tif (this.closeOnSelect) {\\n\\t\\t\\t\\tthis.open = false\\n\\t\\t\\t}\\n\\t\\t},\\n\\n\\t\\tunselect() {\\n\\t\\t\\tthis.$emit(\\'unselect\\')\\n\\t\\t},\\n\\n\\t\\tafterShow() {\\n\\t\\t\\t// add focus trap in modal\\n\\t\\t\\tconst picker = this.$refs.picker\\n\\t\\t\\tpicker.$el.addEventListener(\\'keydown\\', this.checkKeyEvent)\\n\\n\\t\\t\\t// set focus on input search field\\n\\t\\t\\tconst input = this.$refs.search?.$refs.inputField?.$refs.input\\n\\t\\t\\tif (input) {\\n\\t\\t\\t\\tinput.focus()\\n\\t\\t\\t}\\n\\t\\t},\\n\\n\\t\\tafterHide() {\\n\\t\\t\\t// remove keydown listner if popover is hidden\\n\\t\\t\\tconst picker = this.$refs.picker\\n\\t\\t\\tpicker.$el.removeEventListener(\\'keydown\\', this.checkKeyEvent)\\n\\t\\t},\\n\\n\\t\\tcheckKeyEvent(event) {\\n\\t\\t\\tif (event.key !== \\'Tab\\') {\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\t\\t\\tconst picker = this.$refs.picker\\n\\t\\t\\tconst focusableList = picker.$el.querySelectorAll(\\n\\t\\t\\t\\t\\'button, input\\'\\n\\t\\t\\t)\\n\\t\\t\\tconst last = focusableList.length - 1\\n\\t\\t\\t// escape early if only 1 or no elements to focus\\n\\t\\t\\tif (focusableList.length <= 1) {\\n\\t\\t\\t\\tevent.preventDefault()\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\t\\t\\tif (event.shiftKey === false && event.target === focusableList[last]) {\\n\\t\\t\\t\\t// Jump to first item when pressing tab on the latest item\\n\\t\\t\\t\\tevent.preventDefault()\\n\\t\\t\\t\\tfocusableList[0].focus()\\n\\t\\t\\t} else if (event.shiftKey === true && event.target === focusableList[0]) {\\n\\t\\t\\t\\t// Jump to the last item if pressing shift+tab on the first item\\n\\t\\t\\t\\tevent.preventDefault()\\n\\t\\t\\t\\tfocusableList[last].focus()\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n}\\n<\\/script>\\n\\n<style lang=\"scss\">\\n@import \\'~emoji-mart-vue-fast/css/emoji-mart.css\\';\\n\\n.emoji-mart {\\n\\tbackground-color: var(--color-main-background) !important;\\n\\tborder: 0;\\n\\tcolor: var(--color-main-text) !important;\\n\\n\\t// default style reset\\n\\tbutton {\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tborder: none;\\n\\t\\tbackground: transparent;\\n\\t\\tfont-size: inherit;\\n\\t\\theight: 36px;\\n\\t\\twidth: auto;\\n\\n\\t\\t* {\\n\\t\\t\\tcursor: pointer !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.emoji-mart-bar,\\n\\t.emoji-mart-anchors,\\n\\t.emoji-mart-search,\\n\\t.emoji-mart-search input,\\n\\t.emoji-mart-category,\\n\\t.emoji-mart-category-label,\\n\\t.emoji-mart-category-label span,\\n\\t.emoji-mart-skin-swatches {\\n\\t\\tbackground-color: transparent !important;\\n\\t\\tborder-color: var(--color-border) !important;\\n\\t\\tcolor: inherit !important;\\n\\t}\\n\\n\\t.emoji-mart-search input:focus-visible {\\n\\t\\tbox-shadow: inset 0 0 0 2px var(--color-primary-element);\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t.emoji-mart-bar {\\n\\t\\t&:first-child {\\n\\t\\t\\tborder-top-left-radius: var(--border-radius) !important;\\n\\t\\t\\tborder-top-right-radius: var(--border-radius) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.emoji-mart-anchors {\\n\\t\\tbutton {\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t\\tpadding: 12px 4px;\\n\\t\\t\\theight: auto;\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\t/* box-shadow: inset 0 0 0 2px var(--color-primary-element); */\\n\\t\\t\\t\\toutline: 2px solid var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.emoji-mart-category {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tjustify-content: start;\\n\\n\\t\\t.emoji-mart-category-label,\\n\\t\\t.emoji-mart-emoji {\\n\\t\\t\\tuser-select: none;\\n\\t\\t\\tflex-grow: 0;\\n\\t\\t\\tflex-shrink: 0;\\n\\t\\t}\\n\\n\\t\\t.emoji-mart-category-label {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t\\tmargin: 0;\\n\\t\\t}\\n\\n\\t\\t.emoji-mart-emoji {\\n\\t\\t\\t// 8 emoji per row\\n\\t\\t\\tflex-basis: calc(100% / 8);\\n\\t\\t\\ttext-align: center;\\n\\n\\t\\t\\t&:hover::before,\\n\\t\\t\\t&.emoji-mart-emoji-selected::before{\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover) !important;\\n\\t\\t\\t\\toutline: 2px solid var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\tbutton {\\n\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\tborder: 2px solid var(--color-primary-element) !important;\\n\\t\\t\\t\\tborder-radius: 50%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n}\\n\\n.search {\\n\\tpadding: 0 8px 4px 8px;\\n\\t.input-field__label {\\n\\t\\t// Match styles in emoji-mart-vue-fast\\n\\t\\tpadding: 5px 4px;\\n\\t\\tfont-weight: 500;\\n\\t}\\n}\\n\\n</style>\\n\\n<style scoped>\\n.row-selected span {\\n\\tvertical-align: middle;\\n}\\n\\n.row-selected button {\\n\\tvertical-align: middle;\\n}\\n\\n.emoji-delete {\\n\\tvertical-align: top;\\n\\tmargin-left: -21px;\\n\\tmargin-top: -3px;\\n}\\n</style>\\n'],sourceRoot:\"\"}]);const s=o},8369:(t,e,n)=>{n.d(e,{Z:()=>s});var i=n(7537),a=n.n(i),r=n(3645),o=n.n(r)()(a());o.push([t.id,\"\\nbutton.menuitem[data-v-127b0c62] {\\n\\tborder-radius: var(--border-radius-large) !important;\\n\\ttext-align: left;\\n}\\nbutton.menuitem *[data-v-127b0c62] {\\n\\tcursor: pointer;\\n}\\nbutton.menuitem[data-v-127b0c62]:disabled {\\n\\topacity: 0.5 !important;\\n\\tcursor: default;\\n}\\nbutton.menuitem:disabled *[data-v-127b0c62] {\\n\\tcursor: default;\\n}\\n.menuitem.active[data-v-127b0c62] {\\n\\tborder-left: 4px solid var(--color-primary-element);\\n\\tborder-radius: 0 var(--border-radius-large) var(--border-radius-large) 0 !important;\\n}\\n\",\"\",{version:3,sources:[\"webpack://./src/components/NcPopoverMenu/NcPopoverMenuItem.vue\"],names:[],mappings:\";AAgYA;CACA,oDAAA;CACA,gBAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,uBAAA;CACA,eAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,mDAAA;CACA,mFAAA;AACA\",sourcesContent:['\\x3c!--\\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @author John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n --\\x3e\\n\\n<template>\\n\\t<li class=\"popover__menuitem\">\\n\\t\\t\\x3c!-- If item.href is set, a link will be directly used --\\x3e\\n\\t\\t<a v-if=\"item.href\"\\n\\t\\t\\t:href=\"(item.href) ? item.href : \\'#\\' \"\\n\\t\\t\\t:target=\"(item.target) ? item.target : \\'\\' \"\\n\\t\\t\\t:download=\"item.download\"\\n\\t\\t\\tclass=\"focusable\"\\n\\t\\t\\trel=\"nofollow noreferrer noopener\"\\n\\t\\t\\t@click=\"action\">\\n\\t\\t\\t<span v-if=\"!iconIsUrl\" :class=\"item.icon\" />\\n\\t\\t\\t<img v-else :src=\"item.icon\">\\n\\t\\t\\t<p v-if=\"item.text && item.longtext\">\\n\\t\\t\\t\\t<strong class=\"menuitem-text\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\"menuitem-text-detail\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\"item.text\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\"item.longtext\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</a>\\n\\n\\t\\t\\x3c!-- If item.input is set instead, an put will be used --\\x3e\\n\\t\\t<span v-else-if=\"item.input\" class=\"menuitem\" :class=\"{active: item.active}\">\\n\\t\\t\\t\\x3c!-- does not show if input is checkbox --\\x3e\\n\\t\\t\\t<span v-if=\"item.input !== \\'checkbox\\'\" :class=\"item.icon\" />\\n\\n\\t\\t\\t\\x3c!-- only shows if input is text --\\x3e\\n\\t\\t\\t<form v-if=\"item.input === \\'text\\'\"\\n\\t\\t\\t\\t:class=\"item.input\"\\n\\t\\t\\t\\t@submit.prevent=\"item.action\">\\n\\t\\t\\t\\t<input :type=\"item.input\"\\n\\t\\t\\t\\t\\t:value=\"item.value\"\\n\\t\\t\\t\\t\\t:placeholder=\"item.text\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<input type=\"submit\" value=\"\" class=\"icon-confirm\">\\n\\t\\t\\t</form>\\n\\n\\t\\t\\t\\x3c!-- checkbox --\\x3e\\n\\t\\t\\t<template v-else>\\n\\t\\t\\t\\t\\x3c!-- eslint-disable-next-line --\\x3e\\n\\t\\t\\t\\t<input :id=\"key\" v-model=\"item.model\"\\n\\t\\t\\t\\t\\t:type=\"item.input\"\\n\\t\\t\\t\\t\\t:class=\"item.input\"\\n\\t\\t\\t\\t\\t@change=\"item.action\">\\n\\t\\t\\t\\t<label :for=\"key\" @click.stop.prevent=\"item.action\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</label>\\n\\t\\t\\t</template>\\n\\t\\t</span>\\n\\n\\t\\t\\x3c!-- If item.action is set instead, a button will be used --\\x3e\\n\\t\\t<button v-else-if=\"item.action\"\\n\\t\\t\\tclass=\"menuitem focusable\"\\n\\t\\t\\t:class=\"{active: item.active}\"\\n\\t\\t\\t:disabled=\"item.disabled\"\\n\\t\\t\\ttype=\"button\"\\n\\t\\t\\t@click.stop.prevent=\"item.action\">\\n\\t\\t\\t<span :class=\"item.icon\" />\\n\\t\\t\\t<p v-if=\"item.text && item.longtext\">\\n\\t\\t\\t\\t<strong class=\"menuitem-text\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\"menuitem-text-detail\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\"item.text\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\"item.longtext\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</button>\\n\\n\\t\\t\\x3c!-- If item.longtext is set AND the item does not have an action --\\x3e\\n\\t\\t<span v-else class=\"menuitem\" :class=\"{active: item.active}\">\\n\\t\\t\\t<span :class=\"item.icon\" />\\n\\t\\t\\t<p v-if=\"item.text && item.longtext\">\\n\\t\\t\\t\\t<strong class=\"menuitem-text\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\"menuitem-text-detail\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\"item.text\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\"item.longtext\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</span>\\n\\t</li>\\n</template>\\n\\n<script>\\nexport default {\\n\\tname: \\'NcPopoverMenuItem\\',\\n\\tprops: {\\n\\t\\titem: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: true,\\n\\t\\t\\tdefault: () => {\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tkey: \\'nextcloud-link\\',\\n\\t\\t\\t\\t\\thref: \\'https://nextcloud.com\\',\\n\\t\\t\\t\\t\\ticon: \\'icon-links\\',\\n\\t\\t\\t\\t\\ttext: \\'Nextcloud\\',\\n\\t\\t\\t\\t}\\n\\t\\t\\t},\\n\\t\\t\\t// check the input types\\n\\t\\t\\t// TODO: add more validation of types\\n\\t\\t\\tvalidator: item => {\\n\\t\\t\\t\\t// TODO: support radio\\n\\t\\t\\t\\tif (item.input) {\\n\\t\\t\\t\\t\\treturn [\\'text\\', \\'checkbox\\'].indexOf(item.input) !== -1\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\treturn true\\n\\t\\t\\t},\\n\\t\\t},\\n\\t},\\n\\tcomputed: {\\n\\t\\t// random key for inputs binding if not provided\\n\\t\\tkey() {\\n\\t\\t\\treturn this.item.key\\n\\t\\t\\t\\t? this.item.key\\n\\t\\t\\t\\t: Math.round(Math.random() * 16 * 1000000).toString(16)\\n\\t\\t},\\n\\t\\ticonIsUrl() {\\n\\t\\t\\ttry {\\n\\t\\t\\t\\t// eslint-disable-next-line no-new\\n\\t\\t\\t\\tnew URL(this.item.icon)\\n\\t\\t\\t\\treturn true\\n\\t\\t\\t} catch (_) {\\n\\t\\t\\t\\treturn false\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\t// allow us to use both link and an action on `a`\\n\\t\\t// we still need to make sure item.action exists\\n\\t\\taction(event) {\\n\\t\\t\\tif (this.item.action) {\\n\\t\\t\\t\\tthis.item.action(event)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n}\\n<\\/script>\\n\\n<style scoped>\\n\\tbutton.menuitem {\\n\\t\\tborder-radius: var(--border-radius-large) !important;\\n\\t\\ttext-align: left;\\n\\t}\\n\\n\\tbutton.menuitem * {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\n\\tbutton.menuitem:disabled {\\n\\t\\topacity: 0.5 !important;\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\tbutton.menuitem:disabled * {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t.menuitem.active {\\n\\t\\tborder-left: 4px solid var(--color-primary-element);\\n\\t\\tborder-radius: 0 var(--border-radius-large) var(--border-radius-large) 0 !important;\\n\\t}\\n</style>\\n\\n<style lang=\"scss\" scoped>\\nli {\\n\\tdisplay: flex;\\n\\tflex: 0 0 auto;\\n\\n\\t&.hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t> button,\\n\\t> a,\\n\\t> .menuitem {\\n\\t\\tcursor: pointer;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder: 0;\\n\\t\\tbackground-color: transparent;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tfont-weight: normal;\\n\\t\\tbox-shadow: none;\\n\\t\\twidth: 100%;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\twhite-space: nowrap;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t// TODO split into individual components for readability\\n\\t\\tspan[class^=\\'icon-\\'],\\n\\t\\tspan[class*=\\' icon-\\'],\\n\\t\\t&[class^=\\'icon-\\'],\\n\\t\\t&[class*=\\' icon-\\'] {\\n\\t\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\t\\tmin-height: 0;\\n\\t\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t}\\n\\n\\t\\tspan[class^=\\'icon-\\'],\\n\\t\\tspan[class*=\\' icon-\\'] {\\n\\t\\t\\t/* Keep padding to define the width to\\n\\t\\t\\t\\tassure correct position of a possible text */\\n\\t\\t\\tpadding: #{math.div($clickable-area, 2)} 0 #{math.div($clickable-area, 2)} $clickable-area;\\n\\t\\t}\\n\\n\\t\\t// If no icons set, force left margin to align\\n\\t\\t&:not([class^=\\'icon-\\']):not([class*=\\'icon-\\']) {\\n\\t\\t\\t> span,\\n\\t\\t\\t> input,\\n\\t\\t\\t> form {\\n\\t\\t\\t\\t&:not([class^=\\'icon-\\']):not([class*=\\'icon-\\']):first-child {\\n\\t\\t\\t\\t\\tmargin-left: $clickable-area;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&[class^=\\'icon-\\'],\\n\\t\\t&[class*=\\' icon-\\'] {\\n\\t\\t\\tpadding: 0 $icon-margin 0 $clickable-area;\\n\\t\\t}\\n\\n\\t\\t&:not(:disabled):hover,\\n\\t\\t&:not(:disabled):focus,\\n\\t\\t&:not(:disabled).active {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t}\\n\\n\\t\\t/* prevent .action class to break the design */\\n\\t\\t&.action {\\n\\t\\t\\tpadding: inherit !important;\\n\\t\\t}\\n\\n\\t\\t> span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\t> p {\\n\\t\\t\\twidth: 150px;\\n\\t\\t\\tline-height: 1.6em;\\n\\t\\t\\tpadding: 8px 0;\\n\\t\\t\\twhite-space: normal;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t// TODO: do we really supports it?\\n\\t\\t> select {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tmargin-left: 6px;\\n\\t\\t}\\n\\n\\t\\t/* Add padding if contains icon+text */\\n\\t\\t&:not(:empty) {\\n\\t\\t\\tpadding-right: $icon-margin !important;\\n\\t\\t}\\n\\n\\t\\t/* DEPRECATED! old img in popover fallback\\n\\t\\t\\t* TODO: to remove */\\n\\t\\t> img {\\n\\t\\t\\twidth: $icon-size;\\n\\t\\t\\theight: $icon-size;\\n\\t\\t\\tmargin: $icon-margin;\\n\\t\\t}\\n\\n\\t\\t/* checkbox/radio fixes */\\n\\t\\t> input.radio + label,\\n\\t\\t> input.checkbox + label {\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t\\t> input.checkbox + label::before {\\n\\t\\t\\tmargin: -2px 13px 0;\\n\\t\\t}\\n\\t\\t> input.radio + label::before {\\n\\t\\t\\tmargin: -2px 12px 0;\\n\\t\\t}\\n\\t\\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\\n\\t\\t\\twidth: 150px;\\n\\t\\t}\\n\\n\\t\\t// Forms & text inputs\\n\\t\\tform {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t/* put a small space between text and form\\n\\t\\t\\t\\tif there is an element before */\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* no margin if hidden span before */\\n\\t\\t> span.hidden + form,\\n\\t\\t> span[style*=\\'display:none\\'] + form {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\t\\t/* Inputs inside popover supports text, submit & reset */\\n\\t\\tinput {\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\\n\\t\\t\\tmargin: 2px 0;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t// space between inline inputs\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: do that in js, should be cleaner\\n\\t/* css hack, only first not hidden */\\n\\t&:not(.hidden):not([style*=\\'display:none\\']) {\\n\\t\\t&:first-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-top: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-bottom: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t> button {\\n\\t\\tpadding: 0;\\n\\t\\tspan {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n</style>\\n'],sourceRoot:\"\"}]);const s=o},3645:t=>{t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=\"\",i=void 0!==e[5];return e[4]&&(n+=\"@supports (\".concat(e[4],\") {\")),e[2]&&(n+=\"@media \".concat(e[2],\" {\")),i&&(n+=\"@layer\".concat(e[5].length>0?\" \".concat(e[5]):\"\",\" {\")),n+=t(e),i&&(n+=\"}\"),e[2]&&(n+=\"}\"),e[4]&&(n+=\"}\"),n})).join(\"\")},e.i=function(t,n,i,a,r){\"string\"==typeof t&&(t=[[null,t,void 0]]);var o={};if(i)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(o[l]=!0)}for(var A=0;A<t.length;A++){var c=[].concat(t[A]);i&&o[c[0]]||(void 0!==r&&(void 0===c[5]||(c[1]=\"@layer\".concat(c[5].length>0?\" \".concat(c[5]):\"\",\" {\").concat(c[1],\"}\")),c[5]=r),n&&(c[2]?(c[1]=\"@media \".concat(c[2],\" {\").concat(c[1],\"}\"),c[2]=n):c[2]=n),a&&(c[4]?(c[1]=\"@supports (\".concat(c[4],\") {\").concat(c[1],\"}\"),c[4]=a):c[4]=\"\".concat(a)),e.push(c))}},e}},1667:t=>{t.exports=function(t,e){return e||(e={}),t?(t=String(t.__esModule?t.default:t),/^['\"].*['\"]$/.test(t)&&(t=t.slice(1,-1)),e.hash&&(t+=e.hash),/[\"'() \\t\\n]|(%20)/.test(t)||e.needQuotes?'\"'.concat(t.replace(/\"/g,'\\\\\"').replace(/\\n/g,\"\\\\n\"),'\"'):t):t}},7537:t=>{t.exports=function(t){var e=t[1],n=t[3];if(!n)return e;if(\"function\"==typeof btoa){var i=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),a=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(i),r=\"/*# \".concat(a,\" */\");return[e].concat([r]).join(\"\\n\")}return[e].join(\"\\n\")}},3379:t=>{var e=[];function n(t){for(var n=-1,i=0;i<e.length;i++)if(e[i].identifier===t){n=i;break}return n}function i(t,i){for(var r={},o=[],s=0;s<t.length;s++){var l=t[s],A=i.base?l[0]+i.base:l[0],c=r[A]||0,d=\"\".concat(A,\" \").concat(c);r[A]=c+1;var p=n(d),u={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==p)e[p].references++,e[p].updater(u);else{var m=a(u,i);i.byIndex=s,e.splice(s,0,{identifier:d,updater:m,references:1})}o.push(d)}return o}function a(t,e){var n=e.domAPI(e);n.update(t);return function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;n.update(t=e)}else n.remove()}}t.exports=function(t,a){var r=i(t=t||[],a=a||{});return function(t){t=t||[];for(var o=0;o<r.length;o++){var s=n(r[o]);e[s].references--}for(var l=i(t,a),A=0;A<r.length;A++){var c=n(r[A]);0===e[c].references&&(e[c].updater(),e.splice(c,1))}r=l}}},569:t=>{var e={};t.exports=function(t,n){var i=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!i)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");i.appendChild(n)}},9216:t=>{t.exports=function(t){var e=document.createElement(\"style\");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},3565:(t,e,n)=>{t.exports=function(t){var e=n.nc;e&&t.setAttribute(\"nonce\",e)}},7795:t=>{t.exports=function(t){if(\"undefined\"==typeof document)return{update:function(){},remove:function(){}};var e=t.insertStyleElement(t);return{update:function(n){!function(t,e,n){var i=\"\";n.supports&&(i+=\"@supports (\".concat(n.supports,\") {\")),n.media&&(i+=\"@media \".concat(n.media,\" {\"));var a=void 0!==n.layer;a&&(i+=\"@layer\".concat(n.layer.length>0?\" \".concat(n.layer):\"\",\" {\")),i+=n.css,a&&(i+=\"}\"),n.media&&(i+=\"}\"),n.supports&&(i+=\"}\");var r=n.sourceMap;r&&\"undefined\"!=typeof btoa&&(i+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r)))),\" */\")),e.styleTagTransform(i,t,e.options)}(e,t,n)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},4589:t=>{t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},4216:()=>{},6861:()=>{},1904:()=>{},8306:()=>{},9686:()=>{},9158:()=>{},9157:()=>{},3179:()=>{},5727:()=>{},2893:()=>{},6313:()=>{},5706:()=>{},1358:()=>{},2720:()=>{},3789:()=>{},8686:()=>{},7499:()=>{},9297:()=>{},7984:()=>{},2112:()=>{},3051:()=>{},6591:()=>{},1753:()=>{},2102:()=>{},3768:()=>{},1554:()=>{},1152:()=>{},7633:()=>{},5671:()=>{},4084:()=>{},8795:()=>{},8538:()=>{},882:()=>{},9258:()=>{},7009:()=>{},156:()=>{},6274:()=>{},1287:()=>{},4348:()=>{},1560:()=>{},8488:()=>{},9280:()=>{},9989:()=>{},6049:()=>{},6448:()=>{},3464:()=>{},6239:()=>{},2405:()=>{},1174:()=>{},8070:()=>{},8385:()=>{},2272:()=>{},3407:()=>{},9454:()=>{},8220:()=>{},4076:()=>{},3849:()=>{},5439:()=>{},189:()=>{},3578:()=>{},7127:t=>{t.exports=\"data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTS00LTRoMjR2MjRILTR6Ii8+PHBhdGggZD0iTTYuOS4xQzMgLjYtLjEgNC0uMSA4YzAgNC40IDMuNiA4IDggOCA0IDAgNy40LTMgOC02LjktMS4yIDEuMy0yLjkgMi4xLTQuNyAyLjEtMy41IDAtNi40LTIuOS02LjQtNi40IDAtMS45LjgtMy42IDIuMS00Ljd6IiBmaWxsPSIjZjRhMzMxIi8+PC9zdmc+Cg==\"},2605:t=>{t.exports=\"data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTS00LTRoMjR2MjRILTRWLTR6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTggMEMzLjYgMCAwIDMuNiAwIDhzMy42IDggOCA4IDgtMy42IDgtOC0zLjYtOC04LTh6IiBmaWxsPSIjZWQ0ODRjIi8+PHBhdGggZD0iTTUgNi41aDZjLjggMCAxLjUuNyAxLjUgMS41cy0uNyAxLjUtMS41IDEuNUg1Yy0uOCAwLTEuNS0uNy0xLjUtMS41UzQuMiA2LjUgNSA2LjV6IiBmaWxsPSIjZmRmZmZmIi8+PC9zdmc+Cg==\"},3423:t=>{t.exports=\"data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTQuOCAxMS4yaDYuNFY0LjhINC44djYuNHpNOCAwQzMuNiAwIDAgMy42IDAgOHMzLjYgOCA4IDggOC0zLjYgOC04LTMuNi04LTgtOHoiIGZpbGw9IiM0OWIzODIiLz48L3N2Zz4K\"},6417:t=>{t.exports=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iIzIyMiI+PHBhdGggZD0iTTE4LjQgNy40TDE3IDZsLTYgNiA2IDYgMS40LTEuNC00LjYtNC42IDQuNi00LjZtLTYgMEwxMSA2bC02IDYgNiA2IDEuNC0xLjRMNy44IDEybDQuNi00LjZ6Ii8+PC9zdmc+\"},5415:t=>{t.exports=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iIzIyMiI+PHBhdGggZD0iTTUuNiA3LjRMNyA2bDYgNi02IDYtMS40LTEuNCA0LjYtNC42LTQuNi00LjZtNiAwTDEzIDZsNiA2LTYgNi0xLjQtMS40IDQuNi00LjYtNC42LTQuNnoiLz48L3N2Zz4=\"},817:t=>{t.exports=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iIzIyMiI+PHBhdGggZD0iTTE1LjQgMTYuNkwxMC44IDEybDQuNi00LjZMMTQgNmwtNiA2IDYgNiAxLjQtMS40eiIvPjwvc3ZnPg==\"},3787:t=>{t.exports=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iIzIyMiI+PHBhdGggZD0iTTguNiAxNi42bDQuNi00LjYtNC42LTQuNkwxMCA2bDYgNi02IDYtMS40LTEuNHoiLz48L3N2Zz4=\"}},e={};function n(i){var a=e[i];if(void 0!==a)return a.exports;var r=e[i]={id:i,exports:{}};return t[i](r,r.exports,n),r.exports}n.m=t,n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.b=document.baseURI||self.location.href,n.nc=void 0;var i={};(()=>{n.d(i,{TO:()=>hs,zR:()=>gs,Js:()=>D,xQ:()=>_,uy:()=>L,Bt:()=>q,Iw:()=>ji,ih:()=>Qi,Iz:()=>na,xU:()=>oa,rr:()=>va,L1:()=>ya,L_:()=>Ra,O3:()=>ga,Mb:()=>Qa,ZJ:()=>Ka,Yx:()=>Va,yS:()=>dr,ZL:()=>Tr,_I:()=>Sr,eq:()=>Br,tn:()=>io,hX:()=>co,zQ:()=>To,AR:()=>yo,NI:()=>wo,MX:()=>Xo,V$:()=>is,Xu:()=>Ns,j1:()=>_s,Mv:()=>$c,Xn:()=>ze,$U:()=>Ls,fg:()=>Js,P2:()=>si,rw:()=>El,m:()=>_l,qF:()=>Ll,JN:()=>Wl,YJ:()=>sA,_2:()=>tA,kC:()=>Kn,P4:()=>$n,Xo:()=>fA,SL:()=>ms,I6:()=>FA,ar:()=>YA,nR:()=>bt,FK:()=>Xe,hx:()=>PA,Ic:()=>ln,lb:()=>Xt,lQ:()=>me,Jc:()=>Ho,Z2:()=>tc,qH:()=>sc,qf:()=>vc,pS:()=>Di,Fh:()=>Ot,Rs:()=>Ht,Tz:()=>kc,wQ:()=>Yc,Xj:()=>Np,rE:()=>gp,id:()=>Op,QG:()=>Cn,iR:()=>$p,gE:()=>Qp,h3:()=>Zi,cY:()=>En,uq:()=>iu,u:()=>Oa,BW:()=>oe,Ry:()=>Uc,Kn:()=>jc,gP:()=>au,rm:()=>se,tq:()=>Ae,bf:()=>De,iQ:()=>Re,s9:()=>re});const t=require(\"vue\");var e=n.n(t);const a={before(){this.$slots.default&&\"\"!==this.text.trim()||(e().util.warn(\"\".concat(this.$options.name,\" cannot be empty and requires a meaningful text content\"),this),this.$destroy(),this.$el.remove())},beforeUpdate(){this.text=this.getText()},data(){return{text:this.getText()}},computed:{isLongText(){return this.text&&this.text.trim().length>20}},methods:{getText(){return this.$slots.default?this.$slots.default[0].text.trim():\"\"}}},r=function(t,e){let n=t.$parent;for(;n;){if(n.$options.name===e)return n;n=n.$parent}},o={mixins:[a],props:{icon:{type:String,default:\"\"},name:{type:String,default:null},title:{type:String,default:\"\"},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:\"\"},ariaHidden:{type:Boolean,default:null}},emits:[\"click\"],computed:{nameTitleFallback(){return null===this.name&&this.title?(console.warn(\"The `title` prop was renamed. Please use the `name` prop instead if you intend to set the main content text.\"),this.title):this.name},isIconUrl(){try{return new URL(this.icon)}catch(t){return!1}}},methods:{onClick(t){if(this.$emit(\"click\",t),this.closeAfterClick){const t=r(this,\"NcActions\");t&&t.closeMenu&&t.closeMenu(!1)}}}},s={name:\"NcActionButton\",mixins:[o],props:{disabled:{type:Boolean,default:!1},ariaHidden:{type:Boolean,default:null}},computed:{isFocusable(){return!this.disabled}}};var l=n(3379),A=n.n(l),c=n(7795),d=n.n(c),p=n(569),u=n.n(p),m=n(3565),h=n.n(m),g=n(9216),C=n.n(g),T=n(4589),b=n.n(T),v=n(3100),f={};f.styleTagTransform=b(),f.setAttributes=h(),f.insert=u().bind(null,\"head\"),f.domAPI=d(),f.insertStyleElement=C();A()(v.Z,f);v.Z&&v.Z.locals&&v.Z.locals;function E(t,e,n,i,a,r,o,s){var l,A=\"function\"==typeof t?t.options:t;if(e&&(A.render=e,A.staticRenderFns=n,A._compiled=!0),i&&(A.functional=!0),r&&(A._scopeId=\"data-v-\"+r),o?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},A._ssrRegister=l):a&&(l=s?function(){a.call(this,(A.functional?this.parent:this).$root.$options.shadowRoot)}:a),l)if(A.functional){A._injectStyles=l;var c=A.render;A.render=function(t,e){return l.call(e),c(t,e)}}else{var d=A.beforeCreate;A.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:A}}var x=n(4216),y=n.n(x),S=E(s,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"action\",class:{\"action--disabled\":t.disabled},attrs:{role:\"presentation\"}},[e(\"button\",{staticClass:\"action-button\",class:{focusable:t.isFocusable},attrs:{\"aria-label\":t.ariaLabel,title:t.title,role:\"menuitem\",type:\"button\"},on:{click:t.onClick}},[t._t(\"icon\",(function(){return[e(\"span\",{staticClass:\"action-button__icon\",class:[t.isIconUrl?\"action-button__icon--url\":t.icon],style:{backgroundImage:t.isIconUrl?\"url(\".concat(t.icon,\")\"):null},attrs:{\"aria-hidden\":t.ariaHidden}})]})),t._v(\" \"),t.nameTitleFallback?e(\"p\",[e(\"strong\",{staticClass:\"action-button__title\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.nameTitleFallback)+\"\\n\\t\\t\\t\")]),t._v(\" \"),e(\"br\"),t._v(\" \"),e(\"span\",{staticClass:\"action-button__longtext\",domProps:{textContent:t._s(t.text)}})]):t.isLongText?e(\"p\",{staticClass:\"action-button__longtext\",domProps:{textContent:t._s(t.text)}}):e(\"span\",{staticClass:\"action-button__text\"},[t._v(t._s(t.text))]),t._v(\" \"),t._e()],2)])}),[],!1,null,\"1418d792\",null);\"function\"==typeof y()&&y()(S);const D=S.exports;const k=(0,t.defineComponent)({name:\"NcActionButtonGroup\",props:{title:{required:!1,default:void 0,type:String}}});var w=n(8584),N={};N.styleTagTransform=b(),N.setAttributes=h(),N.insert=u().bind(null,\"head\"),N.domAPI=d(),N.insertStyleElement=C();A()(w.Z,N);w.Z&&w.Z.locals&&w.Z.locals;var F=n(6861),R=n.n(F),B=E(k,(function(){var t=this,e=t._self._c;t._self._setupProxy;return e(\"li\",{staticClass:\"nc-button-group-base\"},[t.title?e(\"div\",[t._v(\"\\n\\t\\t\"+t._s(t.title)+\"\\n\\t\")]):t._e(),t._v(\" \"),e(\"ul\",{staticClass:\"nc-button-group-content\"},[t._t(\"default\")],2)])}),[],!1,null,null,null);\"function\"==typeof R()&&R()(B);const _=B.exports;const O={name:\"NcActionCaption\",props:{title:{type:String,required:!0}}};var Z=n(7264),M={};M.styleTagTransform=b(),M.setAttributes=h(),M.insert=u().bind(null,\"head\"),M.domAPI=d(),M.insertStyleElement=C();A()(Z.Z,M);Z.Z&&Z.Z.locals&&Z.Z.locals;var Y=n(1904),I=n.n(Y),G=E(O,(function(){var t=this;return(0,t._self._c)(\"li\",{staticClass:\"app-navigation-caption\"},[t._v(\"\\n\\t\"+t._s(t.title)+\"\\n\")])}),[],!1,null,\"fd7dc03c\",null);\"function\"==typeof I()&&I()(G);const L=G.exports;const $=t=>Math.random().toString(36).replace(/[^a-z]+/g,\"\").slice(0,t||5),j={name:\"NcActionCheckbox\",mixins:[a],props:{id:{type:String,default:()=>\"action-\"+$(),validator:t=>\"\"!==t.trim()},checked:{type:Boolean,default:!1},value:{type:[String,Number],default:\"\"},disabled:{type:Boolean,default:!1}},emits:[\"change\",\"check\",\"uncheck\",\"update:checked\"],computed:{isFocusable(){return!this.disabled}},methods:{checkInput(t){this.$refs.label.click()},onChange(t){this.$emit(\"update:checked\",this.$refs.checkbox.checked),this.$emit(\"change\",t),this.$refs.checkbox.checked?this.$emit(\"check\"):this.$emit(\"uncheck\")}}};var U=n(8666),P={};P.styleTagTransform=b(),P.setAttributes=h(),P.insert=u().bind(null,\"head\"),P.domAPI=d(),P.insertStyleElement=C();A()(U.Z,P);U.Z&&U.Z.locals&&U.Z.locals;var z=n(8306),H=n.n(z),W=E(j,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"action\",class:{\"action--disabled\":t.disabled}},[e(\"span\",{staticClass:\"action-checkbox\"},[e(\"input\",{ref:\"checkbox\",staticClass:\"checkbox action-checkbox__checkbox\",class:{focusable:t.isFocusable},attrs:{id:t.id,disabled:t.disabled,type:\"checkbox\"},domProps:{checked:t.checked,value:t.value},on:{keydown:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:(e.preventDefault(),t.checkInput.apply(null,arguments))},change:t.onChange}}),t._v(\" \"),e(\"label\",{ref:\"label\",staticClass:\"action-checkbox__label\",attrs:{for:t.id}},[t._v(t._s(t.text))]),t._v(\" \"),t._e()],2)])}),[],!1,null,\"e50b8bcc\",null);\"function\"==typeof H()&&H()(W);const q=W.exports;var Q=n(9934),K={};K.styleTagTransform=b(),K.setAttributes=h(),K.insert=u().bind(null,\"head\"),K.domAPI=d(),K.insertStyleElement=C();A()(Q.Z,K);Q.Z&&Q.Z.locals&&Q.Z.locals;const V=(0,require(\"@nextcloud/l10n/gettext\").getGettextBuilder)().detectLocale();[{locale:\"ar\",translations:{\"{tag} (invisible)\":\"{tag} (غير مرئي)\",\"{tag} (restricted)\":\"{tag} (مُقيّد)\",Actions:\"إجراءات\",Activities:\"الحركات\",\"Animals & Nature\":\"الحيوانات والطبيعة\",\"Anything shared with the same group of people will show up here\":\"أي مادة تمت مشاركتها مع نفس المجموعة من الأشخاص سيتم عرضها هنا\",\"Avatar of {displayName}\":\"الرمز التجسيدي avatar لــ {displayName} \",\"Avatar of {displayName}, {status}\":\"الرمز التجسيدي avatar لــ {displayName}، {status}\",\"Cancel changes\":\"إلغاء التغييرات\",\"Change title\":\"تغيير العنوان\",Choose:\"إختَر\",\"Clear text\":\"مَحْوُ النص\",Close:\"أغلِق\",\"Close modal\":\"أغلِق النافذة الصُّورِية\",\"Close navigation\":\"أغلِق المُتصفِّح\",\"Close sidebar\":\"قفل الشريط الجانبي\",\"Confirm changes\":\"تأكيد التغييرات\",Custom:\"مُخصَّص\",\"Edit item\":\"تعديل عنصر\",\"Error getting related resources\":\"خطأ في تحصيل مصادر ذات صلة\",\"External documentation for {title}\":\"الوثائق الخارجية لـ{title}\",Favorite:\"المُفضَّلة\",Flags:\"الأعلام\",\"Food & Drink\":\"الطعام والشراب\",\"Frequently used\":\"شائعة الاستعمال\",Global:\"شامل\",\"Go back to the list\":\"عودة إلى القائمة\",\"Hide password\":\"إخفاء كلمة المرور\",\"Message limit of {count} characters reached\":\"تمّ الوصول إلى الحد الأقصى لعدد الأحرف في الرسالة: {count} حرف\",\"More items …\":\"عناصر أخرى ...\",Next:\"التالي\",\"No emoji found\":\"لم يتم العثور على أي إيموجي emoji\",\"No results\":\"ليس هناك أية نتيجة\",Objects:\"أشياء\",Open:\"فتح\",'Open link to \"{resourceTitle}\"':'فتح رابط إلى \"{resourceTitle}\"',\"Open navigation\":\"إفتَح المتصفح\",\"Password is secure\":\"كلمة المرور مُؤمّنة\",\"Pause slideshow\":\"تجميد عرض الشرائح\",\"People & Body\":\"ناس و أجسام\",\"Pick an emoji\":\"إختَر رمز إيموجي emoji\",\"Please select a time zone:\":\"الرجاء تحديد المنطقة الزمنية:\",Previous:\"السابق\",\"Related resources\":\"مصادر ذات صلة\",Search:\"بحث\",\"Search results\":\"نتائج البحث\",\"Select a tag\":\"إختَر سِمَةً tag\",Settings:\"الإعدادات\",\"Settings navigation\":\"إعدادات التّصفُّح\",\"Show password\":\"أظهِر كلمة المرور\",\"Smileys & Emotion\":\"وجوهٌ ضاحكة و مشاعر\",\"Start slideshow\":\"إبدإ العرض\",Submit:\"إرسال\",Symbols:\"رموز\",\"Travel & Places\":\"سفر و أماكن\",\"Type to search time zone\":\"أكتُب للبحث عن منطقة زمنية\",\"Unable to search the group\":\"تعذّر البحث في المجموعة\",\"Undo changes\":\"تراجَع عن التغييرات\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"اكتب رسالة، @ للإشارة إلى شخص ما، : للإكمال التلقائي للرموز التعبيرية ...\"}},{locale:\"br\",translations:{\"{tag} (invisible)\":\"{tag} (diwelus)\",\"{tag} (restricted)\":\"{tag} (bevennet)\",Actions:\"Oberioù\",Activities:\"Oberiantizoù\",\"Animals & Nature\":\"Loened & Natur\",Choose:\"Dibab\",Close:\"Serriñ\",Custom:\"Personelañ\",Flags:\"Bannieloù\",\"Food & Drink\":\"Boued & Evajoù\",\"Frequently used\":\"Implijet alies\",Next:\"Da heul\",\"No emoji found\":\"Emoji ebet kavet\",\"No results\":\"Disoc'h ebet\",Objects:\"Traoù\",\"Pause slideshow\":\"Arsav an diaporama\",\"People & Body\":\"Tud & Korf\",\"Pick an emoji\":\"Choaz un emoji\",Previous:\"A-raok\",Search:\"Klask\",\"Search results\":\"Disoc'hoù an enklask\",\"Select a tag\":\"Choaz ur c'hlav\",Settings:\"Arventennoù\",\"Smileys & Emotion\":\"Smileyioù & Fromoù\",\"Start slideshow\":\"Kregiñ an diaporama\",Symbols:\"Arouezioù\",\"Travel & Places\":\"Beaj & Lec'hioù\",\"Unable to search the group\":\"Dibosupl eo klask ar strollad\"}},{locale:\"ca\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restringit)\",Actions:\"Accions\",Activities:\"Activitats\",\"Animals & Nature\":\"Animals i natura\",\"Anything shared with the same group of people will show up here\":\"Qualsevol cosa compartida amb el mateix grup de persones es mostrarà aquí\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",\"Cancel changes\":\"Cancel·la els canvis\",\"Change title\":\"Canviar títol\",Choose:\"Tria\",\"Clear text\":\"Netejar text\",Close:\"Tanca\",\"Close modal\":\"Tancar el mode\",\"Close navigation\":\"Tanca la navegació\",\"Close sidebar\":\"Tancar la barra lateral\",\"Confirm changes\":\"Confirmeu els canvis\",Custom:\"Personalitzat\",\"Edit item\":\"Edita l'element\",\"Error getting related resources\":\"Error obtenint els recursos relacionats\",\"Error parsing svg\":\"Error en l'anàlisi del svg\",\"External documentation for {title}\":\"Documentació externa per a {title}\",Favorite:\"Preferit\",Flags:\"Marques\",\"Food & Drink\":\"Menjar i begudes\",\"Frequently used\":\"Utilitzats recentment\",Global:\"Global\",\"Go back to the list\":\"Torna a la llista\",\"Hide password\":\"Amagar contrasenya\",\"Message limit of {count} characters reached\":\"S'ha arribat al límit de {count} caràcters per missatge\",\"More items …\":\"Més artícles...\",Next:\"Següent\",\"No emoji found\":\"No s'ha trobat cap emoji\",\"No results\":\"Sense resultats\",Objects:\"Objectes\",Open:\"Obrir\",'Open link to \"{resourceTitle}\"':'Obrir enllaç a \"{resourceTitle}\"',\"Open navigation\":\"Obre la navegació\",\"Password is secure\":\"Contrasenya segura<br>\",\"Pause slideshow\":\"Atura la presentació\",\"People & Body\":\"Persones i cos\",\"Pick an emoji\":\"Trieu un emoji\",\"Please select a time zone:\":\"Seleccioneu una zona horària:\",Previous:\"Anterior\",\"Related resources\":\"Recursos relacionats\",Search:\"Cerca\",\"Search results\":\"Resultats de cerca\",\"Select a tag\":\"Seleccioneu una etiqueta\",Settings:\"Paràmetres\",\"Settings navigation\":\"Navegació d'opcions\",\"Show password\":\"Mostrar contrasenya\",\"Smileys & Emotion\":\"Cares i emocions\",\"Start slideshow\":\"Inicia la presentació\",Submit:\"Envia\",Symbols:\"Símbols\",\"Travel & Places\":\"Viatges i llocs\",\"Type to search time zone\":\"Escriviu per cercar la zona horària\",\"Unable to search the group\":\"No es pot cercar el grup\",\"Undo changes\":\"Desfés els canvis\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Escriu missatge, fes servir \"@\" per esmentar algú, fes servir \":\" per autocompletar emojis...'}},{locale:\"cs_CZ\",translations:{\"{tag} (invisible)\":\"{tag} (neviditelné)\",\"{tag} (restricted)\":\"{tag} (omezené)\",Actions:\"Akce\",Activities:\"Aktivity\",\"Animals & Nature\":\"Zvířata a příroda\",\"Anything shared with the same group of people will show up here\":\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\",\"Avatar of {displayName}\":\"Zástupný obrázek uživatele {displayName}\",\"Avatar of {displayName}, {status}\":\"Zástupný obrázek uživatele {displayName}, {status}\",\"Cancel changes\":\"Zrušit změny\",\"Change title\":\"Změnit nadpis\",Choose:\"Zvolit\",\"Clear text\":\"Čitelný text\",Close:\"Zavřít\",\"Close modal\":\"Zavřít dialogové okno\",\"Close navigation\":\"Zavřít navigaci\",\"Close sidebar\":\"Zavřít postranní panel\",\"Confirm changes\":\"Potvrdit změny\",Custom:\"Uživatelsky určené\",\"Edit item\":\"Upravit položku\",\"Error getting related resources\":\"Chyba při získávání souvisejících prostředků\",\"Error parsing svg\":\"Chyba při zpracovávání svg\",\"External documentation for {title}\":\"Externí dokumentace k {title}\",Favorite:\"Oblíbené\",Flags:\"Příznaky\",\"Food & Drink\":\"Jídlo a pití\",\"Frequently used\":\"Často používané\",Global:\"Globální\",\"Go back to the list\":\"Jít zpět na seznam\",\"Hide password\":\"Skrýt heslo\",\"Message limit of {count} characters reached\":\"Dosaženo limitu počtu ({count}) znaků zprávy\",\"More items …\":\"Další položky…\",Next:\"Následující\",\"No emoji found\":\"Nenalezeno žádné emoji\",\"No results\":\"Nic nenalezeno\",Objects:\"Objekty\",Open:\"Otevřít\",'Open link to \"{resourceTitle}\"':\"Otevřít odkaz na „{resourceTitle}“\",\"Open navigation\":\"Otevřít navigaci\",\"Password is secure\":\"Heslo je bezpečné\",\"Pause slideshow\":\"Pozastavit prezentaci\",\"People & Body\":\"Lidé a tělo\",\"Pick an emoji\":\"Vybrat emoji\",\"Please select a time zone:\":\"Vyberte časovou zónu:\",Previous:\"Předchozí\",\"Related resources\":\"Související prostředky\",Search:\"Hledat\",\"Search results\":\"Výsledky hledání\",\"Select a tag\":\"Vybrat štítek\",Settings:\"Nastavení\",\"Settings navigation\":\"Pohyb po nastavení\",\"Show password\":\"Zobrazit heslo\",\"Smileys & Emotion\":\"Úsměvy a emoce\",\"Start slideshow\":\"Spustit prezentaci\",Submit:\"Odeslat\",Symbols:\"Symboly\",\"Travel & Places\":\"Cestování a místa\",\"Type to search time zone\":\"Psaním vyhledejte časovou zónu\",\"Unable to search the group\":\"Nedaří se hledat skupinu\",\"Undo changes\":\"Vzít změny zpět\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"Napište zprávu – pokud chcete někoho zmínit, napište před jeho uživatelským jménem „@“ (zavináč); automatické doplňování emotikonů zahájíte napsáním „:“ (dvojtečky)…\"}},{locale:\"da\",translations:{\"{tag} (invisible)\":\"{tag} (usynlig)\",\"{tag} (restricted)\":\"{tag} (begrænset)\",Actions:\"Handlinger\",Activities:\"Aktiviteter\",\"Animals & Nature\":\"Dyr & Natur\",\"Anything shared with the same group of people will show up here\":\"Alt der deles med samme gruppe af personer vil vises her\",\"Avatar of {displayName}\":\"Avatar af {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar af {displayName}, {status}\",\"Cancel changes\":\"Annuller ændringer\",\"Change title\":\"Ret titel\",Choose:\"Vælg\",\"Clear text\":\"Ryd tekst\",Close:\"Luk\",\"Close modal\":\"Luk vindue\",\"Close navigation\":\"Luk navigation\",\"Close sidebar\":\"Luk sidepanel\",\"Confirm changes\":\"Bekræft ændringer\",Custom:\"Brugerdefineret\",\"Edit item\":\"Rediger emne\",\"Error getting related resources\":\"Kunne ikke hente tilknyttede data\",\"Error parsing svg\":\"Fejl ved analysering af svg\",\"External documentation for {title}\":\"Ekstern dokumentation for {title}\",Favorite:\"Favorit\",Flags:\"Flag\",\"Food & Drink\":\"Mad & Drikke\",\"Frequently used\":\"Ofte brugt\",Global:\"Global\",\"Go back to the list\":\"Tilbage til listen\",\"Hide password\":\"Skjul kodeord\",\"Message limit of {count} characters reached\":\"Begrænsning på {count} tegn er nået\",\"More items …\":\"Mere ...\",Next:\"Videre\",\"No emoji found\":\"Ingen emoji fundet\",\"No results\":\"Ingen resultater\",Objects:\"Objekter\",Open:\"Åbn\",'Open link to \"{resourceTitle}\"':'Åbn link til \"{resourceTitle}\"',\"Open navigation\":\"Åbn navigation\",\"Password is secure\":\"Kodeordet er sikkert\",\"Pause slideshow\":\"Suspender fremvisning\",\"People & Body\":\"Mennesker & Menneskekroppen\",\"Pick an emoji\":\"Vælg en emoji\",\"Please select a time zone:\":\"Vælg venligst en tidszone:\",Previous:\"Forrige\",\"Related resources\":\"Relaterede emner\",Search:\"Søg\",\"Search results\":\"Søgeresultater\",\"Select a tag\":\"Vælg et mærke\",Settings:\"Indstillinger\",\"Settings navigation\":\"Naviger i indstillinger\",\"Show password\":\"Vis kodeord\",\"Smileys & Emotion\":\"Smileys & Emotion\",\"Start slideshow\":\"Start fremvisning\",Submit:\"Send\",Symbols:\"Symboler\",\"Travel & Places\":\"Rejser & Rejsemål\",\"Type to search time zone\":\"Indtast for at søge efter tidszone\",\"Unable to search the group\":\"Kan ikke søge på denne gruppe\",\"Undo changes\":\"Fortryd ændringer\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Skriv besked, brug \"@\" for at nævne nogen, brug \":\" til emoji-autofuldførelse ...'}},{locale:\"de\",translations:{\"{tag} (invisible)\":\"{tag} (unsichtbar)\",\"{tag} (restricted)\":\"{tag} (eingeschränkt)\",Actions:\"Aktionen\",Activities:\"Aktivitäten\",\"Animals & Nature\":\"Tiere & Natur\",\"Anything shared with the same group of people will show up here\":\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\",\"Avatar of {displayName}\":\"Avatar von {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar von {displayName}, {status}\",\"Cancel changes\":\"Änderungen verwerfen\",\"Change title\":\"Titel ändern\",Choose:\"Auswählen\",\"Clear text\":\"Klartext\",Close:\"Schließen\",\"Close modal\":\"Modal schließen\",\"Close navigation\":\"Navigation schließen\",\"Close sidebar\":\"Seitenleiste schließen\",\"Confirm changes\":\"Änderungen bestätigen\",Custom:\"Benutzerdefiniert\",\"Edit item\":\"Objekt bearbeiten\",\"Error getting related resources\":\"Fehler beim Abrufen verwandter Ressourcen\",\"Error parsing svg\":\"Fehler beim Einlesen der SVG\",\"External documentation for {title}\":\"Externe Dokumentation für {title}\",Favorite:\"Favorit\",Flags:\"Flaggen\",\"Food & Drink\":\"Essen & Trinken\",\"Frequently used\":\"Häufig verwendet\",Global:\"Global\",\"Go back to the list\":\"Zurück zur Liste\",\"Hide password\":\"Passwort verbergen\",\"Message limit of {count} characters reached\":\"Nachrichtenlimit von {count} Zeichen erreicht\",\"More items …\":\"Weitere Elemente …\",Next:\"Weiter\",\"No emoji found\":\"Kein Emoji gefunden\",\"No results\":\"Keine Ergebnisse\",Objects:\"Gegenstände\",Open:\"Öffnen\",'Open link to \"{resourceTitle}\"':'Link zu \"{resourceTitle}\" öffnen',\"Open navigation\":\"Navigation öffnen\",\"Password is secure\":\"Passwort ist sicher\",\"Pause slideshow\":\"Diashow pausieren\",\"People & Body\":\"Menschen & Körper\",\"Pick an emoji\":\"Ein Emoji auswählen\",\"Please select a time zone:\":\"Bitte wähle eine Zeitzone:\",Previous:\"Vorherige\",\"Related resources\":\"Verwandte Ressourcen\",Search:\"Suche\",\"Search results\":\"Suchergebnisse\",\"Select a tag\":\"Schlagwort auswählen\",Settings:\"Einstellungen\",\"Settings navigation\":\"Einstellungen für die Navigation\",\"Show password\":\"Passwort anzeigen\",\"Smileys & Emotion\":\"Smileys & Emotionen\",\"Start slideshow\":\"Diashow starten\",Submit:\"Einreichen\",Symbols:\"Symbole\",\"Travel & Places\":\"Reisen & Orte\",\"Type to search time zone\":\"Tippen, um Zeitzone zu suchen\",\"Unable to search the group\":\"Die Gruppe konnte nicht durchsucht werden\",\"Undo changes\":\"Änderungen rückgängig machen\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Nachricht schreiben, \"@\" um jemanden zu erwähnen, \":\" für die automatische Vervollständigung von Emojis …'}},{locale:\"de_DE\",translations:{\"{tag} (invisible)\":\"{tag} (unsichtbar)\",\"{tag} (restricted)\":\"{tag} (eingeschränkt)\",Actions:\"Aktionen\",Activities:\"Aktivitäten\",\"Animals & Nature\":\"Tiere & Natur\",\"Anything shared with the same group of people will show up here\":\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\",\"Avatar of {displayName}\":\"Avatar von {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar von {displayName}, {status}\",\"Cancel changes\":\"Änderungen verwerfen\",\"Change title\":\"Titel ändern\",Choose:\"Auswählen\",\"Clear text\":\"Klartext\",Close:\"Schließen\",\"Close modal\":\"Modal schließen\",\"Close navigation\":\"Navigation schließen\",\"Close sidebar\":\"Seitenleiste schließen\",\"Confirm changes\":\"Änderungen bestätigen\",Custom:\"Benutzerdefiniert\",\"Edit item\":\"Element bearbeiten\",\"Error getting related resources\":\"Fehler beim Abrufen verwandter Ressourcen\",\"Error parsing svg\":\"Fehler beim Einlesen der SVG\",\"External documentation for {title}\":\"Externe Dokumentation für {title}\",Favorite:\"Favorit\",Flags:\"Flaggen\",\"Food & Drink\":\"Essen & Trinken\",\"Frequently used\":\"Häufig verwendet\",Global:\"Global\",\"Go back to the list\":\"Zurück zur Liste\",\"Hide password\":\"Passwort verbergen\",\"Message limit of {count} characters reached\":\"Nachrichtenlimit von {count} Zeichen erreicht\",\"More items …\":\"Weitere Elemente …\",Next:\"Weiter\",\"No emoji found\":\"Kein Emoji gefunden\",\"No results\":\"Keine Ergebnisse\",Objects:\"Objekte\",Open:\"Öffnen\",'Open link to \"{resourceTitle}\"':'Link zu \"{resourceTitle}\" öffnen',\"Open navigation\":\"Navigation öffnen\",\"Password is secure\":\"Passwort ist sicher\",\"Pause slideshow\":\"Diashow pausieren\",\"People & Body\":\"Menschen & Körper\",\"Pick an emoji\":\"Ein Emoji auswählen\",\"Please select a time zone:\":\"Bitte eine Zeitzone auswählen:\",Previous:\"Vorherige\",\"Related resources\":\"Verwandte Ressourcen\",Search:\"Suche\",\"Search results\":\"Suchergebnisse\",\"Select a tag\":\"Schlagwort auswählen\",Settings:\"Einstellungen\",\"Settings navigation\":\"Einstellungen für die Navigation\",\"Show password\":\"Passwort anzeigen\",\"Smileys & Emotion\":\"Smileys & Emotionen\",\"Start slideshow\":\"Diashow starten\",Submit:\"Einreichen\",Symbols:\"Symbole\",\"Travel & Places\":\"Reisen & Orte\",\"Type to search time zone\":\"Tippen, um eine Zeitzone zu suchen\",\"Unable to search the group\":\"Die Gruppe kann nicht durchsucht werden\",\"Undo changes\":\"Änderungen rückgängig machen\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Nachricht schreiben, \"@\" um jemanden zu erwähnen, \":\" für die automatische Vervollständigung von Emojis …'}},{locale:\"el\",translations:{\"{tag} (invisible)\":\"{tag} (αόρατο)\",\"{tag} (restricted)\":\"{tag} (περιορισμένο)\",Actions:\"Ενέργειες\",Activities:\"Δραστηριότητες\",\"Animals & Nature\":\"Ζώα & Φύση\",\"Anything shared with the same group of people will show up here\":\"Οτιδήποτε μοιράζεται με την ίδια ομάδα ατόμων θα εμφανίζεται εδώ\",\"Avatar of {displayName}\":\"Άβαταρ του {displayName}\",\"Avatar of {displayName}, {status}\":\"Άβαταρ του {displayName}, {status}\",\"Cancel changes\":\"Ακύρωση αλλαγών\",\"Change title\":\"Αλλαγή τίτλου\",Choose:\"Επιλογή\",\"Clear text\":\"Εκκαθάριση κειμένου\",Close:\"Κλείσιμο\",\"Close modal\":\"Βοηθητικό κλείσιμο\",\"Close navigation\":\"Κλείσιμο πλοήγησης\",\"Close sidebar\":\"Κλείσιμο πλευρικής μπάρας\",\"Confirm changes\":\"Επιβεβαίωση αλλαγών\",Custom:\"Προσαρμογή\",\"Edit item\":\"Επεξεργασία\",\"Error getting related resources\":\"Σφάλμα λήψης σχετικών πόρων\",\"Error parsing svg\":\"Σφάλμα ανάλυσης svg\",\"External documentation for {title}\":\"Εξωτερική τεκμηρίωση για {title}\",Favorite:\"Αγαπημένα\",Flags:\"Σημαίες\",\"Food & Drink\":\"Φαγητό & Ποτό\",\"Frequently used\":\"Συχνά χρησιμοποιούμενο\",Global:\"Καθολικό\",\"Go back to the list\":\"Επιστροφή στην αρχική λίστα \",\"Hide password\":\"Απόκρυψη κωδικού πρόσβασης\",\"Message limit of {count} characters reached\":\"Συμπληρώθηκε το όριο των {count} χαρακτήρων του μηνύματος\",\"More items …\":\"Περισσότερα στοιχεία …\",Next:\"Επόμενο\",\"No emoji found\":\"Δεν βρέθηκε emoji\",\"No results\":\"Κανένα αποτέλεσμα\",Objects:\"Αντικείμενα\",Open:\"Άνοιγμα\",'Open link to \"{resourceTitle}\"':'Άνοιγμα συνδέσμου στο \"{resourceTitle}\"',\"Open navigation\":\"Άνοιγμα πλοήγησης\",\"Password is secure\":\"Ο κωδικός πρόσβασης είναι ασφαλής\",\"Pause slideshow\":\"Παύση προβολής διαφανειών\",\"People & Body\":\"Άνθρωποι & Σώμα\",\"Pick an emoji\":\"Επιλέξτε ένα emoji\",\"Please select a time zone:\":\"Παρακαλούμε επιλέξτε μια ζώνη ώρας:\",Previous:\"Προηγούμενο\",\"Related resources\":\"Σχετικοί πόροι\",Search:\"Αναζήτηση\",\"Search results\":\"Αποτελέσματα αναζήτησης\",\"Select a tag\":\"Επιλογή ετικέτας\",Settings:\"Ρυθμίσεις\",\"Settings navigation\":\"Πλοήγηση ρυθμίσεων\",\"Show password\":\"Εμφάνιση κωδικού πρόσβασης\",\"Smileys & Emotion\":\"Φατσούλες & Συναίσθημα\",\"Start slideshow\":\"Έναρξη προβολής διαφανειών\",Submit:\"Υποβολή\",Symbols:\"Σύμβολα\",\"Travel & Places\":\"Ταξίδια & Τοποθεσίες\",\"Type to search time zone\":\"Πληκτρολογήστε για αναζήτηση ζώνης ώρας\",\"Unable to search the group\":\"Δεν είναι δυνατή η αναζήτηση της ομάδας\",\"Undo changes\":\"Αναίρεση Αλλαγών\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Γράψτε μήνυμα, χρησιμοποιείστε \"@\" για να αναφέρετε κάποιον, χρησιμοποιείστε \":\" για αυτόματη συμπλήρωση emoji …'}},{locale:\"en_GB\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restricted)\",Actions:\"Actions\",Activities:\"Activities\",\"Animals & Nature\":\"Animals & Nature\",\"Anything shared with the same group of people will show up here\":\"Anything shared with the same group of people will show up here\",\"Avatar of {displayName}\":\"Avatar of {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar of {displayName}, {status}\",\"Cancel changes\":\"Cancel changes\",\"Change title\":\"Change title\",Choose:\"Choose\",\"Clear text\":\"Clear text\",Close:\"Close\",\"Close modal\":\"Close modal\",\"Close navigation\":\"Close navigation\",\"Close sidebar\":\"Close sidebar\",\"Confirm changes\":\"Confirm changes\",Custom:\"Custom\",\"Edit item\":\"Edit item\",\"Error getting related resources\":\"Error getting related resources\",\"Error parsing svg\":\"Error parsing svg\",\"External documentation for {title}\":\"External documentation for {title}\",Favorite:\"Favourite\",Flags:\"Flags\",\"Food & Drink\":\"Food & Drink\",\"Frequently used\":\"Frequently used\",Global:\"Global\",\"Go back to the list\":\"Go back to the list\",\"Hide password\":\"Hide password\",\"Message limit of {count} characters reached\":\"Message limit of {count} characters reached\",\"More items …\":\"More items …\",Next:\"Next\",\"No emoji found\":\"No emoji found\",\"No results\":\"No results\",Objects:\"Objects\",Open:\"Open\",'Open link to \"{resourceTitle}\"':'Open link to \"{resourceTitle}\"',\"Open navigation\":\"Open navigation\",\"Password is secure\":\"Password is secure\",\"Pause slideshow\":\"Pause slideshow\",\"People & Body\":\"People & Body\",\"Pick an emoji\":\"Pick an emoji\",\"Please select a time zone:\":\"Please select a time zone:\",Previous:\"Previous\",\"Related resources\":\"Related resources\",Search:\"Search\",\"Search results\":\"Search results\",\"Select a tag\":\"Select a tag\",Settings:\"Settings\",\"Settings navigation\":\"Settings navigation\",\"Show password\":\"Show password\",\"Smileys & Emotion\":\"Smileys & Emotion\",\"Start slideshow\":\"Start slideshow\",Submit:\"Submit\",Symbols:\"Symbols\",\"Travel & Places\":\"Travel & Places\",\"Type to search time zone\":\"Type to search time zone\",\"Unable to search the group\":\"Unable to search the group\",\"Undo changes\":\"Undo changes\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …'}},{locale:\"eo\",translations:{\"{tag} (invisible)\":\"{tag} (kaŝita)\",\"{tag} (restricted)\":\"{tag} (limigita)\",Actions:\"Agoj\",Activities:\"Aktiveco\",\"Animals & Nature\":\"Bestoj & Naturo\",Choose:\"Elektu\",Close:\"Fermu\",Custom:\"Propra\",Flags:\"Flagoj\",\"Food & Drink\":\"Manĝaĵo & Trinkaĵo\",\"Frequently used\":\"Ofte uzataj\",\"Message limit of {count} characters reached\":\"La limo je {count} da literoj atingita\",Next:\"Sekva\",\"No emoji found\":\"La emoĝio forestas\",\"No results\":\"La rezulto forestas\",Objects:\"Objektoj\",\"Pause slideshow\":\"Payzi bildprezenton\",\"People & Body\":\"Homoj & Korpo\",\"Pick an emoji\":\"Elekti emoĝion \",Previous:\"Antaŭa\",Search:\"Serĉi\",\"Search results\":\"Serĉrezultoj\",\"Select a tag\":\"Elektu etikedon\",Settings:\"Agordo\",\"Settings navigation\":\"Agorda navigado\",\"Smileys & Emotion\":\"Ridoj kaj Emocioj\",\"Start slideshow\":\"Komenci bildprezenton\",Symbols:\"Signoj\",\"Travel & Places\":\"Vojaĵoj & Lokoj\",\"Unable to search the group\":\"Ne eblas serĉi en la grupo\",\"Write message, @ to mention someone …\":\"Mesaĝi, uzu @ por mencii iun ...\"}},{locale:\"es\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restringido)\",Actions:\"Acciones\",Activities:\"Actividades\",\"Animals & Nature\":\"Animales y naturaleza\",\"Anything shared with the same group of people will show up here\":\"Cualquier cosa que sea compartida con el mismo grupo de personas se mostrará aquí\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",\"Cancel changes\":\"Cancelar cambios\",\"Change title\":\"Cambiar título\",Choose:\"Elegir\",\"Clear text\":\"Limpiar texto\",Close:\"Cerrar\",\"Close modal\":\"Cerrar modal\",\"Close navigation\":\"Cerrar navegación\",\"Close sidebar\":\"Cerrar barra lateral\",\"Confirm changes\":\"Confirmar cambios\",Custom:\"Personalizado\",\"Edit item\":\"Editar elemento\",\"Error getting related resources\":\"Se encontró un error al obtener los recursos relacionados\",\"Error parsing svg\":\"Error procesando svg\",\"External documentation for {title}\":\"Documentacion externa de {title}\",Favorite:\"Favorito\",Flags:\"Banderas\",\"Food & Drink\":\"Comida y bebida\",\"Frequently used\":\"Usado con frecuenca\",Global:\"Global\",\"Go back to the list\":\"Volver a la lista\",\"Hide password\":\"Ocultar contraseña\",\"Message limit of {count} characters reached\":\"El mensaje ha alcanzado el límite de {count} caracteres\",\"More items …\":\"Más ítems...\",Next:\"Siguiente\",\"No emoji found\":\"No hay ningún emoji\",\"No results\":\" Ningún resultado\",Objects:\"Objetos\",Open:\"Abrir\",'Open link to \"{resourceTitle}\"':'Abrir enlace a \"{resourceTitle}\"',\"Open navigation\":\"Abrir navegación\",\"Password is secure\":\"La contraseña es segura\",\"Pause slideshow\":\"Pausar la presentación \",\"People & Body\":\"Personas y cuerpos\",\"Pick an emoji\":\"Elegir un emoji\",\"Please select a time zone:\":\"Por favor elige un huso de horario:\",Previous:\"Anterior\",\"Related resources\":\"Recursos relacionados\",Search:\"Buscar\",\"Search results\":\"Resultados de la búsqueda\",\"Select a tag\":\"Seleccione una etiqueta\",Settings:\"Ajustes\",\"Settings navigation\":\"Navegación por ajustes\",\"Show password\":\"Mostrar contraseña\",\"Smileys & Emotion\":\"Smileys y emoticonos\",\"Start slideshow\":\"Iniciar la presentación\",Submit:\"Enviar\",Symbols:\"Símbolos\",\"Travel & Places\":\"Viajes y lugares\",\"Type to search time zone\":\"Escribe para buscar un huso de horario\",\"Unable to search the group\":\"No es posible buscar en el grupo\",\"Undo changes\":\"Deshacer cambios\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Escribir mensaje, utilice \"@\" para mencionar a alguien, utilice \":\" para autocompletado de emojis ...'}},{locale:\"eu\",translations:{\"{tag} (invisible)\":\"{tag} (ikusezina)\",\"{tag} (restricted)\":\"{tag} (mugatua)\",Actions:\"Ekintzak\",Activities:\"Jarduerak\",\"Animals & Nature\":\"Animaliak eta Natura\",\"Anything shared with the same group of people will show up here\":\"Pertsona-talde berarekin partekatutako edozer agertuko da hemen\",\"Avatar of {displayName}\":\"{displayName}-(e)n irudia\",\"Avatar of {displayName}, {status}\":\"{displayName} -(e)n irudia, {status}\",\"Cancel changes\":\"Ezeztatu aldaketak\",\"Change title\":\"Aldatu titulua\",Choose:\"Aukeratu\",\"Clear text\":\"Garbitu testua\",Close:\"Itxi\",\"Close modal\":\"Itxi modala\",\"Close navigation\":\"Itxi nabigazioa\",\"Close sidebar\":\"Itxi albo-barra\",\"Confirm changes\":\"Baieztatu aldaketak\",Custom:\"Pertsonalizatua\",\"Edit item\":\"Editatu elementua\",\"Error getting related resources\":\"Errorea erlazionatutako baliabideak lortzerakoan\",\"Error parsing svg\":\"Errore bat gertatu da svg-a analizatzean\",\"External documentation for {title}\":\"Kanpoko dokumentazioa {title}(r)entzat\",Favorite:\"Gogokoa\",Flags:\"Banderak\",\"Food & Drink\":\"Janaria eta edariak\",\"Frequently used\":\"Askotan erabilia\",Global:\"Globala\",\"Go back to the list\":\"Bueltatu zerrendara\",\"Hide password\":\"Ezkutatu pasahitza\",\"Message limit of {count} characters reached\":\"Mezuaren {count} karaketere-limitera heldu zara\",\"More items …\":\"Elementu gehiago …\",Next:\"Hurrengoa\",\"No emoji found\":\"Ez da emojirik aurkitu\",\"No results\":\"Emaitzarik ez\",Objects:\"Objektuak\",Open:\"Ireki\",'Open link to \"{resourceTitle}\"':'Ireki esteka: \"{resourceTitle}\"',\"Open navigation\":\"Ireki nabigazioa\",\"Password is secure\":\"Pasahitza segurua da\",\"Pause slideshow\":\"Pausatu diaporama\",\"People & Body\":\"Jendea eta gorputza\",\"Pick an emoji\":\"Hautatu emoji bat\",\"Please select a time zone:\":\"Mesedez hautatu ordu-zona bat:\",Previous:\"Aurrekoa\",\"Related resources\":\"Erlazionatutako baliabideak\",Search:\"Bilatu\",\"Search results\":\"Bilaketa emaitzak\",\"Select a tag\":\"Hautatu etiketa bat\",Settings:\"Ezarpenak\",\"Settings navigation\":\"Nabigazio ezarpenak\",\"Show password\":\"Erakutsi pasahitza\",\"Smileys & Emotion\":\"Smileyak eta emozioa\",\"Start slideshow\":\"Hasi diaporama\",Submit:\"Bidali\",Symbols:\"Sinboloak\",\"Travel & Places\":\"Bidaiak eta lekuak\",\"Type to search time zone\":\"Idatzi ordu-zona bat bilatzeko\",\"Unable to search the group\":\"Ezin izan da taldea bilatu\",\"Undo changes\":\"Aldaketak desegin\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Idatzi mezua, erabili \"@\" norbait aipatzeko, erabili \":\" emojiak automatikoki osatzeko...'}},{locale:\"fi\",translations:{\"{tag} (invisible)\":\"{tag} (näkymätön)\",\"{tag} (restricted)\":\"{tag} (rajoitettu)\",Actions:\"Toiminnot\",Activities:\"Aktiviteetit\",\"Animals & Nature\":\"Eläimet & luonto\",\"Avatar of {displayName}\":\"Käyttäjän {displayName} avatar\",\"Avatar of {displayName}, {status}\":\"Käyttäjän {displayName} avatar, {status}\",\"Cancel changes\":\"Peruuta muutokset\",Choose:\"Valitse\",Close:\"Sulje\",\"Close navigation\":\"Sulje navigaatio\",\"Confirm changes\":\"Vahvista muutokset\",Custom:\"Mukautettu\",\"Edit item\":\"Muokkaa kohdetta\",\"External documentation for {title}\":\"Ulkoinen dokumentaatio kohteelle {title}\",Flags:\"Liput\",\"Food & Drink\":\"Ruoka & juoma\",\"Frequently used\":\"Usein käytetyt\",Global:\"Yleinen\",\"Go back to the list\":\"Siirry takaisin listaan\",\"Message limit of {count} characters reached\":\"Viestin merkken enimmäisimäärä {count} täynnä \",Next:\"Seuraava\",\"No emoji found\":\"Emojia ei löytynyt\",\"No results\":\"Ei tuloksia\",Objects:\"Esineet & asiat\",\"Open navigation\":\"Avaa navigaatio\",\"Pause slideshow\":\"Keskeytä diaesitys\",\"People & Body\":\"Ihmiset & keho\",\"Pick an emoji\":\"Valitse emoji\",\"Please select a time zone:\":\"Valitse aikavyöhyke:\",Previous:\"Edellinen\",Search:\"Etsi\",\"Search results\":\"Hakutulokset\",\"Select a tag\":\"Valitse tagi\",Settings:\"Asetukset\",\"Settings navigation\":\"Asetusnavigaatio\",\"Smileys & Emotion\":\"Hymiöt & tunteet\",\"Start slideshow\":\"Aloita diaesitys\",Submit:\"Lähetä\",Symbols:\"Symbolit\",\"Travel & Places\":\"Matkustus & kohteet\",\"Type to search time zone\":\"Kirjoita etsiäksesi aikavyöhyke\",\"Unable to search the group\":\"Ryhmää ei voi hakea\",\"Undo changes\":\"Kumoa muutokset\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Kirjoita viesti, @ mainitaksesi käyttäjän, : emojin automaattitäydennykseen…\"}},{locale:\"fr\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restreint)\",Actions:\"Actions\",Activities:\"Activités\",\"Animals & Nature\":\"Animaux & Nature\",\"Anything shared with the same group of people will show up here\":\"Tout ce qui est partagé avec le même groupe de personnes apparaîtra ici\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",\"Cancel changes\":\"Annuler les modifications\",\"Change title\":\"Modifier le titre\",Choose:\"Choisir\",\"Clear text\":\"Effacer le texte\",Close:\"Fermer\",\"Close modal\":\"Fermer la fenêtre\",\"Close navigation\":\"Fermer la navigation\",\"Close sidebar\":\"Fermer la barre latérale\",\"Confirm changes\":\"Confirmer les modifications\",Custom:\"Personnalisé\",\"Edit item\":\"Éditer l'élément\",\"Error getting related resources\":\"Erreur à la récupération des ressources liées\",\"Error parsing svg\":\"Erreur d'analyse SVG\",\"External documentation for {title}\":\"Documentation externe pour {title}\",Favorite:\"Favori\",Flags:\"Drapeaux\",\"Food & Drink\":\"Nourriture & Boissons\",\"Frequently used\":\"Utilisés fréquemment\",Global:\"Global\",\"Go back to the list\":\"Retourner à la liste\",\"Hide password\":\"Cacher le mot de passe\",\"Message limit of {count} characters reached\":\"Limite de messages de {count} caractères atteinte\",\"More items …\":\"Plus d'éléments...\",Next:\"Suivant\",\"No emoji found\":\"Pas d’émoji trouvé\",\"No results\":\"Aucun résultat\",Objects:\"Objets\",Open:\"Ouvrir\",'Open link to \"{resourceTitle}\"':'Ouvrir le lien vers \"{resourceTitle}\"',\"Open navigation\":\"Ouvrir la navigation\",\"Password is secure\":\"Le mot de passe est sécurisé\",\"Pause slideshow\":\"Mettre le diaporama en pause\",\"People & Body\":\"Personnes & Corps\",\"Pick an emoji\":\"Choisissez un émoji\",\"Please select a time zone:\":\"Sélectionnez un fuseau horaire : \",Previous:\"Précédent\",\"Related resources\":\"Ressources liées\",Search:\"Chercher\",\"Search results\":\"Résultats de recherche\",\"Select a tag\":\"Sélectionnez une balise\",Settings:\"Paramètres\",\"Settings navigation\":\"Navigation dans les paramètres\",\"Show password\":\"Afficher le mot de passe\",\"Smileys & Emotion\":\"Smileys & Émotions\",\"Start slideshow\":\"Démarrer le diaporama\",Submit:\"Valider\",Symbols:\"Symboles\",\"Travel & Places\":\"Voyage & Lieux\",\"Type to search time zone\":\"Saisissez les premiers lettres pour rechercher un fuseau horaire\",\"Unable to search the group\":\"Impossible de chercher le groupe\",\"Undo changes\":\"Annuler les changements\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Écrire un message, utiliser \"@\" pour mentionner une personne, \":\" pour l\\'autocomplétion des émojis...'}},{locale:\"gl\",translations:{\"{tag} (invisible)\":\"{tag} (invisíbel)\",\"{tag} (restricted)\":\"{tag} (restrinxido)\",Actions:\"Accións\",Activities:\"Actividades\",\"Animals & Nature\":\"Animais e natureza\",\"Cancel changes\":\"Cancelar os cambios\",Choose:\"Escoller\",Close:\"Pechar\",\"Confirm changes\":\"Confirma os cambios\",Custom:\"Personalizado\",\"External documentation for {title}\":\"Documentación externa para {title}\",Flags:\"Bandeiras\",\"Food & Drink\":\"Comida e bebida\",\"Frequently used\":\"Usado con frecuencia\",\"Message limit of {count} characters reached\":\"Acadouse o límite de {count} caracteres por mensaxe\",Next:\"Seguinte\",\"No emoji found\":\"Non se atopou ningún «emoji»\",\"No results\":\"Sen resultados\",Objects:\"Obxectos\",\"Pause slideshow\":\"Pausar o diaporama\",\"People & Body\":\"Persoas e corpo\",\"Pick an emoji\":\"Escolla un «emoji»\",Previous:\"Anterir\",Search:\"Buscar\",\"Search results\":\"Resultados da busca\",\"Select a tag\":\"Seleccione unha etiqueta\",Settings:\"Axustes\",\"Settings navigation\":\"Navegación polos axustes\",\"Smileys & Emotion\":\"Sorrisos e emocións\",\"Start slideshow\":\"Iniciar o diaporama\",Submit:\"Enviar\",Symbols:\"Símbolos\",\"Travel & Places\":\"Viaxes e lugares\",\"Unable to search the group\":\"Non foi posíbel buscar o grupo\",\"Write message, @ to mention someone …\":\"Escriba a mensaxe, @ para mencionar a alguén…\"}},{locale:\"he\",translations:{\"{tag} (invisible)\":\"{tag} (נסתר)\",\"{tag} (restricted)\":\"{tag} (מוגבל)\",Actions:\"פעולות\",Activities:\"פעילויות\",\"Animals & Nature\":\"חיות וטבע\",Choose:\"בחירה\",Close:\"סגירה\",Custom:\"בהתאמה אישית\",Flags:\"דגלים\",\"Food & Drink\":\"מזון ומשקאות\",\"Frequently used\":\"בשימוש תדיר\",Next:\"הבא\",\"No emoji found\":\"לא נמצא אמוג׳י\",\"No results\":\"אין תוצאות\",Objects:\"חפצים\",\"Pause slideshow\":\"השהיית מצגת\",\"People & Body\":\"אנשים וגוף\",\"Pick an emoji\":\"נא לבחור אמוג׳י\",Previous:\"הקודם\",Search:\"חיפוש\",\"Search results\":\"תוצאות חיפוש\",\"Select a tag\":\"בחירת תגית\",Settings:\"הגדרות\",\"Smileys & Emotion\":\"חייכנים ורגשונים\",\"Start slideshow\":\"התחלת המצגת\",Symbols:\"סמלים\",\"Travel & Places\":\"טיולים ומקומות\",\"Unable to search the group\":\"לא ניתן לחפש בקבוצה\"}},{locale:\"hu\",translations:{\"{tag} (invisible)\":\"{tag} (láthatatlan)\",\"{tag} (restricted)\":\"{tag} (korlátozott)\",Actions:\"Műveletek\",Activities:\"Tevékenységek\",\"Animals & Nature\":\"Állatok és természet\",\"Anything shared with the same group of people will show up here\":\"Minden, amit ugyanazzal a csoporttal oszt meg, itt fog megjelenni\",\"Avatar of {displayName}\":\"{displayName} profilképe\",\"Avatar of {displayName}, {status}\":\"{displayName} profilképe, {status}\",\"Cancel changes\":\"Változtatások elvetése\",\"Change title\":\"Cím megváltoztatása\",Choose:\"Válassszon\",\"Clear text\":\"Szöveg törlése\",Close:\"Bezárás\",\"Close modal\":\"Ablak bezárása\",\"Close navigation\":\"Navigáció bezárása\",\"Close sidebar\":\"Oldalsáv bezárása\",\"Confirm changes\":\"Változtatások megerősítése\",Custom:\"Egyéni\",\"Edit item\":\"Elem szerkesztése\",\"Error getting related resources\":\"Hiba a kapcsolódó erőforrások lekérésekor\",\"Error parsing svg\":\"Hiba az SVG feldolgozásakor\",\"External documentation for {title}\":\"Külső dokumentáció ehhez: {title}\",Favorite:\"Kedvenc\",Flags:\"Zászlók\",\"Food & Drink\":\"Étel és ital\",\"Frequently used\":\"Gyakran használt\",Global:\"Globális\",\"Go back to the list\":\"Ugrás vissza a listához\",\"Hide password\":\"Jelszó elrejtése\",\"Message limit of {count} characters reached\":\"{count} karakteres üzenetkorlát elérve\",\"More items …\":\"További elemek...\",Next:\"Következő\",\"No emoji found\":\"Nem található emodzsi\",\"No results\":\"Nincs találat\",Objects:\"Tárgyak\",Open:\"Megnyitás\",'Open link to \"{resourceTitle}\"':\"A(z) „{resourceTitle}” hivatkozásának megnyitása\",\"Open navigation\":\"Navigáció megnyitása\",\"Password is secure\":\"A jelszó biztonságos\",\"Pause slideshow\":\"Diavetítés szüneteltetése\",\"People & Body\":\"Emberek és test\",\"Pick an emoji\":\"Válasszon egy emodzsit\",\"Please select a time zone:\":\"Válasszon időzónát:\",Previous:\"Előző\",\"Related resources\":\"Kapcsolódó erőforrások\",Search:\"Keresés\",\"Search results\":\"Találatok\",\"Select a tag\":\"Válasszon címkét\",Settings:\"Beállítások\",\"Settings navigation\":\"Navigáció a beállításokban\",\"Show password\":\"Jelszó megjelenítése\",\"Smileys & Emotion\":\"Mosolyok és érzelmek\",\"Start slideshow\":\"Diavetítés indítása\",Submit:\"Beküldés\",Symbols:\"Szimbólumok\",\"Travel & Places\":\"Utazás és helyek\",\"Type to search time zone\":\"Gépeljen az időzóna kereséséhez\",\"Unable to search the group\":\"A csoport nem kereshető\",\"Undo changes\":\"Változtatások visszavonása\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"Írjon egy üzenetet, használja a „@”-ot valaki megemlítéséhet, illetve a „:”-ot az emodzsik automatikus kiegészítéséhez…\"}},{locale:\"is\",translations:{\"{tag} (invisible)\":\"{tag} (ósýnilegt)\",\"{tag} (restricted)\":\"{tag} (takmarkað)\",Actions:\"Aðgerðir\",Activities:\"Aðgerðir\",\"Animals & Nature\":\"Dýr og náttúra\",Choose:\"Velja\",Close:\"Loka\",Custom:\"Sérsniðið\",Flags:\"Flögg\",\"Food & Drink\":\"Matur og drykkur\",\"Frequently used\":\"Oftast notað\",Next:\"Næsta\",\"No emoji found\":\"Ekkert tjáningartákn fannst\",\"No results\":\"Engar niðurstöður\",Objects:\"Hlutir\",\"Pause slideshow\":\"Gera hlé á skyggnusýningu\",\"People & Body\":\"Fólk og líkami\",\"Pick an emoji\":\"Veldu tjáningartákn\",Previous:\"Fyrri\",Search:\"Leita\",\"Search results\":\"Leitarniðurstöður\",\"Select a tag\":\"Veldu merki\",Settings:\"Stillingar\",\"Smileys & Emotion\":\"Broskallar og tilfinningar\",\"Start slideshow\":\"Byrja skyggnusýningu\",Symbols:\"Tákn\",\"Travel & Places\":\"Staðir og ferðalög\",\"Unable to search the group\":\"Get ekki leitað í hópnum\"}},{locale:\"it\",translations:{\"{tag} (invisible)\":\"{tag} (invisibile)\",\"{tag} (restricted)\":\"{tag} (limitato)\",Actions:\"Azioni\",Activities:\"Attività\",\"Animals & Nature\":\"Animali e natura\",\"Anything shared with the same group of people will show up here\":\"Tutto ciò che è stato condiviso con lo stesso gruppo di persone viene visualizzato qui\",\"Avatar of {displayName}\":\"Avatar di {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar di {displayName}, {status}\",\"Cancel changes\":\"Annulla modifiche\",\"Change title\":\"Modifica il titolo\",Choose:\"Scegli\",\"Clear text\":\"Cancella il testo\",Close:\"Chiudi\",\"Close modal\":\"Chiudi il messaggio modale\",\"Close navigation\":\"Chiudi la navigazione\",\"Close sidebar\":\"Chiudi la barra laterale\",\"Confirm changes\":\"Conferma modifiche\",Custom:\"Personalizzato\",\"Edit item\":\"Modifica l'elemento\",\"Error getting related resources\":\"Errore nell'ottenere risorse correlate\",\"Error parsing svg\":\"Errore nell'analizzare l'svg\",\"External documentation for {title}\":\"Documentazione esterna per {title}\",Favorite:\"Preferito\",Flags:\"Bandiere\",\"Food & Drink\":\"Cibo e bevande\",\"Frequently used\":\"Usati di frequente\",Global:\"Globale\",\"Go back to the list\":\"Torna all'elenco\",\"Hide password\":\"Nascondi la password\",\"Message limit of {count} characters reached\":\"Limite dei messaggi di {count} caratteri raggiunto\",\"More items …\":\"Più elementi ...\",Next:\"Successivo\",\"No emoji found\":\"Nessun emoji trovato\",\"No results\":\"Nessun risultato\",Objects:\"Oggetti\",Open:\"Apri\",'Open link to \"{resourceTitle}\"':'Apri il link a \"{resourceTitle}\"',\"Open navigation\":\"Apri la navigazione\",\"Password is secure\":\"La password è sicura\",\"Pause slideshow\":\"Presentazione in pausa\",\"People & Body\":\"Persone e corpo\",\"Pick an emoji\":\"Scegli un emoji\",\"Please select a time zone:\":\"Si prega di selezionare un fuso orario:\",Previous:\"Precedente\",\"Related resources\":\"Risorse correlate\",Search:\"Cerca\",\"Search results\":\"Risultati di ricerca\",\"Select a tag\":\"Seleziona un'etichetta\",Settings:\"Impostazioni\",\"Settings navigation\":\"Navigazione delle impostazioni\",\"Show password\":\"Mostra la password\",\"Smileys & Emotion\":\"Faccine ed emozioni\",\"Start slideshow\":\"Avvia presentazione\",Submit:\"Invia\",Symbols:\"Simboli\",\"Travel & Places\":\"Viaggi e luoghi\",\"Type to search time zone\":\"Digita per cercare un fuso orario\",\"Unable to search the group\":\"Impossibile cercare il gruppo\",\"Undo changes\":\"Cancella i cambiamenti\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Scrivi un messaggio, \"@\" per menzionare qualcuno, \":\" per il completamento automatico delle emoji ...'}},{locale:\"ja\",translations:{\"{tag} (invisible)\":\"{タグ} (不可視)\",\"{tag} (restricted)\":\"{タグ} (制限付)\",Actions:\"操作\",Activities:\"アクティビティ\",\"Animals & Nature\":\"動物と自然\",\"Anything shared with the same group of people will show up here\":\"同じグループで共有しているものは、全てここに表示されます\",\"Avatar of {displayName}\":\"{displayName} のアバター\",\"Avatar of {displayName}, {status}\":\"{displayName}, {status} のアバター\",\"Cancel changes\":\"変更をキャンセル\",\"Change title\":\"タイトルを変更\",Choose:\"選択\",\"Clear text\":\"テキストをクリア\",Close:\"閉じる\",\"Close modal\":\"モーダルを閉じる\",\"Close navigation\":\"ナビゲーションを閉じる\",\"Close sidebar\":\"サイドバーを閉じる\",\"Confirm changes\":\"変更を承認\",Custom:\"カスタム\",\"Edit item\":\"編集\",\"Error getting related resources\":\"関連リソースの取得エラー\",\"Error parsing svg\":\"svgの解析エラー\",\"External documentation for {title}\":\"{title} のための添付文書\",Favorite:\"お気に入り\",Flags:\"国旗\",\"Food & Drink\":\"食べ物と飲み物\",\"Frequently used\":\"よく使うもの\",Global:\"全体\",\"Go back to the list\":\"リストに戻る\",\"Hide password\":\"パスワードを非表示\",\"Message limit of {count} characters reached\":\"{count} 文字のメッセージ上限に達しています\",\"More items …\":\"他のアイテム\",Next:\"次\",\"No emoji found\":\"絵文字が見つかりません\",\"No results\":\"なし\",Objects:\"物\",Open:\"開く\",'Open link to \"{resourceTitle}\"':'\"{resourceTitle}\"のリンクを開く',\"Open navigation\":\"ナビゲーションを開く\",\"Password is secure\":\"パスワードは保護されています\",\"Pause slideshow\":\"スライドショーを一時停止\",\"People & Body\":\"様々な人と体の部位\",\"Pick an emoji\":\"絵文字を選択\",\"Please select a time zone:\":\"タイムゾーンを選んで下さい:\",Previous:\"前\",\"Related resources\":\"関連リソース\",Search:\"検索\",\"Search results\":\"検索結果\",\"Select a tag\":\"タグを選択\",Settings:\"設定\",\"Settings navigation\":\"ナビゲーション設定\",\"Show password\":\"パスワードを表示\",\"Smileys & Emotion\":\"感情表現\",\"Start slideshow\":\"スライドショーを開始\",Submit:\"提出\",Symbols:\"記号\",\"Travel & Places\":\"旅行と場所\",\"Type to search time zone\":\"タイムゾーン検索のため入力してください\",\"Unable to search the group\":\"グループを検索できません\",\"Undo changes\":\"変更を取り消し\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'メッセージを記入、\"@\"でメンション、\":\"で絵文字の自動補完 ...'}},{locale:\"lt_LT\",translations:{\"{tag} (invisible)\":\"{tag} (nematoma)\",\"{tag} (restricted)\":\"{tag} (apribota)\",Actions:\"Veiksmai\",Activities:\"Veiklos\",\"Animals & Nature\":\"Gyvūnai ir gamta\",Choose:\"Pasirinkti\",Close:\"Užverti\",Custom:\"Tinkinti\",\"External documentation for {title}\":\"Išorinė {title} dokumentacija\",Flags:\"Vėliavos\",\"Food & Drink\":\"Maistas ir gėrimai\",\"Frequently used\":\"Dažniausiai naudoti\",\"Message limit of {count} characters reached\":\"Pasiekta {count} simbolių žinutės riba\",Next:\"Kitas\",\"No emoji found\":\"Nerasta jaustukų\",\"No results\":\"Nėra rezultatų\",Objects:\"Objektai\",\"Pause slideshow\":\"Pristabdyti skaidrių rodymą\",\"People & Body\":\"Žmonės ir kūnas\",\"Pick an emoji\":\"Pasirinkti jaustuką\",Previous:\"Ankstesnis\",Search:\"Ieškoti\",\"Search results\":\"Paieškos rezultatai\",\"Select a tag\":\"Pasirinkti žymę\",Settings:\"Nustatymai\",\"Settings navigation\":\"Naršymas nustatymuose\",\"Smileys & Emotion\":\"Šypsenos ir emocijos\",\"Start slideshow\":\"Pradėti skaidrių rodymą\",Submit:\"Pateikti\",Symbols:\"Simboliai\",\"Travel & Places\":\"Kelionės ir vietos\",\"Unable to search the group\":\"Nepavyko atlikti paiešką grupėje\",\"Write message, @ to mention someone …\":\"Rašykite žinutę, naudokite @ norėdami kažką paminėti…\"}},{locale:\"lv\",translations:{\"{tag} (invisible)\":\"{tag} (neredzams)\",\"{tag} (restricted)\":\"{tag} (ierobežots)\",Choose:\"Izvēlēties\",Close:\"Aizvērt\",Next:\"Nākamais\",\"No results\":\"Nav rezultātu\",\"Pause slideshow\":\"Pauzēt slaidrādi\",Previous:\"Iepriekšējais\",\"Select a tag\":\"Izvēlēties birku\",Settings:\"Iestatījumi\",\"Start slideshow\":\"Sākt slaidrādi\"}},{locale:\"mk\",translations:{\"{tag} (invisible)\":\"{tag} (невидливо)\",\"{tag} (restricted)\":\"{tag} (ограничено)\",Actions:\"Акции\",Activities:\"Активности\",\"Animals & Nature\":\"Животни & Природа\",\"Avatar of {displayName}\":\"Аватар на {displayName}\",\"Avatar of {displayName}, {status}\":\"Аватар на {displayName}, {status}\",\"Cancel changes\":\"Откажи ги промените\",\"Change title\":\"Промени наслов\",Choose:\"Избери\",Close:\"Затвори\",\"Close modal\":\"Затвори модал\",\"Close navigation\":\"Затвори навигација\",\"Confirm changes\":\"Потврди ги промените\",Custom:\"Прилагодени\",\"Edit item\":\"Уреди\",\"External documentation for {title}\":\"Надворешна документација за {title}\",Favorite:\"Фаворити\",Flags:\"Знамиња\",\"Food & Drink\":\"Храна & Пијалоци\",\"Frequently used\":\"Најчесто користени\",Global:\"Глобално\",\"Go back to the list\":\"Врати се на листата\",items:\"ставки\",\"Message limit of {count} characters reached\":\"Ограничувањето на должината на пораката од {count} карактери е надминато\",\"More {dashboardItemType} …\":\"Повеќе {dashboardItemType} …\",Next:\"Следно\",\"No emoji found\":\"Не се пронајдени емотикони\",\"No results\":\"Нема резултати\",Objects:\"Објекти\",Open:\"Отвори\",\"Open navigation\":\"Отвори навигација\",\"Pause slideshow\":\"Пузирај слајдшоу\",\"People & Body\":\"Луѓе & Тело\",\"Pick an emoji\":\"Избери емотикон\",\"Please select a time zone:\":\"Изберете временска зона:\",Previous:\"Предходно\",Search:\"Барај\",\"Search results\":\"Резултати од барувањето\",\"Select a tag\":\"Избери ознака\",Settings:\"Параметри\",\"Settings navigation\":\"Параметри за навигација\",\"Smileys & Emotion\":\"Смешковци & Емотикони\",\"Start slideshow\":\"Стартувај слајдшоу\",Submit:\"Испрати\",Symbols:\"Симболи\",\"Travel & Places\":\"Патувања & Места\",\"Type to search time zone\":\"Напишете за да пребарате временска зона\",\"Unable to search the group\":\"Неможе да се принајде групата\",\"Undo changes\":\"Врати ги промените\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Напиши порака, @ за да спомнете некого, : за емотинони автоатско комплетирање ...\"}},{locale:\"my\",translations:{\"{tag} (invisible)\":\"{tag} (ကွယ်ဝှက်ထား)\",\"{tag} (restricted)\":\"{tag} (ကန့်သတ်)\",Actions:\"လုပ်ဆောင်ချက်များ\",Activities:\"ပြုလုပ်ဆောင်တာများ\",\"Animals & Nature\":\"တိရစ္ဆာန်များနှင့် သဘာဝ\",\"Avatar of {displayName}\":\"{displayName} ၏ ကိုယ်ပွား\",\"Cancel changes\":\"ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်\",Choose:\"ရွေးချယ်ရန်\",Close:\"ပိတ်ရန်\",\"Confirm changes\":\"ပြောင်းလဲမှုများ အတည်ပြုရန်\",Custom:\"အလိုကျချိန်ညှိမှု\",\"External documentation for {title}\":\"{title} အတွက် ပြင်ပ စာရွက်စာတမ်း\",Flags:\"အလံများ\",\"Food & Drink\":\"အစားအသောက်\",\"Frequently used\":\"မကြာခဏအသုံးပြုသော\",Global:\"ကမ္ဘာလုံးဆိုင်ရာ\",\"Message limit of {count} characters reached\":\"ကန့်သတ် စာလုံးရေ {count} လုံး ပြည့်ပါပြီ\",Next:\"နောက်သို့ဆက်ရန်\",\"No emoji found\":\"အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ\",\"No results\":\"ရလဒ်မရှိပါ\",Objects:\"အရာဝတ္ထုများ\",\"Pause slideshow\":\"စလိုက်ရှိုး ခေတ္တရပ်ရန်\",\"People & Body\":\"လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်\",\"Pick an emoji\":\"အီမိုဂျီရွေးရန်\",\"Please select a time zone:\":\"ဒေသစံတော်ချိန် ရွေးချယ်ပေးပါ\",Previous:\"ယခင်\",Search:\"ရှာဖွေရန်\",\"Search results\":\"ရှာဖွေမှု ရလဒ်များ\",\"Select a tag\":\"tag ရွေးချယ်ရန်\",Settings:\"ချိန်ညှိချက်များ\",\"Settings navigation\":\"ချိန်ညှိချက်အညွှန်း\",\"Smileys & Emotion\":\"စမိုင်လီများနှင့် အီမိုရှင်း\",\"Start slideshow\":\"စလိုက်ရှိုးအား စတင်ရန်\",Submit:\"တင်သွင်းရန်\",Symbols:\"သင်္ကေတများ\",\"Travel & Places\":\"ခရီးသွားလာခြင်းနှင့် နေရာများ\",\"Type to search time zone\":\"ဒေသစံတော်ချိန်များ ရှာဖွေရန် စာရိုက်ပါ\",\"Unable to search the group\":\"အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ\",\"Write message, @ to mention someone …\":\"စာရေးသားရန်၊ တစ်စုံတစ်ဦးအား @ အသုံးပြု ရည်ညွှန်းရန်...\"}},{locale:\"nb\",translations:{\"{tag} (invisible)\":\"{tag} (usynlig)\",\"{tag} (restricted)\":\"{tag} (beskyttet)\",Actions:\"Handlinger\",Activities:\"Aktiviteter\",\"Animals & Nature\":\"Dyr og natur\",\"Anything shared with the same group of people will show up here\":\"Alt som er delt med den samme gruppen vil vises her\",\"Avatar of {displayName}\":\"Avataren til {displayName}\",\"Avatar of {displayName}, {status}\":\"{displayName}'s avatar, {status}\",\"Cancel changes\":\"Avbryt endringer\",\"Change title\":\"Endre tittel\",Choose:\"Velg\",\"Clear text\":\"Fjern tekst\",Close:\"Lukk\",\"Close modal\":\"Lukk modal\",\"Close navigation\":\"Lukk navigasjon\",\"Close sidebar\":\"Lukk sidepanel\",\"Confirm changes\":\"Bekreft endringer\",Custom:\"Tilpasset\",\"Edit item\":\"Rediger\",\"Error getting related resources\":\"Feil ved henting av relaterte ressurser\",\"Error parsing svg\":\"Feil ved parsing av svg\",\"External documentation for {title}\":\"Ekstern dokumentasjon for {title}\",Favorite:\"Favoritt\",Flags:\"Flagg\",\"Food & Drink\":\"Mat og drikke\",\"Frequently used\":\"Ofte brukt\",Global:\"Global\",\"Go back to the list\":\"Gå tilbake til listen\",\"Hide password\":\"Skjul passord\",\"Message limit of {count} characters reached\":\"Karakter begrensing {count} nådd i melding\",\"More items …\":\"Flere gjenstander...\",Next:\"Neste\",\"No emoji found\":\"Fant ingen emoji\",\"No results\":\"Ingen resultater\",Objects:\"Objekter\",Open:\"Åpne\",'Open link to \"{resourceTitle}\"':'Åpne link til \"{resourceTitle}\"',\"Open navigation\":\"Åpne navigasjon\",\"Password is secure\":\"Passordet er sikkert\",\"Pause slideshow\":\"Pause lysbildefremvisning\",\"People & Body\":\"Mennesker og kropp\",\"Pick an emoji\":\"Velg en emoji\",\"Please select a time zone:\":\"Vennligst velg tidssone\",Previous:\"Forrige\",\"Related resources\":\"Relaterte ressurser\",Search:\"Søk\",\"Search results\":\"Søkeresultater\",\"Select a tag\":\"Velg en merkelapp\",Settings:\"Innstillinger\",\"Settings navigation\":\"Navigasjonsinstillinger\",\"Show password\":\"Vis passord\",\"Smileys & Emotion\":\"Smilefjes og følelser\",\"Start slideshow\":\"Start lysbildefremvisning\",Submit:\"Send\",Symbols:\"Symboler\",\"Travel & Places\":\"Reise og steder\",\"Type to search time zone\":\"Tast for å søke etter tidssone\",\"Unable to search the group\":\"Kunne ikke søke i gruppen\",\"Undo changes\":\"Tilbakestill endringer\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Skriv melding, bruk \"@\" for å nevne noen, bruk \":\" for autofullføring av emoji...'}},{locale:\"nl\",translations:{\"{tag} (invisible)\":\"{tag} (onzichtbaar)\",\"{tag} (restricted)\":\"{tag} (beperkt)\",Actions:\"Acties\",Activities:\"Activiteiten\",\"Animals & Nature\":\"Dieren & Natuur\",\"Avatar of {displayName}\":\"Avatar van {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar van {displayName}, {status}\",\"Cancel changes\":\"Wijzigingen annuleren\",Choose:\"Kies\",Close:\"Sluiten\",\"Close navigation\":\"Navigatie sluiten\",\"Confirm changes\":\"Wijzigingen bevestigen\",Custom:\"Aangepast\",\"Edit item\":\"Item bewerken\",\"External documentation for {title}\":\"Externe documentatie voor {title}\",Flags:\"Vlaggen\",\"Food & Drink\":\"Eten & Drinken\",\"Frequently used\":\"Vaak gebruikt\",Global:\"Globaal\",\"Go back to the list\":\"Ga terug naar de lijst\",\"Message limit of {count} characters reached\":\"Berichtlimiet van {count} karakters bereikt\",Next:\"Volgende\",\"No emoji found\":\"Geen emoji gevonden\",\"No results\":\"Geen resultaten\",Objects:\"Objecten\",\"Open navigation\":\"Navigatie openen\",\"Pause slideshow\":\"Pauzeer diavoorstelling\",\"People & Body\":\"Mensen & Lichaam\",\"Pick an emoji\":\"Kies een emoji\",\"Please select a time zone:\":\"Selecteer een tijdzone:\",Previous:\"Vorige\",Search:\"Zoeken\",\"Search results\":\"Zoekresultaten\",\"Select a tag\":\"Selecteer een label\",Settings:\"Instellingen\",\"Settings navigation\":\"Instellingen navigatie\",\"Smileys & Emotion\":\"Smileys & Emotie\",\"Start slideshow\":\"Start diavoorstelling\",Submit:\"Verwerken\",Symbols:\"Symbolen\",\"Travel & Places\":\"Reizen & Plaatsen\",\"Type to search time zone\":\"Type om de tijdzone te zoeken\",\"Unable to search the group\":\"Kan niet in de groep zoeken\",\"Undo changes\":\"Wijzigingen ongedaan maken\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Schrijf bericht, @ om iemand te noemen, : voor emoji auto-aanvullen ...\"}},{locale:\"oc\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (limit)\",Actions:\"Accions\",Choose:\"Causir\",Close:\"Tampar\",Next:\"Seguent\",\"No results\":\"Cap de resultat\",\"Pause slideshow\":\"Metre en pausa lo diaporama\",Previous:\"Precedent\",\"Select a tag\":\"Seleccionar una etiqueta\",Settings:\"Paramètres\",\"Start slideshow\":\"Lançar lo diaporama\"}},{locale:\"pl\",translations:{\"{tag} (invisible)\":\"{tag} (niewidoczna)\",\"{tag} (restricted)\":\"{tag} (ograniczona)\",Actions:\"Działania\",Activities:\"Aktywność\",\"Animals & Nature\":\"Zwierzęta i natura\",\"Anything shared with the same group of people will show up here\":\"Tutaj pojawi się wszystko, co zostało udostępnione tej samej grupie osób\",\"Avatar of {displayName}\":\"Awatar {displayName}\",\"Avatar of {displayName}, {status}\":\"Awatar {displayName}, {status}\",\"Cancel changes\":\"Anuluj zmiany\",\"Change title\":\"Zmień tytuł\",Choose:\"Wybierz\",\"Clear text\":\"Wyczyść tekst\",Close:\"Zamknij\",\"Close modal\":\"Zamknij modal\",\"Close navigation\":\"Zamknij nawigację\",\"Close sidebar\":\"Zamknij pasek boczny\",\"Confirm changes\":\"Potwierdź zmiany\",Custom:\"Zwyczajne\",\"Edit item\":\"Edytuj element\",\"Error getting related resources\":\"Błąd podczas pobierania powiązanych zasobów\",\"Error parsing svg\":\"Błąd podczas analizowania svg\",\"External documentation for {title}\":\"Dokumentacja zewnętrzna dla {title}\",Favorite:\"Ulubiony\",Flags:\"Flagi\",\"Food & Drink\":\"Jedzenie i picie\",\"Frequently used\":\"Często używane\",Global:\"Globalnie\",\"Go back to the list\":\"Powrót do listy\",\"Hide password\":\"Ukryj hasło\",\"Message limit of {count} characters reached\":\"Przekroczono limit wiadomości wynoszący {count} znaków\",\"More items …\":\"Więcej pozycji…\",Next:\"Następny\",\"No emoji found\":\"Nie znaleziono emoji\",\"No results\":\"Brak wyników\",Objects:\"Obiekty\",Open:\"Otwórz\",'Open link to \"{resourceTitle}\"':'Otwórz link do \"{resourceTitle}\"',\"Open navigation\":\"Otwórz nawigację\",\"Password is secure\":\"Hasło jest bezpieczne\",\"Pause slideshow\":\"Wstrzymaj pokaz slajdów\",\"People & Body\":\"Ludzie i ciało\",\"Pick an emoji\":\"Wybierz emoji\",\"Please select a time zone:\":\"Wybierz strefę czasową:\",Previous:\"Poprzedni\",\"Related resources\":\"Powiązane zasoby\",Search:\"Szukaj\",\"Search results\":\"Wyniki wyszukiwania\",\"Select a tag\":\"Wybierz etykietę\",Settings:\"Ustawienia\",\"Settings navigation\":\"Ustawienia nawigacji\",\"Show password\":\"Pokaż hasło\",\"Smileys & Emotion\":\"Buźki i emotikony\",\"Start slideshow\":\"Rozpocznij pokaz slajdów\",Submit:\"Wyślij\",Symbols:\"Symbole\",\"Travel & Places\":\"Podróże i miejsca\",\"Type to search time zone\":\"Wpisz, aby wyszukać strefę czasową\",\"Unable to search the group\":\"Nie można przeszukać grupy\",\"Undo changes\":\"Cofnij zmiany\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Napisz wiadomość, \"@\" aby o kimś wspomnieć, \":\" dla autouzupełniania emoji…'}},{locale:\"pt_BR\",translations:{\"{tag} (invisible)\":\"{tag} (invisível)\",\"{tag} (restricted)\":\"{tag} (restrito) \",Actions:\"Ações\",Activities:\"Atividades\",\"Animals & Nature\":\"Animais & Natureza\",\"Anything shared with the same group of people will show up here\":\"Qualquer coisa compartilhada com o mesmo grupo de pessoas aparecerá aqui\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",\"Cancel changes\":\"Cancelar alterações\",\"Change title\":\"Alterar título\",Choose:\"Escolher\",\"Clear text\":\"Limpar texto\",Close:\"Fechar\",\"Close modal\":\"Fechar modal\",\"Close navigation\":\"Fechar navegação\",\"Close sidebar\":\"Fechar barra lateral\",\"Confirm changes\":\"Confirmar alterações\",Custom:\"Personalizado\",\"Edit item\":\"Editar item\",\"Error getting related resources\":\"Erro ao obter recursos relacionados\",\"Error parsing svg\":\"Erro ao analisar svg\",\"External documentation for {title}\":\"Documentação externa para {title}\",Favorite:\"Favorito\",Flags:\"Bandeiras\",\"Food & Drink\":\"Comida & Bebida\",\"Frequently used\":\"Mais usados\",Global:\"Global\",\"Go back to the list\":\"Volte para a lista\",\"Hide password\":\"Ocultar a senha\",\"Message limit of {count} characters reached\":\"Limite de mensagem de {count} caracteres atingido\",\"More items …\":\"Mais itens …\",Next:\"Próximo\",\"No emoji found\":\"Nenhum emoji encontrado\",\"No results\":\"Sem resultados\",Objects:\"Objetos\",Open:\"Aberto\",'Open link to \"{resourceTitle}\"':'Abrir link para \"{resourceTitle}\"',\"Open navigation\":\"Abrir navegação\",\"Password is secure\":\"A senha é segura\",\"Pause slideshow\":\"Pausar apresentação de slides\",\"People & Body\":\"Pessoas & Corpo\",\"Pick an emoji\":\"Escolha um emoji\",\"Please select a time zone:\":\"Selecione um fuso horário: \",Previous:\"Anterior\",\"Related resources\":\"Recursos relacionados\",Search:\"Pesquisar\",\"Search results\":\"Resultados da pesquisa\",\"Select a tag\":\"Selecionar uma tag\",Settings:\"Configurações\",\"Settings navigation\":\"Navegação de configurações\",\"Show password\":\"Mostrar senha\",\"Smileys & Emotion\":\"Smiles & Emoções\",\"Start slideshow\":\"Iniciar apresentação de slides\",Submit:\"Enviar\",Symbols:\"Símbolo\",\"Travel & Places\":\"Viagem & Lugares\",\"Type to search time zone\":\"Digite para pesquisar o fuso horário \",\"Unable to search the group\":\"Não foi possível pesquisar o grupo\",\"Undo changes\":\"Desfazer modificações\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Escreva mensagens, use \"@\" para mencionar algum, use \":\" for autocompletar emoji …'}},{locale:\"pt_PT\",translations:{\"{tag} (invisible)\":\"{tag} (invisivel)\",\"{tag} (restricted)\":\"{tag} (restrito)\",Actions:\"Ações\",Choose:\"Escolher\",Close:\"Fechar\",Next:\"Seguinte\",\"No results\":\"Sem resultados\",\"Pause slideshow\":\"Pausar diaporama\",Previous:\"Anterior\",\"Select a tag\":\"Selecionar uma etiqueta\",Settings:\"Definições\",\"Start slideshow\":\"Iniciar diaporama\",\"Unable to search the group\":\"Não é possível pesquisar o grupo\"}},{locale:\"ro\",translations:{\"{tag} (invisible)\":\"{tag} (invizibil)\",\"{tag} (restricted)\":\"{tag} (restricționat)\",Actions:\"Acțiuni\",Activities:\"Activități\",\"Animals & Nature\":\"Animale și natură\",\"Anything shared with the same group of people will show up here\":\"Tot ceea ce este partajat cu același grup de persoane va fi afișat aici\",\"Avatar of {displayName}\":\"Avatarul lui {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatarul lui {displayName}, {status}\",\"Cancel changes\":\"Anulează modificările\",\"Change title\":\"Modificați titlul\",Choose:\"Alegeți\",\"Clear text\":\"Șterge textul\",Close:\"Închideți\",\"Close modal\":\"Închideți modulul\",\"Close navigation\":\"Închideți navigarea\",\"Close sidebar\":\"Închide bara laterală\",\"Confirm changes\":\"Confirmați modificările\",Custom:\"Personalizat\",\"Edit item\":\"Editați elementul\",\"Error getting related resources\":\" Eroare la returnarea resurselor legate\",\"Error parsing svg\":\"Eroare de analizare a svg\",\"External documentation for {title}\":\"Documentație externă pentru {title}\",Favorite:\"Favorit\",Flags:\"Marcaje\",\"Food & Drink\":\"Alimente și băuturi\",\"Frequently used\":\"Utilizate frecvent\",Global:\"Global\",\"Go back to the list\":\"Întoarceți-vă la listă\",\"Hide password\":\"Ascunde parola\",\"Message limit of {count} characters reached\":\"Limita mesajului de {count} caractere a fost atinsă\",\"More items …\":\"Mai multe articole ...\",Next:\"Următorul\",\"No emoji found\":\"Nu s-a găsit niciun emoji\",\"No results\":\"Nu există rezultate\",Objects:\"Obiecte\",Open:\"Deschideți\",'Open link to \"{resourceTitle}\"':'Deschide legătura la \"{resourceTitle}\"',\"Open navigation\":\"Deschideți navigația\",\"Password is secure\":\"Parola este sigură\",\"Pause slideshow\":\"Pauză prezentare de diapozitive\",\"People & Body\":\"Oameni și corp\",\"Pick an emoji\":\"Alege un emoji\",\"Please select a time zone:\":\"Vă rugăm să selectați un fus orar:\",Previous:\"Anterior\",\"Related resources\":\"Resurse legate\",Search:\"Căutare\",\"Search results\":\"Rezultatele căutării\",\"Select a tag\":\"Selectați o etichetă\",Settings:\"Setări\",\"Settings navigation\":\"Navigare setări\",\"Show password\":\"Arată parola\",\"Smileys & Emotion\":\"Zâmbete și emoții\",\"Start slideshow\":\"Începeți prezentarea de diapozitive\",Submit:\"Trimiteți\",Symbols:\"Simboluri\",\"Travel & Places\":\"Călătorii și locuri\",\"Type to search time zone\":\"Tastați pentru a căuta fusul orar\",\"Unable to search the group\":\"Imposibilitatea de a căuta în grup\",\"Undo changes\":\"Anularea modificărilor\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Scrie un mesaj, folosește \"@\" pentru a menționa pe cineva, folosește \":\" pentru autocompletarea cu emoji ...'}},{locale:\"ru\",translations:{\"{tag} (invisible)\":\"{tag} (невидимое)\",\"{tag} (restricted)\":\"{tag} (ограниченное)\",Actions:\"Действия \",Activities:\"События\",\"Animals & Nature\":\"Животные и природа \",\"Avatar of {displayName}\":\"Аватар {displayName}\",\"Avatar of {displayName}, {status}\":\"Фотография {displayName}, {status}\",\"Cancel changes\":\"Отменить изменения\",Choose:\"Выберите\",Close:\"Закрыть\",\"Close modal\":\"Закрыть модальное окно\",\"Close navigation\":\"Закрыть навигацию\",\"Confirm changes\":\"Подтвердить изменения\",Custom:\"Пользовательское\",\"Edit item\":\"Изменить элемент\",\"External documentation for {title}\":\"Внешняя документация для {title}\",Flags:\"Флаги\",\"Food & Drink\":\"Еда, напиток\",\"Frequently used\":\"Часто используемый\",Global:\"Глобальный\",\"Go back to the list\":\"Вернуться к списку\",items:\"элементов\",\"Message limit of {count} characters reached\":\"Достигнуто ограничение на количество символов в {count}\",\"More {dashboardItemType} …\":\"Больше {dashboardItemType} …\",Next:\"Следующее\",\"No emoji found\":\"Эмодзи не найдено\",\"No results\":\"Результаты отсуствуют\",Objects:\"Объекты\",Open:\"Открыть\",\"Open navigation\":\"Открыть навигацию\",\"Pause slideshow\":\"Приостановить показ слйдов\",\"People & Body\":\"Люди и тело\",\"Pick an emoji\":\"Выберите эмодзи\",\"Please select a time zone:\":\"Пожалуйста, выберите часовой пояс:\",Previous:\"Предыдущее\",Search:\"Поиск\",\"Search results\":\"Результаты поиска\",\"Select a tag\":\"Выберите метку\",Settings:\"Параметры\",\"Settings navigation\":\"Навигация по настройкам\",\"Smileys & Emotion\":\"Смайлики и эмоции\",\"Start slideshow\":\"Начать показ слайдов\",Submit:\"Утвердить\",Symbols:\"Символы\",\"Travel & Places\":\"Путешествия и места\",\"Type to search time zone\":\"Введите для поиска часового пояса\",\"Unable to search the group\":\"Невозможно найти группу\",\"Undo changes\":\"Отменить изменения\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Напишите сообщение, @ - чтобы упомянуть кого-то, : - для автозаполнения эмодзи …\"}},{locale:\"sk\",translations:{\"{tag} (invisible)\":\"{tag} (neviditeľný)\",\"{tag} (restricted)\":\"{tag} (obmedzený)\",Actions:\"Akcie\",Activities:\"Aktivity\",\"Animals & Nature\":\"Zvieratá a príroda\",\"Avatar of {displayName}\":\"Avatar {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar {displayName}, {status}\",\"Cancel changes\":\"Zrušiť zmeny\",Choose:\"Vybrať\",Close:\"Zatvoriť\",\"Close navigation\":\"Zavrieť navigáciu\",\"Confirm changes\":\"Potvrdiť zmeny\",Custom:\"Zvyk\",\"Edit item\":\"Upraviť položku\",\"External documentation for {title}\":\"Externá dokumentácia pre {title}\",Flags:\"Vlajky\",\"Food & Drink\":\"Jedlo a nápoje\",\"Frequently used\":\"Často používané\",Global:\"Globálne\",\"Go back to the list\":\"Naspäť na zoznam\",\"Message limit of {count} characters reached\":\"Limit správy na {count} znakov dosiahnutý\",Next:\"Ďalší\",\"No emoji found\":\"Nenašli sa žiadne emodži\",\"No results\":\"Žiadne výsledky\",Objects:\"Objekty\",\"Open navigation\":\"Otvoriť navigáciu\",\"Pause slideshow\":\"Pozastaviť prezentáciu\",\"People & Body\":\"Ľudia a telo\",\"Pick an emoji\":\"Vyberte si emodži\",\"Please select a time zone:\":\"Prosím vyberte časovú zónu:\",Previous:\"Predchádzajúci\",Search:\"Hľadať\",\"Search results\":\"Výsledky vyhľadávania\",\"Select a tag\":\"Vybrať štítok\",Settings:\"Nastavenia\",\"Settings navigation\":\"Navigácia v nastaveniach\",\"Smileys & Emotion\":\"Smajlíky a emócie\",\"Start slideshow\":\"Začať prezentáciu\",Submit:\"Odoslať\",Symbols:\"Symboly\",\"Travel & Places\":\"Cestovanie a miesta\",\"Type to search time zone\":\"Začníte písať pre vyhľadávanie časovej zóny\",\"Unable to search the group\":\"Skupinu sa nepodarilo nájsť\",\"Undo changes\":\"Vrátiť zmeny\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Napíšte správu, @ ak chcete niekoho spomenúť, : pre automatické dopĺňanie emotikonov…\"}},{locale:\"sl\",translations:{\"{tag} (invisible)\":\"{tag} (nevidno)\",\"{tag} (restricted)\":\"{tag} (omejeno)\",Actions:\"Dejanja\",Activities:\"Dejavnosti\",\"Animals & Nature\":\"Živali in Narava\",\"Avatar of {displayName}\":\"Podoba {displayName}\",\"Avatar of {displayName}, {status}\":\"Prikazna slika {displayName}, {status}\",\"Cancel changes\":\"Prekliči spremembe\",\"Change title\":\"Spremeni naziv\",Choose:\"Izbor\",\"Clear text\":\"Počisti besedilo\",Close:\"Zapri\",\"Close modal\":\"Zapri pojavno okno\",\"Close navigation\":\"Zapri krmarjenje\",\"Close sidebar\":\"Zapri stransko vrstico\",\"Confirm changes\":\"Potrdi spremembe\",Custom:\"Po meri\",\"Edit item\":\"Uredi predmet\",\"Error getting related resources\":\"Napaka pridobivanja povezanih virov\",\"External documentation for {title}\":\"Zunanja dokumentacija za {title}\",Favorite:\"Priljubljeno\",Flags:\"Zastavice\",\"Food & Drink\":\"Hrana in Pijača\",\"Frequently used\":\"Pogostost uporabe\",Global:\"Splošno\",\"Go back to the list\":\"Vrni se na seznam\",\"Hide password\":\"Skrij geslo\",\"Message limit of {count} characters reached\":\"Dosežena omejitev {count} znakov na sporočilo.\",\"More items …\":\"Več predmetov ...\",Next:\"Naslednji\",\"No emoji found\":\"Ni najdenih izraznih ikon\",\"No results\":\"Ni zadetkov\",Objects:\"Predmeti\",Open:\"Odpri\",'Open link to \"{resourceTitle}\"':\"Odpri povezavo do »{resourceTitle}«\",\"Open navigation\":\"Odpri krmarjenje\",\"Password is secure\":\"Geslo je varno\",\"Pause slideshow\":\"Ustavi predstavitev\",\"People & Body\":\"Ljudje in Telo\",\"Pick a date\":\"Izbor datuma\",\"Pick a date and a time\":\"Izbor datuma in časa\",\"Pick a month\":\"Izbor meseca\",\"Pick a time\":\"Izbor časa\",\"Pick a week\":\"Izbor tedna\",\"Pick a year\":\"Izbor leta\",\"Pick an emoji\":\"Izbor izrazne ikone\",\"Please select a time zone:\":\"Izbor časovnega pasu:\",Previous:\"Predhodni\",\"Related resources\":\"Povezani viri\",Search:\"Iskanje\",\"Search results\":\"Zadetki iskanja\",\"Select a tag\":\"Izbor oznake\",Settings:\"Nastavitve\",\"Settings navigation\":\"Krmarjenje nastavitev\",\"Show password\":\"Pokaži geslo\",\"Smileys & Emotion\":\"Izrazne ikone\",\"Start slideshow\":\"Začni predstavitev\",Submit:\"Pošlji\",Symbols:\"Simboli\",\"Travel & Places\":\"Potovanja in Kraji\",\"Type to search time zone\":\"Vpišite niz za iskanje časovnega pasu\",\"Unable to search the group\":\"Ni mogoče iskati po skupini\",\"Undo changes\":\"Razveljavi spremembe\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Napišite sporočilo, za omembo pred ime postavite@, začnite z : za vstavljanje izraznih ikon …\"}},{locale:\"sr\",translations:{\"{tag} (invisible)\":\"{tag} (nevidljivo)\",\"{tag} (restricted)\":\"{tag} (ograničeno)\",Actions:\"Radnje\",Activities:\"Aktivnosti\",\"Animals & Nature\":\"Životinje i Priroda\",\"Avatar of {displayName}\":\"Avatar za {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar za {displayName}, {status}\",\"Cancel changes\":\"Otkaži izmene\",\"Change title\":\"Izmeni naziv\",Choose:\"Изаберите\",Close:\"Затвори\",\"Close modal\":\"Zatvori modal\",\"Close navigation\":\"Zatvori navigaciju\",\"Close sidebar\":\"Zatvori bočnu traku\",\"Confirm changes\":\"Potvrdite promene\",Custom:\"Po meri\",\"Edit item\":\"Uredi stavku\",\"External documentation for {title}\":\"Eksterna dokumentacija za {title}\",Favorite:\"Omiljeni\",Flags:\"Zastave\",\"Food & Drink\":\"Hrana i Piće\",\"Frequently used\":\"Često korišćeno\",Global:\"Globalno\",\"Go back to the list\":\"Natrag na listu\",items:\"stavke\",\"Message limit of {count} characters reached\":\"Dostignuto je ograničenje za poruke od {count} znakova\",\"More {dashboardItemType} …\":\"Više {dashboardItemType} …\",Next:\"Следеће\",\"No emoji found\":\"Nije pronađen nijedan emodži\",\"No results\":\"Нема резултата\",Objects:\"Objekti\",Open:\"Otvori\",\"Open navigation\":\"Otvori navigaciju\",\"Pause slideshow\":\"Паузирај слајд шоу\",\"People & Body\":\"Ljudi i Telo\",\"Pick an emoji\":\"Izaberi emodži\",\"Please select a time zone:\":\"Molimo izaberite vremensku zonu:\",Previous:\"Претходно\",Search:\"Pretraži\",\"Search results\":\"Rezultati pretrage\",\"Select a tag\":\"Изаберите ознаку\",Settings:\"Поставке\",\"Settings navigation\":\"Navigacija u podešavanjima\",\"Smileys & Emotion\":\"Smajli i Emocije\",\"Start slideshow\":\"Покрени слајд шоу\",Submit:\"Prihvati\",Symbols:\"Simboli\",\"Travel & Places\":\"Putovanja i Mesta\",\"Type to search time zone\":\"Ukucaj da pretražiš vremenske zone\",\"Unable to search the group\":\"Nije moguće pretražiti grupu\",\"Undo changes\":\"Poništi promene\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Napišite poruku, @ da pomenete nekoga, : za automatsko dovršavanje emodžija…\"}},{locale:\"sv\",translations:{\"{tag} (invisible)\":\"{tag} (osynlig)\",\"{tag} (restricted)\":\"{tag} (begränsad)\",Actions:\"Åtgärder\",Activities:\"Aktiviteter\",\"Animals & Nature\":\"Djur & Natur\",\"Anything shared with the same group of people will show up here\":\"Något som delats med samma grupp av personer kommer att visas här\",\"Avatar of {displayName}\":\"{displayName}s avatar\",\"Avatar of {displayName}, {status}\":\"{displayName}s avatar, {status}\",\"Cancel changes\":\"Avbryt ändringar\",\"Change title\":\"Ändra titel\",Choose:\"Välj\",\"Clear text\":\"Ta bort text\",Close:\"Stäng\",\"Close modal\":\"Stäng modal\",\"Close navigation\":\"Stäng navigering\",\"Close sidebar\":\"Stäng sidopanel\",\"Confirm changes\":\"Bekräfta ändringar\",Custom:\"Anpassad\",\"Edit item\":\"Ändra\",\"Error getting related resources\":\"Problem att hämta relaterade resurser\",\"Error parsing svg\":\"Fel vid inläsning av svg\",\"External documentation for {title}\":\"Extern dokumentation för {title}\",Favorite:\"Favorit\",Flags:\"Flaggor\",\"Food & Drink\":\"Mat & Dryck\",\"Frequently used\":\"Används ofta\",Global:\"Global\",\"Go back to the list\":\"Gå tillbaka till listan\",\"Hide password\":\"Göm lössenordet\",\"Message limit of {count} characters reached\":\"Meddelandegräns {count} tecken används\",\"More items …\":\"Fler objekt\",Next:\"Nästa\",\"No emoji found\":\"Hittade inga emojis\",\"No results\":\"Inga resultat\",Objects:\"Objekt\",Open:\"Öppna\",'Open link to \"{resourceTitle}\"':'Öppna länk till \"{resourceTitle}\"',\"Open navigation\":\"Öppna navigering\",\"Password is secure\":\"Lössenordet är säkert\",\"Pause slideshow\":\"Pausa bildspelet\",\"People & Body\":\"Kropp & Själ\",\"Pick an emoji\":\"Välj en emoji\",\"Please select a time zone:\":\"Välj tidszon:\",Previous:\"Föregående\",\"Related resources\":\"Relaterade resurser\",Search:\"Sök\",\"Search results\":\"Sökresultat\",\"Select a tag\":\"Välj en tag\",Settings:\"Inställningar\",\"Settings navigation\":\"Inställningsmeny\",\"Show password\":\"Visa lössenordet\",\"Smileys & Emotion\":\"Selfies & Känslor\",\"Start slideshow\":\"Starta bildspelet\",Submit:\"Skicka\",Symbols:\"Symboler\",\"Travel & Places\":\"Resor & Sevärdigheter\",\"Type to search time zone\":\"Skriv för att välja tidszon\",\"Unable to search the group\":\"Kunde inte söka i gruppen\",\"Undo changes\":\"Ångra ändringar\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Skriv meddelande, använd \"@\" för att nämna någon, använd \":\" för automatiska emojiförslag ...'}},{locale:\"tr\",translations:{\"{tag} (invisible)\":\"{tag} (görünmez)\",\"{tag} (restricted)\":\"{tag} (kısıtlı)\",Actions:\"İşlemler\",Activities:\"Etkinlikler\",\"Animals & Nature\":\"Hayvanlar ve Doğa\",\"Anything shared with the same group of people will show up here\":\"Aynı kişi grubu ile paylaşılan herşey burada görüntülenir\",\"Avatar of {displayName}\":\"{displayName} avatarı\",\"Avatar of {displayName}, {status}\":\"{displayName}, {status} avatarı\",\"Cancel changes\":\"Değişiklikleri iptal et\",\"Change title\":\"Başlığı değiştir\",Choose:\"Seçin\",\"Clear text\":\"Metni temizle\",Close:\"Kapat\",\"Close modal\":\"Üste açılan pencereyi kapat\",\"Close navigation\":\"Gezinmeyi kapat\",\"Close sidebar\":\"Yan çubuğu kapat\",\"Confirm changes\":\"Değişiklikleri onayla\",Custom:\"Özel\",\"Edit item\":\"Ögeyi düzenle\",\"Error getting related resources\":\"İlgili kaynaklar alınırken sorun çıktı\",\"Error parsing svg\":\"svg işlenirken sorun çıktı\",\"External documentation for {title}\":\"{title} için dış belgeler\",Favorite:\"Sık kullanılanlara ekle\",Flags:\"Bayraklar\",\"Food & Drink\":\"Yeme ve içme\",\"Frequently used\":\"Sık kullanılanlar\",Global:\"Evrensel\",\"Go back to the list\":\"Listeye dön\",\"Hide password\":\"Parolayı gizle\",\"Message limit of {count} characters reached\":\"{count} karakter ileti sınırına ulaşıldı\",\"More items …\":\"Diğer ögeler…\",Next:\"Sonraki\",\"No emoji found\":\"Herhangi bir emoji bulunamadı\",\"No results\":\"Herhangi bir sonuç bulunamadı\",Objects:\"Nesneler\",Open:\"Aç\",'Open link to \"{resourceTitle}\"':'\"{resourceTitle}\" bağlantısını aç',\"Open navigation\":\"Gezinmeyi aç\",\"Password is secure\":\"Parola güvenli\",\"Pause slideshow\":\"Slayt sunumunu duraklat\",\"People & Body\":\"İnsanlar ve beden\",\"Pick an emoji\":\"Bir emoji seçin\",\"Please select a time zone:\":\"Lütfen bir saat dilimi seçin:\",Previous:\"Önceki\",\"Related resources\":\"İlgili kaynaklar\",Search:\"Arama\",\"Search results\":\"Arama sonuçları\",\"Select a tag\":\"Bir etiket seçin\",Settings:\"Ayarlar\",\"Settings navigation\":\"Gezinme ayarları\",\"Show password\":\"Parolayı görüntüle\",\"Smileys & Emotion\":\"İfadeler ve duygular\",\"Start slideshow\":\"Slayt sunumunu başlat\",Submit:\"Gönder\",Symbols:\"Simgeler\",\"Travel & Places\":\"Gezi ve yerler\",\"Type to search time zone\":\"Saat dilimi aramak için yazmaya başlayın\",\"Unable to search the group\":\"Grupta arama yapılamadı\",\"Undo changes\":\"Değişiklikleri geri al\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'İleti yazın, birini anmak için @, otomatik emoji tamamlamak için \":\" kullanın…'}},{locale:\"uk\",translations:{\"{tag} (invisible)\":\"{tag} (невидимий)\",\"{tag} (restricted)\":\"{tag} (обмежений)\",Actions:\"Дії\",Activities:\"Діяльність\",\"Animals & Nature\":\"Тварини та природа\",\"Avatar of {displayName}\":\"Аватар {displayName}\",\"Avatar of {displayName}, {status}\":\"Аватар {displayName}, {status}\",\"Cancel changes\":\"Скасувати зміни\",\"Change title\":\"Змінити назву\",Choose:\"Виберіть\",\"Clear text\":\"Очистити текст\",Close:\"Закрити\",\"Close modal\":\"Закрити модаль\",\"Close navigation\":\"Закрити навігацію\",\"Close sidebar\":\"Закрити бічну панель\",\"Confirm changes\":\"Підтвердити зміни\",Custom:\"Власне\",\"Edit item\":\"Редагувати елемент\",\"External documentation for {title}\":\"Зовнішня документація для {title}\",Favorite:\"Із зірочкою\",Flags:\"Прапори\",\"Food & Drink\":\"Їжа та напої\",\"Frequently used\":\"Найчастіші\",Global:\"Глобальний\",\"Go back to the list\":\"Повернутися до списку\",\"Hide password\":\"Приховати пароль\",items:\"елементи\",\"Message limit of {count} characters reached\":\"Вичерпано ліміт у {count} символів для повідомлення\",\"More {dashboardItemType} …\":\"Більше {dashboardItemType}…\",Next:\"Вперед\",\"No emoji found\":\"Емоційки відсутні\",\"No results\":\"Відсутні результати\",Objects:\"Об'єкти\",Open:\"Відкрити\",\"Open navigation\":\"Відкрити навігацію\",\"Password is secure\":\"Пароль безпечний\",\"Pause slideshow\":\"Пауза у показі слайдів\",\"People & Body\":\"Люди та жести\",\"Pick an emoji\":\"Виберіть емоційку\",\"Please select a time zone:\":\"Виберіть часовий пояс:\",Previous:\"Назад\",Search:\"Пошук\",\"Search results\":\"Результати пошуку\",\"Select a tag\":\"Виберіть позначку\",Settings:\"Налаштування\",\"Settings navigation\":\"Навігація у налаштуваннях\",\"Show password\":\"Показати пароль\",\"Smileys & Emotion\":\"Смайли та емоції\",\"Start slideshow\":\"Почати показ слайдів\",Submit:\"Надіслати\",Symbols:\"Символи\",\"Travel & Places\":\"Поїздки та місця\",\"Type to search time zone\":\"Введіть для пошуку часовий пояс\",\"Unable to search the group\":\"Неможливо шукати в групі\",\"Undo changes\":\"Скасувати зміни\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Напишіть повідомлення, @, щоб згадати когось, : для автозаповнення емодзі…\"}},{locale:\"zh_CN\",translations:{\"{tag} (invisible)\":\"{tag} (不可见)\",\"{tag} (restricted)\":\"{tag} (受限)\",Actions:\"行为\",Activities:\"活动\",\"Animals & Nature\":\"动物 & 自然\",\"Anything shared with the same group of people will show up here\":\"与同组用户分享的所有内容都会显示于此\",\"Avatar of {displayName}\":\"{displayName}的头像\",\"Avatar of {displayName}, {status}\":\"{displayName}的头像,{status}\",\"Cancel changes\":\"取消更改\",\"Change title\":\"更改标题\",Choose:\"选择\",\"Clear text\":\"清除文本\",Close:\"关闭\",\"Close modal\":\"关闭窗口\",\"Close navigation\":\"关闭导航\",\"Close sidebar\":\"关闭侧边栏\",\"Confirm changes\":\"确认更改\",Custom:\"自定义\",\"Edit item\":\"编辑项目\",\"Error getting related resources\":\"获取相关资源时出错\",\"Error parsing svg\":\"解析 svg 时出错\",\"External documentation for {title}\":\"{title}的外部文档\",Favorite:\"喜爱\",Flags:\"旗帜\",\"Food & Drink\":\"食物 & 饮品\",\"Frequently used\":\"经常使用\",Global:\"全局\",\"Go back to the list\":\"返回至列表\",\"Hide password\":\"隐藏密码\",\"Message limit of {count} characters reached\":\"已达到 {count} 个字符的消息限制\",\"More items …\":\"更多项目…\",Next:\"下一个\",\"No emoji found\":\"表情未找到\",\"No results\":\"无结果\",Objects:\"物体\",Open:\"打开\",'Open link to \"{resourceTitle}\"':'打开\"{resourceTitle}\"的连接',\"Open navigation\":\"开启导航\",\"Password is secure\":\"密码安全\",\"Pause slideshow\":\"暂停幻灯片\",\"People & Body\":\"人 & 身体\",\"Pick an emoji\":\"选择一个表情\",\"Please select a time zone:\":\"请选择一个时区:\",Previous:\"上一个\",\"Related resources\":\"相关资源\",Search:\"搜索\",\"Search results\":\"搜索结果\",\"Select a tag\":\"选择一个标签\",Settings:\"设置\",\"Settings navigation\":\"设置向导\",\"Show password\":\"显示密码\",\"Smileys & Emotion\":\"笑脸 & 情感\",\"Start slideshow\":\"开始幻灯片\",Submit:\"提交\",Symbols:\"符号\",\"Travel & Places\":\"旅游 & 地点\",\"Type to search time zone\":\"打字以搜索时区\",\"Unable to search the group\":\"无法搜索分组\",\"Undo changes\":\"撤销更改\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'写信息,使用\"@\"来提及某人,使用\":\"进行表情符号自动完成 ...'}},{locale:\"zh_HK\",translations:{\"{tag} (invisible)\":\"{tag} (隱藏)\",\"{tag} (restricted)\":\"{tag} (受限)\",Actions:\"動作\",Activities:\"活動\",\"Animals & Nature\":\"動物與自然\",\"Anything shared with the same group of people will show up here\":\"與同一組人共享的任何內容都會顯示在此處\",\"Avatar of {displayName}\":\"{displayName} 的頭像\",\"Avatar of {displayName}, {status}\":\"{displayName} 的頭像,{status}\",\"Cancel changes\":\"取消更改\",\"Change title\":\"更改標題\",Choose:\"選擇\",\"Clear text\":\"清除文本\",Close:\"關閉\",\"Close modal\":\"關閉模態\",\"Close navigation\":\"關閉導航\",\"Close sidebar\":\"關閉側邊欄\",\"Confirm changes\":\"確認更改\",Custom:\"自定義\",\"Edit item\":\"編輯項目\",\"Error getting related resources\":\"獲取相關資源出錯\",\"Error parsing svg\":\"解析 svg 時出錯\",\"External documentation for {title}\":\"{title} 的外部文檔\",Favorite:\"喜愛\",Flags:\"旗幟\",\"Food & Drink\":\"食物與飲料\",\"Frequently used\":\"經常使用\",Global:\"全球的\",\"Go back to the list\":\"返回清單\",\"Hide password\":\"隱藏密碼\",\"Message limit of {count} characters reached\":\"已達到訊息最多 {count} 字元限制\",\"More items …\":\"更多項目 …\",Next:\"下一個\",\"No emoji found\":\"未找到表情符號\",\"No results\":\"無結果\",Objects:\"物件\",Open:\"打開\",'Open link to \"{resourceTitle}\"':\"打開指向 “{resourceTitle}” 的鏈結\",\"Open navigation\":\"開啟導航\",\"Password is secure\":\"密碼是安全的\",\"Pause slideshow\":\"暫停幻燈片\",\"People & Body\":\"人物\",\"Pick an emoji\":\"選擇表情符號\",\"Please select a time zone:\":\"請選擇時區:\",Previous:\"上一個\",\"Related resources\":\"相關資源\",Search:\"搜尋\",\"Search results\":\"搜尋結果\",\"Select a tag\":\"選擇標籤\",Settings:\"設定\",\"Settings navigation\":\"設定值導覽\",\"Show password\":\"顯示密碼\",\"Smileys & Emotion\":\"表情\",\"Start slideshow\":\"開始幻燈片\",Submit:\"提交\",Symbols:\"標誌\",\"Travel & Places\":\"旅遊與景點\",\"Type to search time zone\":\"鍵入以搜索時區\",\"Unable to search the group\":\"無法搜尋群組\",\"Undo changes\":\"取消更改\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'寫訊息,使用 \"@\" 來指代某人,使用 \":\" 用於表情符號自動填充 ...'}},{locale:\"zh_TW\",translations:{\"{tag} (invisible)\":\"{tag}(隱藏)\",\"{tag} (restricted)\":\"{tag}(受限)\",Actions:\"動作\",Activities:\"活動\",\"Animals & Nature\":\"動物與自然\",Choose:\"選擇\",Close:\"關閉\",Custom:\"自定義\",Flags:\"旗幟\",\"Food & Drink\":\"食物與飲料\",\"Frequently used\":\"最近使用\",\"Message limit of {count} characters reached\":\"已達到訊息最多 {count} 字元限制\",Next:\"下一個\",\"No emoji found\":\"未找到表情符號\",\"No results\":\"無結果\",Objects:\"物件\",\"Pause slideshow\":\"暫停幻燈片\",\"People & Body\":\"人物\",\"Pick an emoji\":\"選擇表情符號\",Previous:\"上一個\",Search:\"搜尋\",\"Search results\":\"搜尋結果\",\"Select a tag\":\"選擇標籤\",Settings:\"設定\",\"Settings navigation\":\"設定值導覽\",\"Smileys & Emotion\":\"表情\",\"Start slideshow\":\"開始幻燈片\",Symbols:\"標誌\",\"Travel & Places\":\"旅遊與景點\",\"Unable to search the group\":\"無法搜尋群組\",\"Write message, @ to mention someone …\":\"輸入訊息時可使用 @ 來標示某人...\"}}].forEach((t=>{const e={};for(const n in t.translations)t.translations[n].pluralId?e[n]={msgid:n,msgid_plural:t.translations[n].pluralId,msgstr:t.translations[n].msgstr}:e[n]={msgid:n,msgstr:[t.translations[n]]};V.addTranslation(t.locale,{translations:{\"\":e}})}));const J=V.build(),X=J.ngettext.bind(J),tt=J.gettext.bind(J);function et(t){return t.split(\"_\").join(\" \").replace(\"St \",\"St. \").split(\"/\").join(\" - \")}const nt=JSON.parse('{\"i8\":\"2.2019c\",\"j3\":{\"AUS Central Standard Time\":{\"aliasTo\":\"Australia/Darwin\"},\"AUS Eastern Standard Time\":{\"aliasTo\":\"Australia/Sydney\"},\"Afghanistan Standard Time\":{\"aliasTo\":\"Asia/Kabul\"},\"Africa/Asmera\":{\"aliasTo\":\"Africa/Asmara\"},\"Africa/Timbuktu\":{\"aliasTo\":\"Africa/Bamako\"},\"Alaskan Standard Time\":{\"aliasTo\":\"America/Anchorage\"},\"America/Argentina/ComodRivadavia\":{\"aliasTo\":\"America/Argentina/Catamarca\"},\"America/Buenos_Aires\":{\"aliasTo\":\"America/Argentina/Buenos_Aires\"},\"America/Louisville\":{\"aliasTo\":\"America/Kentucky/Louisville\"},\"America/Montreal\":{\"aliasTo\":\"America/Toronto\"},\"America/Santa_Isabel\":{\"aliasTo\":\"America/Tijuana\"},\"Arab Standard Time\":{\"aliasTo\":\"Asia/Riyadh\"},\"Arabian Standard Time\":{\"aliasTo\":\"Asia/Dubai\"},\"Arabic Standard Time\":{\"aliasTo\":\"Asia/Baghdad\"},\"Argentina Standard Time\":{\"aliasTo\":\"America/Argentina/Buenos_Aires\"},\"Asia/Calcutta\":{\"aliasTo\":\"Asia/Kolkata\"},\"Asia/Katmandu\":{\"aliasTo\":\"Asia/Kathmandu\"},\"Asia/Rangoon\":{\"aliasTo\":\"Asia/Yangon\"},\"Asia/Saigon\":{\"aliasTo\":\"Asia/Ho_Chi_Minh\"},\"Atlantic Standard Time\":{\"aliasTo\":\"America/Halifax\"},\"Atlantic/Faeroe\":{\"aliasTo\":\"Atlantic/Faroe\"},\"Atlantic/Jan_Mayen\":{\"aliasTo\":\"Europe/Oslo\"},\"Azerbaijan Standard Time\":{\"aliasTo\":\"Asia/Baku\"},\"Azores Standard Time\":{\"aliasTo\":\"Atlantic/Azores\"},\"Bahia Standard Time\":{\"aliasTo\":\"America/Bahia\"},\"Bangladesh Standard Time\":{\"aliasTo\":\"Asia/Dhaka\"},\"Belarus Standard Time\":{\"aliasTo\":\"Europe/Minsk\"},\"Canada Central Standard Time\":{\"aliasTo\":\"America/Regina\"},\"Cape Verde Standard Time\":{\"aliasTo\":\"Atlantic/Cape_Verde\"},\"Caucasus Standard Time\":{\"aliasTo\":\"Asia/Yerevan\"},\"Cen. Australia Standard Time\":{\"aliasTo\":\"Australia/Adelaide\"},\"Central America Standard Time\":{\"aliasTo\":\"America/Guatemala\"},\"Central Asia Standard Time\":{\"aliasTo\":\"Asia/Almaty\"},\"Central Brazilian Standard Time\":{\"aliasTo\":\"America/Cuiaba\"},\"Central Europe Standard Time\":{\"aliasTo\":\"Europe/Budapest\"},\"Central European Standard Time\":{\"aliasTo\":\"Europe/Warsaw\"},\"Central Pacific Standard Time\":{\"aliasTo\":\"Pacific/Guadalcanal\"},\"Central Standard Time\":{\"aliasTo\":\"America/Chicago\"},\"Central Standard Time (Mexico)\":{\"aliasTo\":\"America/Mexico_City\"},\"China Standard Time\":{\"aliasTo\":\"Asia/Shanghai\"},\"E. Africa Standard Time\":{\"aliasTo\":\"Africa/Nairobi\"},\"E. Australia Standard Time\":{\"aliasTo\":\"Australia/Brisbane\"},\"E. South America Standard Time\":{\"aliasTo\":\"America/Sao_Paulo\"},\"Eastern Standard Time\":{\"aliasTo\":\"America/New_York\"},\"Egypt Standard Time\":{\"aliasTo\":\"Africa/Cairo\"},\"Ekaterinburg Standard Time\":{\"aliasTo\":\"Asia/Yekaterinburg\"},\"Etc/GMT\":{\"aliasTo\":\"UTC\"},\"Etc/GMT+0\":{\"aliasTo\":\"UTC\"},\"Etc/UCT\":{\"aliasTo\":\"UTC\"},\"Etc/UTC\":{\"aliasTo\":\"UTC\"},\"Etc/Unversal\":{\"aliasTo\":\"UTC\"},\"Etc/Zulu\":{\"aliasTo\":\"UTC\"},\"Europe/Belfast\":{\"aliasTo\":\"Europe/London\"},\"FLE Standard Time\":{\"aliasTo\":\"Europe/Kiev\"},\"Fiji Standard Time\":{\"aliasTo\":\"Pacific/Fiji\"},\"GMT\":{\"aliasTo\":\"UTC\"},\"GMT Standard Time\":{\"aliasTo\":\"Europe/London\"},\"GMT+0\":{\"aliasTo\":\"UTC\"},\"GMT0\":{\"aliasTo\":\"UTC\"},\"GTB Standard Time\":{\"aliasTo\":\"Europe/Bucharest\"},\"Georgian Standard Time\":{\"aliasTo\":\"Asia/Tbilisi\"},\"Greenland Standard Time\":{\"aliasTo\":\"America/Godthab\"},\"Greenwich\":{\"aliasTo\":\"UTC\"},\"Greenwich Standard Time\":{\"aliasTo\":\"Atlantic/Reykjavik\"},\"Hawaiian Standard Time\":{\"aliasTo\":\"Pacific/Honolulu\"},\"India Standard Time\":{\"aliasTo\":\"Asia/Calcutta\"},\"Iran Standard Time\":{\"aliasTo\":\"Asia/Tehran\"},\"Israel Standard Time\":{\"aliasTo\":\"Asia/Jerusalem\"},\"Jordan Standard Time\":{\"aliasTo\":\"Asia/Amman\"},\"Kaliningrad Standard Time\":{\"aliasTo\":\"Europe/Kaliningrad\"},\"Korea Standard Time\":{\"aliasTo\":\"Asia/Seoul\"},\"Libya Standard Time\":{\"aliasTo\":\"Africa/Tripoli\"},\"Line Islands Standard Time\":{\"aliasTo\":\"Pacific/Kiritimati\"},\"Magadan Standard Time\":{\"aliasTo\":\"Asia/Magadan\"},\"Mauritius Standard Time\":{\"aliasTo\":\"Indian/Mauritius\"},\"Middle East Standard Time\":{\"aliasTo\":\"Asia/Beirut\"},\"Montevideo Standard Time\":{\"aliasTo\":\"America/Montevideo\"},\"Morocco Standard Time\":{\"aliasTo\":\"Africa/Casablanca\"},\"Mountain Standard Time\":{\"aliasTo\":\"America/Denver\"},\"Mountain Standard Time (Mexico)\":{\"aliasTo\":\"America/Chihuahua\"},\"Myanmar Standard Time\":{\"aliasTo\":\"Asia/Rangoon\"},\"N. Central Asia Standard Time\":{\"aliasTo\":\"Asia/Novosibirsk\"},\"Namibia Standard Time\":{\"aliasTo\":\"Africa/Windhoek\"},\"Nepal Standard Time\":{\"aliasTo\":\"Asia/Katmandu\"},\"New Zealand Standard Time\":{\"aliasTo\":\"Pacific/Auckland\"},\"Newfoundland Standard Time\":{\"aliasTo\":\"America/St_Johns\"},\"North Asia East Standard Time\":{\"aliasTo\":\"Asia/Irkutsk\"},\"North Asia Standard Time\":{\"aliasTo\":\"Asia/Krasnoyarsk\"},\"Pacific SA Standard Time\":{\"aliasTo\":\"America/Santiago\"},\"Pacific Standard Time\":{\"aliasTo\":\"America/Los_Angeles\"},\"Pacific Standard Time (Mexico)\":{\"aliasTo\":\"America/Santa_Isabel\"},\"Pacific/Johnston\":{\"aliasTo\":\"Pacific/Honolulu\"},\"Pakistan Standard Time\":{\"aliasTo\":\"Asia/Karachi\"},\"Paraguay Standard Time\":{\"aliasTo\":\"America/Asuncion\"},\"Romance Standard Time\":{\"aliasTo\":\"Europe/Paris\"},\"Russia Time Zone 10\":{\"aliasTo\":\"Asia/Srednekolymsk\"},\"Russia Time Zone 11\":{\"aliasTo\":\"Asia/Kamchatka\"},\"Russia Time Zone 3\":{\"aliasTo\":\"Europe/Samara\"},\"Russian Standard Time\":{\"aliasTo\":\"Europe/Moscow\"},\"SA Eastern Standard Time\":{\"aliasTo\":\"America/Cayenne\"},\"SA Pacific Standard Time\":{\"aliasTo\":\"America/Bogota\"},\"SA Western Standard Time\":{\"aliasTo\":\"America/La_Paz\"},\"SE Asia Standard Time\":{\"aliasTo\":\"Asia/Bangkok\"},\"Samoa Standard Time\":{\"aliasTo\":\"Pacific/Apia\"},\"Singapore Standard Time\":{\"aliasTo\":\"Asia/Singapore\"},\"South Africa Standard Time\":{\"aliasTo\":\"Africa/Johannesburg\"},\"Sri Lanka Standard Time\":{\"aliasTo\":\"Asia/Colombo\"},\"Syria Standard Time\":{\"aliasTo\":\"Asia/Damascus\"},\"Taipei Standard Time\":{\"aliasTo\":\"Asia/Taipei\"},\"Tasmania Standard Time\":{\"aliasTo\":\"Australia/Hobart\"},\"Tokyo Standard Time\":{\"aliasTo\":\"Asia/Tokyo\"},\"Tonga Standard Time\":{\"aliasTo\":\"Pacific/Tongatapu\"},\"Turkey Standard Time\":{\"aliasTo\":\"Europe/Istanbul\"},\"UCT\":{\"aliasTo\":\"UTC\"},\"US Eastern Standard Time\":{\"aliasTo\":\"America/Indiana/Indianapolis\"},\"US Mountain Standard Time\":{\"aliasTo\":\"America/Phoenix\"},\"US/Central\":{\"aliasTo\":\"America/Chicago\"},\"US/Eastern\":{\"aliasTo\":\"America/New_York\"},\"US/Mountain\":{\"aliasTo\":\"America/Denver\"},\"US/Pacific\":{\"aliasTo\":\"America/Los_Angeles\"},\"US/Pacific-New\":{\"aliasTo\":\"America/Los_Angeles\"},\"Ulaanbaatar Standard Time\":{\"aliasTo\":\"Asia/Ulaanbaatar\"},\"Universal\":{\"aliasTo\":\"UTC\"},\"Venezuela Standard Time\":{\"aliasTo\":\"America/Caracas\"},\"Vladivostok Standard Time\":{\"aliasTo\":\"Asia/Vladivostok\"},\"W. Australia Standard Time\":{\"aliasTo\":\"Australia/Perth\"},\"W. Central Africa Standard Time\":{\"aliasTo\":\"Africa/Lagos\"},\"W. Europe Standard Time\":{\"aliasTo\":\"Europe/Berlin\"},\"West Asia Standard Time\":{\"aliasTo\":\"Asia/Tashkent\"},\"West Pacific Standard Time\":{\"aliasTo\":\"Pacific/Port_Moresby\"},\"Yakutsk Standard Time\":{\"aliasTo\":\"Asia/Yakutsk\"},\"Z\":{\"aliasTo\":\"UTC\"},\"Zulu\":{\"aliasTo\":\"UTC\"},\"utc\":{\"aliasTo\":\"UTC\"}},\"Ao\":{\"Africa/Abidjan\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0051900\",\"longitude\":\"-0040200\"},\"Africa/Accra\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0053300\",\"longitude\":\"+0001300\"},\"Africa/Addis_Ababa\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0090200\",\"longitude\":\"+0384200\"},\"Africa/Algiers\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0364700\",\"longitude\":\"+0030300\"},\"Africa/Asmara\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0152000\",\"longitude\":\"+0385300\"},\"Africa/Bamako\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0123900\",\"longitude\":\"-0080000\"},\"Africa/Bangui\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0042200\",\"longitude\":\"+0183500\"},\"Africa/Banjul\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0132800\",\"longitude\":\"-0163900\"},\"Africa/Bissau\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0115100\",\"longitude\":\"-0153500\"},\"Africa/Blantyre\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0154700\",\"longitude\":\"+0350000\"},\"Africa/Brazzaville\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0041600\",\"longitude\":\"+0151700\"},\"Africa/Bujumbura\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0032300\",\"longitude\":\"+0292200\"},\"Africa/Cairo\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0300300\",\"longitude\":\"+0311500\"},\"Africa/Casablanca\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:+00\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:+01\\\\r\\\\nDTSTART:20180325T020000\\\\r\\\\nRDATE:20180325T020000\\\\r\\\\nRDATE:20180617T020000\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:+00\\\\r\\\\nDTSTART:20180513T030000\\\\r\\\\nRDATE:20180513T030000\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:+01\\\\r\\\\nDTSTART:20190609T020000\\\\r\\\\nRDATE:20190609T020000\\\\r\\\\nRDATE:20200524T020000\\\\r\\\\nRDATE:20210516T020000\\\\r\\\\nRDATE:20220508T020000\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:+01\\\\r\\\\nDTSTART:20181028T030000\\\\r\\\\nRDATE:20181028T030000\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:+00\\\\r\\\\nDTSTART:20190505T030000\\\\r\\\\nRDATE:20190505T030000\\\\r\\\\nRDATE:20200419T030000\\\\r\\\\nRDATE:20210411T030000\\\\r\\\\nRDATE:20220327T030000\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0333900\",\"longitude\":\"-0073500\"},\"Africa/Ceuta\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0355300\",\"longitude\":\"-0051900\"},\"Africa/Conakry\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0093100\",\"longitude\":\"-0134300\"},\"Africa/Dakar\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0144000\",\"longitude\":\"-0172600\"},\"Africa/Dar_es_Salaam\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0064800\",\"longitude\":\"+0391700\"},\"Africa/Djibouti\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0113600\",\"longitude\":\"+0430900\"},\"Africa/Douala\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0040300\",\"longitude\":\"+0094200\"},\"Africa/El_Aaiun\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:+00\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:+01\\\\r\\\\nDTSTART:20180325T020000\\\\r\\\\nRDATE:20180325T020000\\\\r\\\\nRDATE:20180617T020000\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:+00\\\\r\\\\nDTSTART:20180513T030000\\\\r\\\\nRDATE:20180513T030000\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:+01\\\\r\\\\nDTSTART:20181028T030000\\\\r\\\\nRDATE:20181028T030000\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:+00\\\\r\\\\nDTSTART:20190505T030000\\\\r\\\\nRDATE:20190505T030000\\\\r\\\\nRDATE:20200419T030000\\\\r\\\\nRDATE:20210411T030000\\\\r\\\\nRDATE:20220327T030000\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:+01\\\\r\\\\nDTSTART:20190609T020000\\\\r\\\\nRDATE:20190609T020000\\\\r\\\\nRDATE:20200524T020000\\\\r\\\\nRDATE:20210516T020000\\\\r\\\\nRDATE:20220508T020000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0270900\",\"longitude\":\"-0131200\"},\"Africa/Freetown\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0083000\",\"longitude\":\"-0131500\"},\"Africa/Gaborone\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0243900\",\"longitude\":\"+0255500\"},\"Africa/Harare\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0175000\",\"longitude\":\"+0310300\"},\"Africa/Johannesburg\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:SAST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0261500\",\"longitude\":\"+0280000\"},\"Africa/Juba\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0045100\",\"longitude\":\"+0313700\"},\"Africa/Kampala\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0001900\",\"longitude\":\"+0322500\"},\"Africa/Khartoum\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0153600\",\"longitude\":\"+0323200\"},\"Africa/Kigali\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0015700\",\"longitude\":\"+0300400\"},\"Africa/Kinshasa\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0041800\",\"longitude\":\"+0151800\"},\"Africa/Lagos\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0062700\",\"longitude\":\"+0032400\"},\"Africa/Libreville\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0002300\",\"longitude\":\"+0092700\"},\"Africa/Lome\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0060800\",\"longitude\":\"+0011300\"},\"Africa/Luanda\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0084800\",\"longitude\":\"+0131400\"},\"Africa/Lubumbashi\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0114000\",\"longitude\":\"+0272800\"},\"Africa/Lusaka\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0152500\",\"longitude\":\"+0281700\"},\"Africa/Malabo\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0034500\",\"longitude\":\"+0084700\"},\"Africa/Maputo\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0255800\",\"longitude\":\"+0323500\"},\"Africa/Maseru\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:SAST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0292800\",\"longitude\":\"+0273000\"},\"Africa/Mbabane\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:SAST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0261800\",\"longitude\":\"+0310600\"},\"Africa/Mogadishu\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0020400\",\"longitude\":\"+0452200\"},\"Africa/Monrovia\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0061800\",\"longitude\":\"-0104700\"},\"Africa/Nairobi\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0011700\",\"longitude\":\"+0364900\"},\"Africa/Ndjamena\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0120700\",\"longitude\":\"+0150300\"},\"Africa/Niamey\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0133100\",\"longitude\":\"+0020700\"},\"Africa/Nouakchott\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0180600\",\"longitude\":\"-0155700\"},\"Africa/Ouagadougou\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0122200\",\"longitude\":\"-0013100\"},\"Africa/Porto-Novo\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0062900\",\"longitude\":\"+0023700\"},\"Africa/Sao_Tome\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WAT\\\\r\\\\nDTSTART:20180101T010000\\\\r\\\\nRDATE:20180101T010000\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:20190101T020000\\\\r\\\\nRDATE:20190101T020000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0002000\",\"longitude\":\"+0064400\"},\"Africa/Tripoli\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0325400\",\"longitude\":\"+0131100\"},\"Africa/Tunis\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0364800\",\"longitude\":\"+0101100\"},\"Africa/Windhoek\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0223400\",\"longitude\":\"+0170600\"},\"America/Adak\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-1000\\\\r\\\\nTZOFFSETTO:-0900\\\\r\\\\nTZNAME:HDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0900\\\\r\\\\nTZOFFSETTO:-1000\\\\r\\\\nTZNAME:HST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0515248\",\"longitude\":\"-1763929\"},\"America/Anchorage\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0900\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:AKDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0900\\\\r\\\\nTZNAME:AKST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0611305\",\"longitude\":\"-1495401\"},\"America/Anguilla\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0181200\",\"longitude\":\"-0630400\"},\"America/Antigua\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0170300\",\"longitude\":\"-0614800\"},\"America/Araguaina\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0071200\",\"longitude\":\"-0481200\"},\"America/Argentina/Buenos_Aires\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0343600\",\"longitude\":\"-0582700\"},\"America/Argentina/Catamarca\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0282800\",\"longitude\":\"-0654700\"},\"America/Argentina/Cordoba\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0312400\",\"longitude\":\"-0641100\"},\"America/Argentina/Jujuy\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0241100\",\"longitude\":\"-0651800\"},\"America/Argentina/La_Rioja\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0292600\",\"longitude\":\"-0665100\"},\"America/Argentina/Mendoza\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0325300\",\"longitude\":\"-0684900\"},\"America/Argentina/Rio_Gallegos\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0513800\",\"longitude\":\"-0691300\"},\"America/Argentina/Salta\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0244700\",\"longitude\":\"-0652500\"},\"America/Argentina/San_Juan\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0313200\",\"longitude\":\"-0683100\"},\"America/Argentina/San_Luis\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0331900\",\"longitude\":\"-0662100\"},\"America/Argentina/Tucuman\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0264900\",\"longitude\":\"-0651300\"},\"America/Argentina/Ushuaia\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0544800\",\"longitude\":\"-0681800\"},\"America/Aruba\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0123000\",\"longitude\":\"-0695800\"},\"America/Asuncion\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19701004T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:19700322T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=4SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0251600\",\"longitude\":\"-0574000\"},\"America/Atikokan\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0484531\",\"longitude\":\"-0913718\"},\"America/Bahia\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0125900\",\"longitude\":\"-0383100\"},\"America/Bahia_Banderas\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700405T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0204800\",\"longitude\":\"-1051500\"},\"America/Barbados\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0130600\",\"longitude\":\"-0593700\"},\"America/Belem\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0012700\",\"longitude\":\"-0482900\"},\"America/Belize\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0173000\",\"longitude\":\"-0881200\"},\"America/Blanc-Sablon\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0512500\",\"longitude\":\"-0570700\"},\"America/Boa_Vista\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0024900\",\"longitude\":\"-0604000\"},\"America/Bogota\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:-05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0043600\",\"longitude\":\"-0740500\"},\"America/Boise\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:MDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0433649\",\"longitude\":\"-1161209\"},\"America/Cambridge_Bay\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:MDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0690650\",\"longitude\":\"-1050310\"},\"America/Campo_Grande\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:20181104T000000\\\\r\\\\nRDATE:20181104T000000\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:20180218T000000\\\\r\\\\nRDATE:20180218T000000\\\\r\\\\nRDATE:20190217T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0202700\",\"longitude\":\"-0543700\"},\"America/Cancun\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0210500\",\"longitude\":\"-0864600\"},\"America/Caracas\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0103000\",\"longitude\":\"-0665600\"},\"America/Cayenne\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0045600\",\"longitude\":\"-0522000\"},\"America/Cayman\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0191800\",\"longitude\":\"-0812300\"},\"America/Chicago\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0415100\",\"longitude\":\"-0873900\"},\"America/Chihuahua\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:MDT\\\\r\\\\nDTSTART:19700405T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0283800\",\"longitude\":\"-1060500\"},\"America/Costa_Rica\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0095600\",\"longitude\":\"-0840500\"},\"America/Creston\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0490600\",\"longitude\":\"-1163100\"},\"America/Cuiaba\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:20181104T000000\\\\r\\\\nRDATE:20181104T000000\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:20180218T000000\\\\r\\\\nRDATE:20180218T000000\\\\r\\\\nRDATE:20190217T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0153500\",\"longitude\":\"-0560500\"},\"America/Curacao\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0121100\",\"longitude\":\"-0690000\"},\"America/Danmarkshavn\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0764600\",\"longitude\":\"-0184000\"},\"America/Dawson\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:PDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:PST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0640400\",\"longitude\":\"-1392500\"},\"America/Dawson_Creek\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0594600\",\"longitude\":\"-1201400\"},\"America/Denver\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:MDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0394421\",\"longitude\":\"-1045903\"},\"America/Detroit\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0421953\",\"longitude\":\"-0830245\"},\"America/Dominica\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0151800\",\"longitude\":\"-0612400\"},\"America/Edmonton\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:MDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0533300\",\"longitude\":\"-1132800\"},\"America/Eirunepe\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:-05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0064000\",\"longitude\":\"-0695200\"},\"America/El_Salvador\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0134200\",\"longitude\":\"-0891200\"},\"America/Fort_Nelson\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0584800\",\"longitude\":\"-1224200\"},\"America/Fortaleza\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0034300\",\"longitude\":\"-0383000\"},\"America/Glace_Bay\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:ADT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0461200\",\"longitude\":\"-0595700\"},\"America/Godthab\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0200\\\\r\\\\nTZNAME:-02\\\\r\\\\nDTSTART:19700328T220000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=24,25,26,27,28,29,30;BYDAY=SA\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0200\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19701024T230000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=24,25,26,27,28,29,30;BYDAY=SA\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0641100\",\"longitude\":\"-0514400\"},\"America/Goose_Bay\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:ADT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0532000\",\"longitude\":\"-0602500\"},\"America/Grand_Turk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:20181104T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:20190310T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:20180311T020000\\\\r\\\\nRDATE:20180311T020000\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0212800\",\"longitude\":\"-0710800\"},\"America/Grenada\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0120300\",\"longitude\":\"-0614500\"},\"America/Guadeloupe\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0161400\",\"longitude\":\"-0613200\"},\"America/Guatemala\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0143800\",\"longitude\":\"-0903100\"},\"America/Guayaquil\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:-05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0021000\",\"longitude\":\"-0795000\"},\"America/Guyana\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0064800\",\"longitude\":\"-0581000\"},\"America/Halifax\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:ADT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0443900\",\"longitude\":\"-0633600\"},\"America/Havana\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0230800\",\"longitude\":\"-0822200\"},\"America/Hermosillo\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0290400\",\"longitude\":\"-1105800\"},\"America/Indiana/Indianapolis\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0394606\",\"longitude\":\"-0860929\"},\"America/Indiana/Knox\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0411745\",\"longitude\":\"-0863730\"},\"America/Indiana/Marengo\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0382232\",\"longitude\":\"-0862041\"},\"America/Indiana/Petersburg\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0382931\",\"longitude\":\"-0871643\"},\"America/Indiana/Tell_City\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0375711\",\"longitude\":\"-0864541\"},\"America/Indiana/Vevay\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0384452\",\"longitude\":\"-0850402\"},\"America/Indiana/Vincennes\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0384038\",\"longitude\":\"-0873143\"},\"America/Indiana/Winamac\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0410305\",\"longitude\":\"-0863611\"},\"America/Inuvik\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:MDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0682059\",\"longitude\":\"-1334300\"},\"America/Iqaluit\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0634400\",\"longitude\":\"-0682800\"},\"America/Jamaica\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0175805\",\"longitude\":\"-0764736\"},\"America/Juneau\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0900\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:AKDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0900\\\\r\\\\nTZNAME:AKST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0581807\",\"longitude\":\"-1342511\"},\"America/Kentucky/Louisville\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0381515\",\"longitude\":\"-0854534\"},\"America/Kentucky/Monticello\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0364947\",\"longitude\":\"-0845057\"},\"America/Kralendijk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0120903\",\"longitude\":\"-0681636\"},\"America/La_Paz\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0163000\",\"longitude\":\"-0680900\"},\"America/Lima\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:-05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0120300\",\"longitude\":\"-0770300\"},\"America/Los_Angeles\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:PDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:PST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0340308\",\"longitude\":\"-1181434\"},\"America/Lower_Princes\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0180305\",\"longitude\":\"-0630250\"},\"America/Maceio\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0094000\",\"longitude\":\"-0354300\"},\"America/Managua\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0120900\",\"longitude\":\"-0861700\"},\"America/Manaus\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0030800\",\"longitude\":\"-0600100\"},\"America/Marigot\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0180400\",\"longitude\":\"-0630500\"},\"America/Martinique\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0143600\",\"longitude\":\"-0610500\"},\"America/Matamoros\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0255000\",\"longitude\":\"-0973000\"},\"America/Mazatlan\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:MDT\\\\r\\\\nDTSTART:19700405T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0231300\",\"longitude\":\"-1062500\"},\"America/Menominee\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0450628\",\"longitude\":\"-0873651\"},\"America/Merida\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700405T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0205800\",\"longitude\":\"-0893700\"},\"America/Metlakatla\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0900\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:AKDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0900\\\\r\\\\nTZNAME:AKST\\\\r\\\\nDTSTART:20191103T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:PST\\\\r\\\\nDTSTART:20181104T020000\\\\r\\\\nRDATE:20181104T020000\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0900\\\\r\\\\nTZNAME:AKST\\\\r\\\\nDTSTART:20190120T020000\\\\r\\\\nRDATE:20190120T020000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0550737\",\"longitude\":\"-1313435\"},\"America/Mexico_City\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700405T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0192400\",\"longitude\":\"-0990900\"},\"America/Miquelon\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0200\\\\r\\\\nTZNAME:-02\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0200\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0470300\",\"longitude\":\"-0562000\"},\"America/Moncton\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:ADT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0460600\",\"longitude\":\"-0644700\"},\"America/Monterrey\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700405T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0254000\",\"longitude\":\"-1001900\"},\"America/Montevideo\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0345433\",\"longitude\":\"-0561245\"},\"America/Montserrat\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0164300\",\"longitude\":\"-0621300\"},\"America/Nassau\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0250500\",\"longitude\":\"-0772100\"},\"America/New_York\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0404251\",\"longitude\":\"-0740023\"},\"America/Nipigon\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0490100\",\"longitude\":\"-0881600\"},\"America/Nome\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0900\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:AKDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0900\\\\r\\\\nTZNAME:AKST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0643004\",\"longitude\":\"-1652423\"},\"America/Noronha\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0200\\\\r\\\\nTZOFFSETTO:-0200\\\\r\\\\nTZNAME:-02\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0035100\",\"longitude\":\"-0322500\"},\"America/North_Dakota/Beulah\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0471551\",\"longitude\":\"-1014640\"},\"America/North_Dakota/Center\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0470659\",\"longitude\":\"-1011757\"},\"America/North_Dakota/New_Salem\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0465042\",\"longitude\":\"-1012439\"},\"America/Ojinaga\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:MDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0293400\",\"longitude\":\"-1042500\"},\"America/Panama\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0085800\",\"longitude\":\"-0793200\"},\"America/Pangnirtung\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0660800\",\"longitude\":\"-0654400\"},\"America/Paramaribo\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0055000\",\"longitude\":\"-0551000\"},\"America/Phoenix\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0332654\",\"longitude\":\"-1120424\"},\"America/Port-au-Prince\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0183200\",\"longitude\":\"-0722000\"},\"America/Port_of_Spain\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0103900\",\"longitude\":\"-0613100\"},\"America/Porto_Velho\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0084600\",\"longitude\":\"-0635400\"},\"America/Puerto_Rico\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0182806\",\"longitude\":\"-0660622\"},\"America/Punta_Arenas\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0530900\",\"longitude\":\"-0705500\"},\"America/Rainy_River\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0484300\",\"longitude\":\"-0943400\"},\"America/Rankin_Inlet\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0624900\",\"longitude\":\"-0920459\"},\"America/Recife\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0080300\",\"longitude\":\"-0345400\"},\"America/Regina\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0502400\",\"longitude\":\"-1043900\"},\"America/Resolute\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0744144\",\"longitude\":\"-0944945\"},\"America/Rio_Branco\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:-05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0095800\",\"longitude\":\"-0674800\"},\"America/Santarem\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0022600\",\"longitude\":\"-0545200\"},\"America/Santiago\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:20190407T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=2,3,4,5,6,7,8;BYDAY=SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:20190908T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYMONTHDAY=2,3,4,5,6,7,8;BYDAY=SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:20180812T000000\\\\r\\\\nRDATE:20180812T000000\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:-04\\\\r\\\\nDTSTART:20180513T000000\\\\r\\\\nRDATE:20180513T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0332700\",\"longitude\":\"-0704000\"},\"America/Santo_Domingo\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0182800\",\"longitude\":\"-0695400\"},\"America/Sao_Paulo\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0200\\\\r\\\\nTZNAME:-02\\\\r\\\\nDTSTART:20181104T000000\\\\r\\\\nRDATE:20181104T000000\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0200\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:20180218T000000\\\\r\\\\nRDATE:20180218T000000\\\\r\\\\nRDATE:20190217T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0200\\\\r\\\\nTZOFFSETTO:-0200\\\\r\\\\nTZNAME:-02\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"-0233200\",\"longitude\":\"-0463700\"},\"America/Scoresbysund\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:+00\\\\r\\\\nDTSTART:19700329T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:-0100\\\\r\\\\nTZNAME:-01\\\\r\\\\nDTSTART:19701025T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0702900\",\"longitude\":\"-0215800\"},\"America/Sitka\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0900\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:AKDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0900\\\\r\\\\nTZNAME:AKST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0571035\",\"longitude\":\"-1351807\"},\"America/St_Barthelemy\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0175300\",\"longitude\":\"-0625100\"},\"America/St_Johns\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0230\\\\r\\\\nTZOFFSETTO:-0330\\\\r\\\\nTZNAME:NST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0330\\\\r\\\\nTZOFFSETTO:-0230\\\\r\\\\nTZNAME:NDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0473400\",\"longitude\":\"-0524300\"},\"America/St_Kitts\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0171800\",\"longitude\":\"-0624300\"},\"America/St_Lucia\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0140100\",\"longitude\":\"-0610000\"},\"America/St_Thomas\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0182100\",\"longitude\":\"-0645600\"},\"America/St_Vincent\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0130900\",\"longitude\":\"-0611400\"},\"America/Swift_Current\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0501700\",\"longitude\":\"-1075000\"},\"America/Tegucigalpa\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0140600\",\"longitude\":\"-0871300\"},\"America/Thule\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:ADT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0763400\",\"longitude\":\"-0684700\"},\"America/Thunder_Bay\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0482300\",\"longitude\":\"-0891500\"},\"America/Tijuana\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:PDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:PST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0323200\",\"longitude\":\"-1170100\"},\"America/Toronto\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:EDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:EST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0433900\",\"longitude\":\"-0792300\"},\"America/Tortola\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0182700\",\"longitude\":\"-0643700\"},\"America/Vancouver\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:PDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:PST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0491600\",\"longitude\":\"-1230700\"},\"America/Whitehorse\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:PDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:PST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0604300\",\"longitude\":\"-1350300\"},\"America/Winnipeg\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:CDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0495300\",\"longitude\":\"-0970900\"},\"America/Yakutat\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0900\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:AKDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0900\\\\r\\\\nTZNAME:AKST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0593249\",\"longitude\":\"-1394338\"},\"America/Yellowknife\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0700\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:MDT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0700\\\\r\\\\nTZNAME:MST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0622700\",\"longitude\":\"-1142100\"},\"Antarctica/Casey\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:+08\\\\r\\\\nDTSTART:20180311T040000\\\\r\\\\nRDATE:20180311T040000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0661700\",\"longitude\":\"+1103100\"},\"Antarctica/Davis\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:+07\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0683500\",\"longitude\":\"+0775800\"},\"Antarctica/DumontDUrville\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:+10\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0664000\",\"longitude\":\"+1400100\"},\"Antarctica/Macquarie\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0543000\",\"longitude\":\"+1585700\"},\"Antarctica/Mawson\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0673600\",\"longitude\":\"+0625300\"},\"Antarctica/McMurdo\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1300\\\\r\\\\nTZNAME:NZDT\\\\r\\\\nDTSTART:19700927T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1300\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:NZST\\\\r\\\\nDTSTART:19700405T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0775000\",\"longitude\":\"+1663600\"},\"Antarctica/Palmer\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0644800\",\"longitude\":\"-0640600\"},\"Antarctica/Rothera\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0673400\",\"longitude\":\"-0680800\"},\"Antarctica/Syowa\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:+03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0690022\",\"longitude\":\"+0393524\"},\"Antarctica/Troll\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:+02\\\\r\\\\nDTSTART:19700329T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:+00\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0720041\",\"longitude\":\"+0023206\"},\"Antarctica/Vostok\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0600\\\\r\\\\nTZOFFSETTO:+0600\\\\r\\\\nTZNAME:+06\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0782400\",\"longitude\":\"+1065400\"},\"Arctic/Longyearbyen\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0780000\",\"longitude\":\"+0160000\"},\"Asia/Aden\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:+03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0124500\",\"longitude\":\"+0451200\"},\"Asia/Almaty\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0600\\\\r\\\\nTZOFFSETTO:+0600\\\\r\\\\nTZNAME:+06\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0431500\",\"longitude\":\"+0765700\"},\"Asia/Amman\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700326T235959\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1TH\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701030T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0315700\",\"longitude\":\"+0355600\"},\"Asia/Anadyr\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:+12\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0644500\",\"longitude\":\"+1772900\"},\"Asia/Aqtau\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0443100\",\"longitude\":\"+0501600\"},\"Asia/Aqtobe\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0501700\",\"longitude\":\"+0571000\"},\"Asia/Ashgabat\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0375700\",\"longitude\":\"+0582300\"},\"Asia/Atyrau\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0470700\",\"longitude\":\"+0515600\"},\"Asia/Baghdad\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:+03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0332100\",\"longitude\":\"+0442500\"},\"Asia/Bahrain\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:+03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0262300\",\"longitude\":\"+0503500\"},\"Asia/Baku\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0402300\",\"longitude\":\"+0495100\"},\"Asia/Bangkok\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:+07\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0134500\",\"longitude\":\"+1003100\"},\"Asia/Barnaul\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:+07\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0532200\",\"longitude\":\"+0834500\"},\"Asia/Beirut\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0335300\",\"longitude\":\"+0353000\"},\"Asia/Bishkek\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0600\\\\r\\\\nTZOFFSETTO:+0600\\\\r\\\\nTZNAME:+06\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0425400\",\"longitude\":\"+0743600\"},\"Asia/Brunei\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:+08\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0045600\",\"longitude\":\"+1145500\"},\"Asia/Chita\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0900\\\\r\\\\nTZOFFSETTO:+0900\\\\r\\\\nTZNAME:+09\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0520300\",\"longitude\":\"+1132800\"},\"Asia/Choibalsan\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:+08\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0480400\",\"longitude\":\"+1143000\"},\"Asia/Colombo\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0530\\\\r\\\\nTZOFFSETTO:+0530\\\\r\\\\nTZNAME:+0530\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0065600\",\"longitude\":\"+0795100\"},\"Asia/Damascus\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701030T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700327T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1FR\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0333000\",\"longitude\":\"+0361800\"},\"Asia/Dhaka\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0600\\\\r\\\\nTZOFFSETTO:+0600\\\\r\\\\nTZNAME:+06\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0234300\",\"longitude\":\"+0902500\"},\"Asia/Dili\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0900\\\\r\\\\nTZOFFSETTO:+0900\\\\r\\\\nTZNAME:+09\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0083300\",\"longitude\":\"+1253500\"},\"Asia/Dubai\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0251800\",\"longitude\":\"+0551800\"},\"Asia/Dushanbe\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0383500\",\"longitude\":\"+0684800\"},\"Asia/Famagusta\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:20180325T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0350700\",\"longitude\":\"+0335700\"},\"Asia/Gaza\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701031T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SA\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:20190329T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1FR\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:20180324T010000\\\\r\\\\nRDATE:20180324T010000\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0313000\",\"longitude\":\"+0342800\"},\"Asia/Hebron\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701031T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SA\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:20190329T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1FR\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:20180324T010000\\\\r\\\\nRDATE:20180324T010000\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0313200\",\"longitude\":\"+0350542\"},\"Asia/Ho_Chi_Minh\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:+07\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0104500\",\"longitude\":\"+1064000\"},\"Asia/Hong_Kong\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:HKT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0221700\",\"longitude\":\"+1140900\"},\"Asia/Hovd\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:+07\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0480100\",\"longitude\":\"+0913900\"},\"Asia/Irkutsk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:+08\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0521600\",\"longitude\":\"+1042000\"},\"Asia/Istanbul\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:+03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0410100\",\"longitude\":\"+0285800\"},\"Asia/Jakarta\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:WIB\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0061000\",\"longitude\":\"+1064800\"},\"Asia/Jayapura\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0900\\\\r\\\\nTZOFFSETTO:+0900\\\\r\\\\nTZNAME:WIT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0023200\",\"longitude\":\"+1404200\"},\"Asia/Jerusalem\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:IDT\\\\r\\\\nDTSTART:19700327T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=23,24,25,26,27,28,29;BYDAY=FR\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:IST\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0314650\",\"longitude\":\"+0351326\"},\"Asia/Kabul\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0430\\\\r\\\\nTZOFFSETTO:+0430\\\\r\\\\nTZNAME:+0430\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0343100\",\"longitude\":\"+0691200\"},\"Asia/Kamchatka\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:+12\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0530100\",\"longitude\":\"+1583900\"},\"Asia/Karachi\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:PKT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0245200\",\"longitude\":\"+0670300\"},\"Asia/Kathmandu\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0545\\\\r\\\\nTZOFFSETTO:+0545\\\\r\\\\nTZNAME:+0545\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0274300\",\"longitude\":\"+0851900\"},\"Asia/Khandyga\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0900\\\\r\\\\nTZOFFSETTO:+0900\\\\r\\\\nTZNAME:+09\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0623923\",\"longitude\":\"+1353314\"},\"Asia/Kolkata\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0530\\\\r\\\\nTZOFFSETTO:+0530\\\\r\\\\nTZNAME:IST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0223200\",\"longitude\":\"+0882200\"},\"Asia/Krasnoyarsk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:+07\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0560100\",\"longitude\":\"+0925000\"},\"Asia/Kuala_Lumpur\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:+08\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0031000\",\"longitude\":\"+1014200\"},\"Asia/Kuching\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:+08\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0013300\",\"longitude\":\"+1102000\"},\"Asia/Kuwait\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:+03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0292000\",\"longitude\":\"+0475900\"},\"Asia/Macau\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0221150\",\"longitude\":\"+1133230\"},\"Asia/Magadan\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0593400\",\"longitude\":\"+1504800\"},\"Asia/Makassar\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:WITA\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0050700\",\"longitude\":\"+1192400\"},\"Asia/Manila\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:PST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0143500\",\"longitude\":\"+1210000\"},\"Asia/Muscat\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0233600\",\"longitude\":\"+0583500\"},\"Asia/Nicosia\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0351000\",\"longitude\":\"+0332200\"},\"Asia/Novokuznetsk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:+07\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0534500\",\"longitude\":\"+0870700\"},\"Asia/Novosibirsk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:+07\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0550200\",\"longitude\":\"+0825500\"},\"Asia/Omsk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0600\\\\r\\\\nTZOFFSETTO:+0600\\\\r\\\\nTZNAME:+06\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0550000\",\"longitude\":\"+0732400\"},\"Asia/Oral\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0511300\",\"longitude\":\"+0512100\"},\"Asia/Phnom_Penh\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:+07\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0113300\",\"longitude\":\"+1045500\"},\"Asia/Pontianak\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:WIB\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0000200\",\"longitude\":\"+1092000\"},\"Asia/Pyongyang\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0900\\\\r\\\\nTZOFFSETTO:+0830\\\\r\\\\nTZNAME:KST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0830\\\\r\\\\nTZOFFSETTO:+0900\\\\r\\\\nTZNAME:KST\\\\r\\\\nDTSTART:20180504T233000\\\\r\\\\nRDATE:20180504T233000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0390100\",\"longitude\":\"+1254500\"},\"Asia/Qatar\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:+03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0251700\",\"longitude\":\"+0513200\"},\"Asia/Qostanay\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0600\\\\r\\\\nTZOFFSETTO:+0600\\\\r\\\\nTZNAME:+06\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0531200\",\"longitude\":\"+0633700\"},\"Asia/Qyzylorda\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0600\\\\r\\\\nTZOFFSETTO:+0600\\\\r\\\\nTZNAME:+06\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0600\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:20181221T000000\\\\r\\\\nRDATE:20181221T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0444800\",\"longitude\":\"+0652800\"},\"Asia/Riyadh\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:+03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0243800\",\"longitude\":\"+0464300\"},\"Asia/Sakhalin\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0465800\",\"longitude\":\"+1424200\"},\"Asia/Samarkand\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0394000\",\"longitude\":\"+0664800\"},\"Asia/Seoul\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0900\\\\r\\\\nTZOFFSETTO:+0900\\\\r\\\\nTZNAME:KST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0373300\",\"longitude\":\"+1265800\"},\"Asia/Shanghai\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0311400\",\"longitude\":\"+1212800\"},\"Asia/Singapore\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:+08\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0011700\",\"longitude\":\"+1035100\"},\"Asia/Srednekolymsk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0672800\",\"longitude\":\"+1534300\"},\"Asia/Taipei\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:CST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0250300\",\"longitude\":\"+1213000\"},\"Asia/Tashkent\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0412000\",\"longitude\":\"+0691800\"},\"Asia/Tbilisi\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0414300\",\"longitude\":\"+0444900\"},\"Asia/Tehran\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0330\\\\r\\\\nTZNAME:+0330\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0330\\\\r\\\\nTZOFFSETTO:+0430\\\\r\\\\nTZNAME:+0430\\\\r\\\\nDTSTART:20180321T235959\\\\r\\\\nRDATE:20180321T235959\\\\r\\\\nRDATE:20190321T235959\\\\r\\\\nRDATE:20200320T235959\\\\r\\\\nRDATE:20210321T235959\\\\r\\\\nRDATE:20220321T235959\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0430\\\\r\\\\nTZOFFSETTO:+0330\\\\r\\\\nTZNAME:+0330\\\\r\\\\nDTSTART:20180921T235959\\\\r\\\\nRDATE:20180921T235959\\\\r\\\\nRDATE:20190921T235959\\\\r\\\\nRDATE:20200920T235959\\\\r\\\\nRDATE:20210921T235959\\\\r\\\\nRDATE:20220921T235959\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0354000\",\"longitude\":\"+0512600\"},\"Asia/Thimphu\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0600\\\\r\\\\nTZOFFSETTO:+0600\\\\r\\\\nTZNAME:+06\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0272800\",\"longitude\":\"+0893900\"},\"Asia/Tokyo\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0900\\\\r\\\\nTZOFFSETTO:+0900\\\\r\\\\nTZNAME:JST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0353916\",\"longitude\":\"+1394441\"},\"Asia/Tomsk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:+07\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0563000\",\"longitude\":\"+0845800\"},\"Asia/Ulaanbaatar\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:+08\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0475500\",\"longitude\":\"+1065300\"},\"Asia/Urumqi\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0600\\\\r\\\\nTZOFFSETTO:+0600\\\\r\\\\nTZNAME:+06\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0434800\",\"longitude\":\"+0873500\"},\"Asia/Ust-Nera\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:+10\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0643337\",\"longitude\":\"+1431336\"},\"Asia/Vientiane\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:+07\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0175800\",\"longitude\":\"+1023600\"},\"Asia/Vladivostok\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:+10\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0431000\",\"longitude\":\"+1315600\"},\"Asia/Yakutsk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0900\\\\r\\\\nTZOFFSETTO:+0900\\\\r\\\\nTZNAME:+09\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0620000\",\"longitude\":\"+1294000\"},\"Asia/Yangon\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0630\\\\r\\\\nTZOFFSETTO:+0630\\\\r\\\\nTZNAME:+0630\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0164700\",\"longitude\":\"+0961000\"},\"Asia/Yekaterinburg\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0565100\",\"longitude\":\"+0603600\"},\"Asia/Yerevan\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0401100\",\"longitude\":\"+0443000\"},\"Atlantic/Azores\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:+00\\\\r\\\\nDTSTART:19700329T000000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:-0100\\\\r\\\\nTZNAME:-01\\\\r\\\\nDTSTART:19701025T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0374400\",\"longitude\":\"-0254000\"},\"Atlantic/Bermuda\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0400\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:ADT\\\\r\\\\nDTSTART:19700308T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0400\\\\r\\\\nTZNAME:AST\\\\r\\\\nDTSTART:19701101T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0321700\",\"longitude\":\"-0644600\"},\"Atlantic/Canary\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WEST\\\\r\\\\nDTSTART:19700329T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:WET\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0280600\",\"longitude\":\"-0152400\"},\"Atlantic/Cape_Verde\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0100\\\\r\\\\nTZOFFSETTO:-0100\\\\r\\\\nTZNAME:-01\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0145500\",\"longitude\":\"-0233100\"},\"Atlantic/Faroe\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WEST\\\\r\\\\nDTSTART:19700329T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:WET\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0620100\",\"longitude\":\"-0064600\"},\"Atlantic/Madeira\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WEST\\\\r\\\\nDTSTART:19700329T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:WET\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0323800\",\"longitude\":\"-0165400\"},\"Atlantic/Reykjavik\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0640900\",\"longitude\":\"-0215100\"},\"Atlantic/South_Georgia\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0200\\\\r\\\\nTZOFFSETTO:-0200\\\\r\\\\nTZNAME:-02\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0541600\",\"longitude\":\"-0363200\"},\"Atlantic/St_Helena\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0155500\",\"longitude\":\"-0054200\"},\"Atlantic/Stanley\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0300\\\\r\\\\nTZOFFSETTO:-0300\\\\r\\\\nTZNAME:-03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0514200\",\"longitude\":\"-0575100\"},\"Australia/Adelaide\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1030\\\\r\\\\nTZOFFSETTO:+0930\\\\r\\\\nTZNAME:ACST\\\\r\\\\nDTSTART:19700405T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0930\\\\r\\\\nTZOFFSETTO:+1030\\\\r\\\\nTZNAME:ACDT\\\\r\\\\nDTSTART:19701004T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"-0345500\",\"longitude\":\"+1383500\"},\"Australia/Brisbane\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:AEST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0272800\",\"longitude\":\"+1530200\"},\"Australia/Broken_Hill\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1030\\\\r\\\\nTZOFFSETTO:+0930\\\\r\\\\nTZNAME:ACST\\\\r\\\\nDTSTART:19700405T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0930\\\\r\\\\nTZOFFSETTO:+1030\\\\r\\\\nTZNAME:ACDT\\\\r\\\\nDTSTART:19701004T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"-0315700\",\"longitude\":\"+1412700\"},\"Australia/Currie\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:AEDT\\\\r\\\\nDTSTART:19701004T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:AEST\\\\r\\\\nDTSTART:19700405T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0395600\",\"longitude\":\"+1435200\"},\"Australia/Darwin\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0930\\\\r\\\\nTZOFFSETTO:+0930\\\\r\\\\nTZNAME:ACST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0122800\",\"longitude\":\"+1305000\"},\"Australia/Eucla\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0845\\\\r\\\\nTZOFFSETTO:+0845\\\\r\\\\nTZNAME:+0845\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0314300\",\"longitude\":\"+1285200\"},\"Australia/Hobart\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:AEDT\\\\r\\\\nDTSTART:19701004T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:AEST\\\\r\\\\nDTSTART:19700405T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0425300\",\"longitude\":\"+1471900\"},\"Australia/Lindeman\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:AEST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0201600\",\"longitude\":\"+1490000\"},\"Australia/Lord_Howe\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1030\\\\r\\\\nTZNAME:+1030\\\\r\\\\nDTSTART:19700405T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+1030\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19701004T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"-0313300\",\"longitude\":\"+1590500\"},\"Australia/Melbourne\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:AEST\\\\r\\\\nDTSTART:19700405T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:AEDT\\\\r\\\\nDTSTART:19701004T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"-0374900\",\"longitude\":\"+1445800\"},\"Australia/Perth\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0800\\\\r\\\\nTZOFFSETTO:+0800\\\\r\\\\nTZNAME:AWST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0315700\",\"longitude\":\"+1155100\"},\"Australia/Sydney\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:AEST\\\\r\\\\nDTSTART:19700405T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:AEDT\\\\r\\\\nDTSTART:19701004T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"-0335200\",\"longitude\":\"+1511300\"},\"Europe/Amsterdam\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0522200\",\"longitude\":\"+0045400\"},\"Europe/Andorra\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0423000\",\"longitude\":\"+0013100\"},\"Europe/Astrakhan\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0462100\",\"longitude\":\"+0480300\"},\"Europe/Athens\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0375800\",\"longitude\":\"+0234300\"},\"Europe/Belgrade\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0445000\",\"longitude\":\"+0203000\"},\"Europe/Berlin\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0523000\",\"longitude\":\"+0132200\"},\"Europe/Bratislava\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0480900\",\"longitude\":\"+0170700\"},\"Europe/Brussels\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0505000\",\"longitude\":\"+0042000\"},\"Europe/Bucharest\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0442600\",\"longitude\":\"+0260600\"},\"Europe/Budapest\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0473000\",\"longitude\":\"+0190500\"},\"Europe/Busingen\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0474200\",\"longitude\":\"+0084100\"},\"Europe/Chisinau\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0470000\",\"longitude\":\"+0285000\"},\"Europe/Copenhagen\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0554000\",\"longitude\":\"+0123500\"},\"Europe/Dublin\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:IST\\\\r\\\\nDTSTART:19700329T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0532000\",\"longitude\":\"-0061500\"},\"Europe/Gibraltar\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0360800\",\"longitude\":\"-0052100\"},\"Europe/Guernsey\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:BST\\\\r\\\\nDTSTART:19700329T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0492717\",\"longitude\":\"-0023210\"},\"Europe/Helsinki\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0601000\",\"longitude\":\"+0245800\"},\"Europe/Isle_of_Man\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:BST\\\\r\\\\nDTSTART:19700329T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0540900\",\"longitude\":\"-0042800\"},\"Europe/Istanbul\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:+03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0410100\",\"longitude\":\"+0285800\"},\"Europe/Jersey\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:BST\\\\r\\\\nDTSTART:19700329T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0491101\",\"longitude\":\"-0020624\"},\"Europe/Kaliningrad\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0544300\",\"longitude\":\"+0203000\"},\"Europe/Kiev\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0502600\",\"longitude\":\"+0303100\"},\"Europe/Kirov\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:+03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0583600\",\"longitude\":\"+0493900\"},\"Europe/Lisbon\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:WET\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:WEST\\\\r\\\\nDTSTART:19700329T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0384300\",\"longitude\":\"-0090800\"},\"Europe/Ljubljana\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0460300\",\"longitude\":\"+0143100\"},\"Europe/London\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0000\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:BST\\\\r\\\\nDTSTART:19700329T010000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0000\\\\r\\\\nTZNAME:GMT\\\\r\\\\nDTSTART:19701025T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0513030\",\"longitude\":\"+0000731\"},\"Europe/Luxembourg\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0493600\",\"longitude\":\"+0060900\"},\"Europe/Madrid\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0402400\",\"longitude\":\"-0034100\"},\"Europe/Malta\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0355400\",\"longitude\":\"+0143100\"},\"Europe/Mariehamn\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0600600\",\"longitude\":\"+0195700\"},\"Europe/Minsk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:+03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0535400\",\"longitude\":\"+0273400\"},\"Europe/Monaco\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0434200\",\"longitude\":\"+0072300\"},\"Europe/Moscow\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:MSK\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0554521\",\"longitude\":\"+0373704\"},\"Europe/Nicosia\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"+0351000\",\"longitude\":\"+0332200\"},\"Europe/Oslo\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0595500\",\"longitude\":\"+0104500\"},\"Europe/Paris\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0485200\",\"longitude\":\"+0022000\"},\"Europe/Podgorica\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0422600\",\"longitude\":\"+0191600\"},\"Europe/Prague\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0500500\",\"longitude\":\"+0142600\"},\"Europe/Riga\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0565700\",\"longitude\":\"+0240600\"},\"Europe/Rome\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0415400\",\"longitude\":\"+0122900\"},\"Europe/Samara\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0531200\",\"longitude\":\"+0500900\"},\"Europe/San_Marino\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0435500\",\"longitude\":\"+0122800\"},\"Europe/Sarajevo\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0435200\",\"longitude\":\"+0182500\"},\"Europe/Saratov\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0513400\",\"longitude\":\"+0460200\"},\"Europe/Simferopol\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:MSK\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0445700\",\"longitude\":\"+0340600\"},\"Europe/Skopje\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0415900\",\"longitude\":\"+0212600\"},\"Europe/Sofia\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0424100\",\"longitude\":\"+0231900\"},\"Europe/Stockholm\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0592000\",\"longitude\":\"+0180300\"},\"Europe/Tallinn\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0592500\",\"longitude\":\"+0244500\"},\"Europe/Tirane\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0412000\",\"longitude\":\"+0195000\"},\"Europe/Ulyanovsk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0542000\",\"longitude\":\"+0482400\"},\"Europe/Uzhgorod\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0483700\",\"longitude\":\"+0221800\"},\"Europe/Vaduz\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0470900\",\"longitude\":\"+0093100\"},\"Europe/Vatican\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0415408\",\"longitude\":\"+0122711\"},\"Europe/Vienna\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0481300\",\"longitude\":\"+0162000\"},\"Europe/Vilnius\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0544100\",\"longitude\":\"+0251900\"},\"Europe/Volgograd\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:20181028T020000\\\\r\\\\nRDATE:20181028T020000\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:+03\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0484400\",\"longitude\":\"+0442500\"},\"Europe/Warsaw\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0521500\",\"longitude\":\"+0210000\"},\"Europe/Zagreb\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0454800\",\"longitude\":\"+0155800\"},\"Europe/Zaporozhye\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EEST\\\\r\\\\nDTSTART:19700329T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:EET\\\\r\\\\nDTSTART:19701025T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0475000\",\"longitude\":\"+0351000\"},\"Europe/Zurich\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+0100\\\\r\\\\nTZOFFSETTO:+0200\\\\r\\\\nTZNAME:CEST\\\\r\\\\nDTSTART:19700329T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0200\\\\r\\\\nTZOFFSETTO:+0100\\\\r\\\\nTZNAME:CET\\\\r\\\\nDTSTART:19701025T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0472300\",\"longitude\":\"+0083200\"},\"Indian/Antananarivo\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0185500\",\"longitude\":\"+0473100\"},\"Indian/Chagos\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0600\\\\r\\\\nTZOFFSETTO:+0600\\\\r\\\\nTZNAME:+06\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0072000\",\"longitude\":\"+0722500\"},\"Indian/Christmas\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0700\\\\r\\\\nTZOFFSETTO:+0700\\\\r\\\\nTZNAME:+07\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0102500\",\"longitude\":\"+1054300\"},\"Indian/Cocos\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0630\\\\r\\\\nTZOFFSETTO:+0630\\\\r\\\\nTZNAME:+0630\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0121000\",\"longitude\":\"+0965500\"},\"Indian/Comoro\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0114100\",\"longitude\":\"+0431600\"},\"Indian/Kerguelen\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0492110\",\"longitude\":\"+0701303\"},\"Indian/Mahe\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0044000\",\"longitude\":\"+0552800\"},\"Indian/Maldives\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0500\\\\r\\\\nTZOFFSETTO:+0500\\\\r\\\\nTZNAME:+05\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0041000\",\"longitude\":\"+0733000\"},\"Indian/Mauritius\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0201000\",\"longitude\":\"+0573000\"},\"Indian/Mayotte\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0300\\\\r\\\\nTZOFFSETTO:+0300\\\\r\\\\nTZNAME:EAT\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0124700\",\"longitude\":\"+0451400\"},\"Indian/Reunion\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0400\\\\r\\\\nTZOFFSETTO:+0400\\\\r\\\\nTZNAME:+04\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0205200\",\"longitude\":\"+0552800\"},\"Pacific/Apia\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1400\\\\r\\\\nTZOFFSETTO:+1300\\\\r\\\\nTZNAME:+13\\\\r\\\\nDTSTART:19700405T040000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+1300\\\\r\\\\nTZOFFSETTO:+1400\\\\r\\\\nTZNAME:+14\\\\r\\\\nDTSTART:19700927T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"-0135000\",\"longitude\":\"-1714400\"},\"Pacific/Auckland\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1300\\\\r\\\\nTZNAME:NZDT\\\\r\\\\nDTSTART:19700927T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1300\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:NZST\\\\r\\\\nDTSTART:19700405T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0365200\",\"longitude\":\"+1744600\"},\"Pacific/Bougainville\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0061300\",\"longitude\":\"+1553400\"},\"Pacific/Chatham\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+1245\\\\r\\\\nTZOFFSETTO:+1345\\\\r\\\\nTZNAME:+1345\\\\r\\\\nDTSTART:19700927T024500\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1345\\\\r\\\\nTZOFFSETTO:+1245\\\\r\\\\nTZNAME:+1245\\\\r\\\\nDTSTART:19700405T034500\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0435700\",\"longitude\":\"-1763300\"},\"Pacific/Chuuk\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:+10\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0072500\",\"longitude\":\"+1514700\"},\"Pacific/Easter\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:-06\\\\r\\\\nDTSTART:20190406T220000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SA\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:-05\\\\r\\\\nDTSTART:20190907T220000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=1SA\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:-06\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0500\\\\r\\\\nTZNAME:-05\\\\r\\\\nDTSTART:20180811T220000\\\\r\\\\nRDATE:20180811T220000\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0500\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:-06\\\\r\\\\nDTSTART:20180512T220000\\\\r\\\\nRDATE:20180512T220000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0270900\",\"longitude\":\"-1092600\"},\"Pacific/Efate\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0174000\",\"longitude\":\"+1682500\"},\"Pacific/Enderbury\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1300\\\\r\\\\nTZOFFSETTO:+1300\\\\r\\\\nTZNAME:+13\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0030800\",\"longitude\":\"-1710500\"},\"Pacific/Fakaofo\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1300\\\\r\\\\nTZOFFSETTO:+1300\\\\r\\\\nTZNAME:+13\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0092200\",\"longitude\":\"-1711400\"},\"Pacific/Fiji\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1300\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:+12\\\\r\\\\nDTSTART:19700118T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=1;BYMONTHDAY=12,13,14,15,16,17,18;BYDAY=SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1300\\\\r\\\\nTZNAME:+13\\\\r\\\\nDTSTART:20191110T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=2SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1300\\\\r\\\\nTZNAME:+13\\\\r\\\\nDTSTART:20181104T020000\\\\r\\\\nRDATE:20181104T020000\\\\r\\\\nEND:DAYLIGHT\"],\"latitude\":\"-0180800\",\"longitude\":\"+1782500\"},\"Pacific/Funafuti\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:+12\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0083100\",\"longitude\":\"+1791300\"},\"Pacific/Galapagos\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0600\\\\r\\\\nTZOFFSETTO:-0600\\\\r\\\\nTZNAME:-06\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0005400\",\"longitude\":\"-0893600\"},\"Pacific/Gambier\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0900\\\\r\\\\nTZOFFSETTO:-0900\\\\r\\\\nTZNAME:-09\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0230800\",\"longitude\":\"-1345700\"},\"Pacific/Guadalcanal\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0093200\",\"longitude\":\"+1601200\"},\"Pacific/Guam\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:ChST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0132800\",\"longitude\":\"+1444500\"},\"Pacific/Honolulu\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-1000\\\\r\\\\nTZOFFSETTO:-1000\\\\r\\\\nTZNAME:HST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0211825\",\"longitude\":\"-1575130\"},\"Pacific/Kiritimati\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1400\\\\r\\\\nTZOFFSETTO:+1400\\\\r\\\\nTZNAME:+14\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0015200\",\"longitude\":\"-1572000\"},\"Pacific/Kosrae\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0051900\",\"longitude\":\"+1625900\"},\"Pacific/Kwajalein\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:+12\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0090500\",\"longitude\":\"+1672000\"},\"Pacific/Majuro\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:+12\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0070900\",\"longitude\":\"+1711200\"},\"Pacific/Marquesas\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0930\\\\r\\\\nTZOFFSETTO:-0930\\\\r\\\\nTZNAME:-0930\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0090000\",\"longitude\":\"-1393000\"},\"Pacific/Midway\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-1100\\\\r\\\\nTZOFFSETTO:-1100\\\\r\\\\nTZNAME:SST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0281300\",\"longitude\":\"-1772200\"},\"Pacific/Nauru\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:+12\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0003100\",\"longitude\":\"+1665500\"},\"Pacific/Niue\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-1100\\\\r\\\\nTZOFFSETTO:-1100\\\\r\\\\nTZNAME:-11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0190100\",\"longitude\":\"-1695500\"},\"Pacific/Norfolk\":{\"ics\":[\"BEGIN:DAYLIGHT\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:+12\\\\r\\\\nDTSTART:20191006T020000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\\\\r\\\\nEND:DAYLIGHT\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:20200405T030000\\\\r\\\\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1130\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\",\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:20190701T000000\\\\r\\\\nRDATE:20190701T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0290300\",\"longitude\":\"+1675800\"},\"Pacific/Noumea\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0221600\",\"longitude\":\"+1662700\"},\"Pacific/Pago_Pago\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-1100\\\\r\\\\nTZOFFSETTO:-1100\\\\r\\\\nTZNAME:SST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0141600\",\"longitude\":\"-1704200\"},\"Pacific/Palau\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+0900\\\\r\\\\nTZOFFSETTO:+0900\\\\r\\\\nTZNAME:+09\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0072000\",\"longitude\":\"+1342900\"},\"Pacific/Pitcairn\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-0800\\\\r\\\\nTZOFFSETTO:-0800\\\\r\\\\nTZNAME:-08\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0250400\",\"longitude\":\"-1300500\"},\"Pacific/Pohnpei\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1100\\\\r\\\\nTZOFFSETTO:+1100\\\\r\\\\nTZNAME:+11\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0065800\",\"longitude\":\"+1581300\"},\"Pacific/Port_Moresby\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:+10\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0093000\",\"longitude\":\"+1471000\"},\"Pacific/Rarotonga\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-1000\\\\r\\\\nTZOFFSETTO:-1000\\\\r\\\\nTZNAME:-10\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0211400\",\"longitude\":\"-1594600\"},\"Pacific/Saipan\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1000\\\\r\\\\nTZOFFSETTO:+1000\\\\r\\\\nTZNAME:ChST\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0151200\",\"longitude\":\"+1454500\"},\"Pacific/Tahiti\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:-1000\\\\r\\\\nTZOFFSETTO:-1000\\\\r\\\\nTZNAME:-10\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0173200\",\"longitude\":\"-1493400\"},\"Pacific/Tarawa\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:+12\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0012500\",\"longitude\":\"+1730000\"},\"Pacific/Tongatapu\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1300\\\\r\\\\nTZOFFSETTO:+1300\\\\r\\\\nTZNAME:+13\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0211000\",\"longitude\":\"-1751000\"},\"Pacific/Wake\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:+12\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"+0191700\",\"longitude\":\"+1663700\"},\"Pacific/Wallis\":{\"ics\":[\"BEGIN:STANDARD\\\\r\\\\nTZOFFSETFROM:+1200\\\\r\\\\nTZOFFSETTO:+1200\\\\r\\\\nTZNAME:+12\\\\r\\\\nDTSTART:19700101T000000\\\\r\\\\nEND:STANDARD\"],\"latitude\":\"-0131800\",\"longitude\":\"-1761000\"}}}'),it=(0,require(\"@nextcloud/logger\").getLoggerBuilder)().detectUser().setApp(\"@nextcloud/vue\").build(),at=(0,require(\"@nextcloud/calendar-js\").getTimezoneManager)();let rt=!1;function ot(){return rt||function(){it.debug(\"Using version \".concat(nt.i8,\" of the timezone database\"));for(const t in nt.Ao)if(Object.prototype.hasOwnProperty.call(nt.Ao,[t])){const e=[\"BEGIN:VTIMEZONE\",\"TZID:\"+t,...nt.Ao[t].ics,\"END:VTIMEZONE\"].join(\"\\r\\n\");at.registerTimezoneFromICS(t,e)}for(const t in nt.j3)Object.prototype.hasOwnProperty.call(nt.j3,[t])&&at.registerAlias(t,nt.j3[t].aliasTo);rt=!0}(),at}const st=require(\"@nextcloud/vue-select\");var lt=n.n(st);require(\"@nextcloud/vue-select/dist/vue-select.css\");const At=require(\"@floating-ui/dom\"),ct=require(\"vue-material-design-icons/ChevronDown.vue\");var dt=n.n(ct);const pt=require(\"vue-material-design-icons/Close.vue\");var ut=n.n(pt);const mt=(t,e)=>{const n=[];let i=0,a=t.toLowerCase().indexOf(e.toLowerCase(),i),r=0;for(;a>-1&&r<t.length;)i=a+e.length,n.push({start:a,end:i}),a=t.toLowerCase().indexOf(e.toLowerCase(),i),r++;return n},ht={name:\"NcHighlight\",props:{text:{type:String,default:\"\"},search:{type:String,default:\"\"},highlight:{type:Array,default:()=>[]}},computed:{ranges(){let t=[];return this.search||0!==this.highlight.length?(t=this.highlight.length>0?this.highlight:mt(this.text,this.search),t.forEach(((e,n)=>{e.end<e.start&&(t[n]={start:e.end,end:e.start})})),t=t.reduce(((t,e)=>(e.start<this.text.length&&e.end>0&&t.push({start:e.start<0?0:e.start,end:e.end>this.text.length?this.text.length:e.end}),t)),[]),t.sort(((t,e)=>t.start-e.start)),t=t.reduce(((t,e)=>{if(t.length){const n=t.length-1;t[n].end>=e.start?t[n]={start:t[n].start,end:Math.max(t[n].end,e.end)}:t.push(e)}else t.push(e);return t}),[]),t):t},chunks(){if(0===this.ranges.length)return[{start:0,end:this.text.length,highlight:!1,text:this.text}];const t=[];let e=0,n=0;for(;e<this.text.length;){const i=this.ranges[n];i.start!==e?(t.push({start:e,end:i.start,highlight:!1,text:this.text.slice(e,i.start)}),e=i.start):(t.push({...i,highlight:!0,text:this.text.slice(i.start,i.end)}),n++,e=i.end,n>=this.ranges.length&&e<this.text.length&&(t.push({start:e,end:this.text.length,highlight:!1,text:this.text.slice(e)}),e=this.text.length))}return t}},render(t){return this.ranges.length?t(\"span\",{},this.chunks.map((e=>e.highlight?t(\"strong\",{},e.text):e.text))):t(\"span\",{},this.text)}};var gt=n(6274),Ct=n.n(gt),Tt=E(ht,undefined,undefined,!1,null,null,null);\"function\"==typeof Ct()&&Ct()(Tt);const bt=Tt.exports,vt={name:\"NcEllipsisedOption\",components:{NcHighlight:bt},props:{name:{type:String,default:\"\"},search:{type:String,default:\"\"}},computed:{needsTruncate(){return this.name&&this.name.length>=10},split(){return this.name.length-Math.min(Math.floor(this.name.length/2),10)},part1(){return this.needsTruncate?this.name.slice(0,this.split):this.name},part2(){return this.needsTruncate?this.name.slice(this.split):\"\"},highlight1(){return this.search?mt(this.name,this.search):[]},highlight2(){return this.highlight1.map((t=>({start:t.start-this.split,end:t.end-this.split})))}}};var ft=n(436),Et={};Et.styleTagTransform=b(),Et.setAttributes=h(),Et.insert=u().bind(null,\"head\"),Et.domAPI=d(),Et.insertStyleElement=C();A()(ft.Z,Et);ft.Z&&ft.Z.locals&&ft.Z.locals;const xt=E(vt,(function(){var t=this,e=t._self._c;return e(\"span\",{staticClass:\"name-parts\",attrs:{title:t.name}},[e(\"NcHighlight\",{staticClass:\"name-parts__first\",attrs:{text:t.part1,search:t.search,highlight:t.highlight1}}),t._v(\" \"),t.part2?e(\"NcHighlight\",{staticClass:\"name-parts__last\",attrs:{text:t.part2,search:t.search,highlight:t.highlight2}}):t._e()],1)}),[],!1,null,\"3daafbe0\",null).exports;const yt=require(\"floating-vue\"),St=require(\"focus-trap\"),Dt=function(){return Object.assign(window,{_nc_focus_trap:window._nc_focus_trap||[]}),window._nc_focus_trap},kt={name:\"NcPopover\",components:{Dropdown:yt.Dropdown},inheritAttrs:!1,props:{popoverBaseClass:{type:String,default:\"\"},focusTrap:{type:Boolean,default:!0},setReturnFocus:{default:void 0,type:[HTMLElement,SVGElement,String,Boolean]}},emits:[\"after-show\",\"after-hide\"],beforeDestroy(){this.clearFocusTrap()},methods:{async useFocusTrap(){var t,e;if(await this.$nextTick(),!this.focusTrap)return;const n=null===(t=this.$refs.popover)||void 0===t||null===(e=t.$refs.popperContent)||void 0===e?void 0:e.$el;n&&(this.$focusTrap=(0,St.createFocusTrap)(n,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:this.setReturnFocus,trapStack:Dt()}),this.$focusTrap.activate())},clearFocusTrap(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{var e;null===(e=this.$focusTrap)||void 0===e||e.deactivate(t),this.$focusTrap=null}catch(t){console.warn(t)}},afterShow(){this.$nextTick((()=>{this.$emit(\"after-show\"),this.useFocusTrap()}))},afterHide(){this.$emit(\"after-hide\"),this.clearFocusTrap()}}},wt=kt;var Nt=n(1625),Ft={};Ft.styleTagTransform=b(),Ft.setAttributes=h(),Ft.insert=u().bind(null,\"head\"),Ft.domAPI=d(),Ft.insertStyleElement=C();A()(Nt.Z,Ft);Nt.Z&&Nt.Z.locals&&Nt.Z.locals;var Rt=n(2405),Bt=n.n(Rt),_t=E(wt,(function(){var t=this;return(0,t._self._c)(\"Dropdown\",t._g(t._b({ref:\"popover\",attrs:{distance:10,\"arrow-padding\":10,\"no-auto-focus\":!0,\"popper-class\":t.popoverBaseClass},on:{\"apply-show\":t.afterShow,\"apply-hide\":t.afterHide},scopedSlots:t._u([{key:\"popper\",fn:function(){return[t._t(\"default\")]},proxy:!0}],null,!0)},\"Dropdown\",t.$attrs,!1),t.$listeners),[t._t(\"trigger\")],2)}),[],!1,null,null,null);\"function\"==typeof Bt()&&Bt()(_t);const Ot=_t.exports;const Zt={name:\"NcPopoverMenuItem\",props:{item:{type:Object,required:!0,default:()=>({key:\"nextcloud-link\",href:\"https://nextcloud.com\",icon:\"icon-links\",text:\"Nextcloud\"}),validator:t=>!t.input||-1!==[\"text\",\"checkbox\"].indexOf(t.input)}},computed:{key(){return this.item.key?this.item.key:Math.round(16*Math.random()*1e6).toString(16)},iconIsUrl(){try{return new URL(this.item.icon),!0}catch(t){return!1}}},methods:{action(t){this.item.action&&this.item.action(t)}}};var Mt=n(8369),Yt={};Yt.styleTagTransform=b(),Yt.setAttributes=h(),Yt.insert=u().bind(null,\"head\"),Yt.domAPI=d(),Yt.insertStyleElement=C();A()(Mt.Z,Yt);Mt.Z&&Mt.Z.locals&&Mt.Z.locals;var It=n(408),Gt={};Gt.styleTagTransform=b(),Gt.setAttributes=h(),Gt.insert=u().bind(null,\"head\"),Gt.domAPI=d(),Gt.insertStyleElement=C();A()(It.Z,Gt);It.Z&&It.Z.locals&&It.Z.locals;const Lt={name:\"NcPopoverMenu\",components:{NcPopoverMenuItem:E(Zt,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"popover__menuitem\"},[t.item.href?e(\"a\",{staticClass:\"focusable\",attrs:{href:t.item.href?t.item.href:\"#\",target:t.item.target?t.item.target:\"\",download:t.item.download,rel:\"nofollow noreferrer noopener\"},on:{click:t.action}},[t.iconIsUrl?e(\"img\",{attrs:{src:t.item.icon}}):e(\"span\",{class:t.item.icon}),t._v(\" \"),t.item.text&&t.item.longtext?e(\"p\",[e(\"strong\",{staticClass:\"menuitem-text\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\\t\")]),e(\"br\"),t._v(\" \"),e(\"span\",{staticClass:\"menuitem-text-detail\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.longtext)+\"\\n\\t\\t\\t\")])]):t.item.text?e(\"span\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\")]):t.item.longtext?e(\"p\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.item.longtext)+\"\\n\\t\\t\")]):t._e()]):t.item.input?e(\"span\",{staticClass:\"menuitem\",class:{active:t.item.active}},[\"checkbox\"!==t.item.input?e(\"span\",{class:t.item.icon}):t._e(),t._v(\" \"),\"text\"===t.item.input?e(\"form\",{class:t.item.input,on:{submit:function(e){return e.preventDefault(),t.item.action.apply(null,arguments)}}},[e(\"input\",{attrs:{type:t.item.input,placeholder:t.item.text,required:\"\"},domProps:{value:t.item.value}}),t._v(\" \"),e(\"input\",{staticClass:\"icon-confirm\",attrs:{type:\"submit\",value:\"\"}})]):[\"checkbox\"===t.item.input?e(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.item.model,expression:\"item.model\"}],class:t.item.input,attrs:{id:t.key,type:\"checkbox\"},domProps:{checked:Array.isArray(t.item.model)?t._i(t.item.model,null)>-1:t.item.model},on:{change:[function(e){var n=t.item.model,i=e.target,a=!!i.checked;if(Array.isArray(n)){var r=t._i(n,null);i.checked?r<0&&t.$set(t.item,\"model\",n.concat([null])):r>-1&&t.$set(t.item,\"model\",n.slice(0,r).concat(n.slice(r+1)))}else t.$set(t.item,\"model\",a)},t.item.action]}}):\"radio\"===t.item.input?e(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.item.model,expression:\"item.model\"}],class:t.item.input,attrs:{id:t.key,type:\"radio\"},domProps:{checked:t._q(t.item.model,null)},on:{change:[function(e){return t.$set(t.item,\"model\",null)},t.item.action]}}):e(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.item.model,expression:\"item.model\"}],class:t.item.input,attrs:{id:t.key,type:t.item.input},domProps:{value:t.item.model},on:{change:t.item.action,input:function(e){e.target.composing||t.$set(t.item,\"model\",e.target.value)}}}),t._v(\" \"),e(\"label\",{attrs:{for:t.key},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.item.action.apply(null,arguments)}}},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\\t\")])]],2):t.item.action?e(\"button\",{staticClass:\"menuitem focusable\",class:{active:t.item.active},attrs:{disabled:t.item.disabled,type:\"button\"},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.item.action.apply(null,arguments)}}},[e(\"span\",{class:t.item.icon}),t._v(\" \"),t.item.text&&t.item.longtext?e(\"p\",[e(\"strong\",{staticClass:\"menuitem-text\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\\t\")]),e(\"br\"),t._v(\" \"),e(\"span\",{staticClass:\"menuitem-text-detail\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.longtext)+\"\\n\\t\\t\\t\")])]):t.item.text?e(\"span\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\")]):t.item.longtext?e(\"p\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.item.longtext)+\"\\n\\t\\t\")]):t._e()]):e(\"span\",{staticClass:\"menuitem\",class:{active:t.item.active}},[e(\"span\",{class:t.item.icon}),t._v(\" \"),t.item.text&&t.item.longtext?e(\"p\",[e(\"strong\",{staticClass:\"menuitem-text\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\\t\")]),e(\"br\"),t._v(\" \"),e(\"span\",{staticClass:\"menuitem-text-detail\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.longtext)+\"\\n\\t\\t\\t\")])]):t.item.text?e(\"span\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\")]):t.item.longtext?e(\"p\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.item.longtext)+\"\\n\\t\\t\")]):t._e()])])}),[],!1,null,\"127b0c62\",null).exports},props:{menu:{type:Array,default:()=>[{href:\"https://nextcloud.com\",icon:\"icon-links\",text:\"Nextcloud\"}],required:!0}}};var $t=n(2),jt={};jt.styleTagTransform=b(),jt.setAttributes=h(),jt.insert=u().bind(null,\"head\"),jt.domAPI=d(),jt.insertStyleElement=C();A()($t.Z,jt);$t.Z&&$t.Z.locals&&$t.Z.locals;var Ut=n(1174),Pt=n.n(Ut),zt=E(Lt,(function(){var t=this,e=t._self._c;return e(\"ul\",{staticClass:\"popover__menu\"},t._l(t.menu,(function(t,n){return e(\"NcPopoverMenuItem\",{key:n,attrs:{item:t}})})),1)}),[],!1,null,\"31ffd2d4\",null);\"function\"==typeof Pt()&&Pt()(zt);const Ht=zt.exports;const Wt={name:\"NcLoadingIcon\",props:{size:{type:Number,default:20},appearance:{type:String,validator:t=>[\"auto\",\"light\",\"dark\"].includes(t),default:\"auto\"},title:{type:String,default:\"\"}},computed:{colors(){const t=[\"#777\",\"#CCC\"];return\"light\"===this.appearance?t:\"dark\"===this.appearance?t.reverse():[\"var(--color-loading-light)\",\"var(--color-loading-dark)\"]}}};var qt=n(5030),Qt={};Qt.styleTagTransform=b(),Qt.setAttributes=h(),Qt.insert=u().bind(null,\"head\"),Qt.domAPI=d(),Qt.insertStyleElement=C();A()(qt.Z,Qt);qt.Z&&qt.Z.locals&&qt.Z.locals;var Kt=n(9280),Vt=n.n(Kt),Jt=E(Wt,(function(){var t=this,e=t._self._c;return e(\"span\",{staticClass:\"material-design-icon loading-icon\",attrs:{\"aria-label\":t.title,role:\"img\"}},[e(\"svg\",{attrs:{width:t.size,height:t.size,viewBox:\"0 0 24 24\"}},[e(\"path\",{attrs:{fill:t.colors[0],d:\"M12,4V2A10,10 0 1,0 22,12H20A8,8 0 1,1 12,4Z\"}}),t._v(\" \"),e(\"path\",{attrs:{fill:t.colors[1],d:\"M12,4V2A10,10 0 0,1 22,12H20A8,8 0 0,0 12,4Z\"}},[t.title?e(\"title\",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,\"c4a9cada\",null);\"function\"==typeof Vt()&&Vt()(Jt);const Xt=Jt.exports;function te(t,e,n){this.r=t,this.g=e,this.b=n}function ee(t,e,n){const i=[];i.push(e);const a=function(t,e){const n=new Array(3);return n[0]=(e[1].r-e[0].r)/t,n[1]=(e[1].g-e[0].g)/t,n[2]=(e[1].b-e[0].b)/t,n}(t,[e,n]);for(let n=1;n<t;n++){const t=parseInt(e.r+a[0]*n,10),r=parseInt(e.g+a[1]*n,10),o=parseInt(e.b+a[2]*n,10);i.push(new te(t,r,o))}return i}const ne=function(t){t||(t=6);const e=new te(182,70,157),n=new te(221,203,85),i=new te(0,130,201),a=ee(t,e,n),r=ee(t,n,i),o=ee(t,i,e);return a.concat(r).concat(o)},ie=require(\"md5\");var ae=n.n(ie);const re=function(t){let e=t.toLowerCase();null===e.match(/^([0-9a-f]{4}-?){8}$/)&&(e=ae()(e)),e=e.replace(/[^0-9a-f]/g,\"\");return ne(6)[function(t,e){let n=0;const i=[];for(let e=0;e<t.length;e++)i.push(parseInt(t.charAt(e),16)%16);for(const t in i)n+=i[t];return parseInt(parseInt(n,10)%e,10)}(e,18)]},oe={props:{excludeClickOutsideSelectors:{type:[String,Array],default:()=>[]},excludeClickOutsideClasses:{type:[String,Array],default:()=>[]}},computed:{clickOutsideOptions(){return{ignore:[...Array.isArray(this.excludeClickOutsideSelectors)?this.excludeClickOutsideSelectors:[this.excludeClickOutsideSelectors],...(Array.isArray(this.excludeClickOutsideClasses)?this.excludeClickOutsideClasses:[this.excludeClickOutsideClasses]).map((t=>\".\".concat(t)))]}}}},se={data(){return{isFullscreen:this._isFullscreen()}},beforeMount(){window.addEventListener(\"resize\",this._onResize)},beforeDestroy(){window.removeEventListener(\"resize\",this._onResize)},methods:{_onResize(){this.isFullscreen=this._isFullscreen()},_isFullscreen:()=>window.outerHeight===screen.height}},le=new(e())({data:()=>({isMobile:!1}),watch:{isMobile(t){this.$emit(\"changed\",t)}},created(){window.addEventListener(\"resize\",this.handleWindowResize),this.handleWindowResize()},beforeDestroy(){window.removeEventListener(\"resize\",this.handleWindowResize)},methods:{handleWindowResize(){this.isMobile=document.documentElement.clientWidth<1024}}}),Ae={data:()=>({isMobile:!1}),mounted(){le.$on(\"changed\",this.onIsMobileChanged),this.isMobile=le.isMobile},beforeDestroy(){le.$off(\"changed\",this.onIsMobileChanged)},methods:{onIsMobileChanged(t){this.isMobile=t}}};const ce=require(\"@nextcloud/router\"),de={name:\"NcMentionBubble\",props:{id:{type:String,required:!0},label:{type:String,required:!0},icon:{type:String,required:!0},iconUrl:{type:[String,null],default:null},source:{type:String,required:!0},primary:{type:Boolean,default:!1}},computed:{avatarUrl(){return this.iconUrl?this.iconUrl:this.id&&\"users\"===this.source?this.getAvatarUrl(this.id,44):null},mentionText(){return this.id.includes(\" \")||this.id.includes(\"/\")?'@\"'.concat(this.id,'\"'):\"@\".concat(this.id)}},methods:{getAvatarUrl:(t,e)=>(0,ce.generateUrl)(\"/avatar/{user}/{size}\",{user:t,size:e})}};var pe=n(5594),ue={};ue.styleTagTransform=b(),ue.setAttributes=h(),ue.insert=u().bind(null,\"head\"),ue.domAPI=d(),ue.insertStyleElement=C();A()(pe.Z,ue);pe.Z&&pe.Z.locals&&pe.Z.locals;const me=E(de,(function(){var t=this,e=t._self._c;return e(\"span\",{staticClass:\"mention-bubble\",class:{\"mention-bubble--primary\":t.primary},attrs:{contenteditable:\"false\"}},[e(\"span\",{staticClass:\"mention-bubble__wrapper\"},[e(\"span\",{staticClass:\"mention-bubble__content\"},[e(\"span\",{staticClass:\"mention-bubble__icon\",class:[t.icon,\"mention-bubble__icon--\".concat(t.avatarUrl?\"with-avatar\":\"\")],style:t.avatarUrl?{backgroundImage:\"url(\".concat(t.avatarUrl,\")\")}:null}),t._v(\" \"),e(\"span\",{staticClass:\"mention-bubble__title\",attrs:{role:\"heading\",title:t.label}})]),t._v(\" \"),e(\"span\",{staticClass:\"mention-bubble__select\",attrs:{role:\"none\"}},[t._v(t._s(t.mentionText))])])])}),[],!1,null,\"8a961b36\",null).exports,he=require(\"linkify-string\");var ge=n.n(he);const Ce=t=>ge()(t,{defaultProtocol:\"https\",target:\"_blank\",className:\"external linkified\",attributes:{rel:\"nofollow noopener noreferrer\"}}),Te=require(\"escape-html\");var be=n.n(Te);const ve=require(\"striptags\");var fe=n.n(ve);const Ee=\"(?:^|\\\\s)\",xe=\"(?:[^a-z]|$)\",ye=new RegExp(\"\".concat(Ee,\"(@[a-zA-Z0-9_.@\\\\-']+)(\").concat(xe,\")\"),\"gi\"),Se=new RegExp(\"\".concat(Ee,\"(@&quot;[a-zA-Z0-9 _.@\\\\-']+&quot;)(\").concat(xe,\")\"),\"gi\"),De={props:{userData:{type:Object,default:()=>({})}},methods:{renderContent(t){return be()(t).split(ye).map((t=>t.split(Se))).flat().map((t=>{if(!t.startsWith(\"@\"))return Ce(t);const e=t.slice(1).replace(/&quot;/gi,\"\");return\" \"+this.genSelectTemplate(e)})).join(\"\").replace(/\\n/gim,\"<br>\").replace(/&amp;/gim,\"&\")},parseContent(t){let e=t.replace(/<br>/gim,\"\\n\");return e=e.replace(/&nbsp;/gim,\" \"),e=e.replace(/&amp;/gim,\"&\"),e=e.replace(/<\\/div>/gim,\"\\n\"),e=fe()(e,\"<div>\"),e=fe()(e),e},genSelectTemplate(t){if(void 0===t)return\"\".concat(this.autocompleteTribute.current.collection.trigger).concat(this.autocompleteTribute.current.mentionText);const e=this.userData[t];return e?this.renderComponentHtml(e,me).replace(/[\\n\\t]/gim,\"\"):t.includes(\" \")||t.includes(\"/\")?'@\"'.concat(t,'\"'):\"@\".concat(t)},renderComponentHtml(t,n){const i=new(e().extend(n))({propsData:t}),a=document.createElement(\"div\"),r=document.createElement(\"div\");a.style.display=\"none\",a.appendChild(r),document.body.appendChild(a),i.$mount(r);const o=a.innerHTML;return i.$destroy(),a.remove(),o}}},ke=require(\"@nextcloud/auth\"),we=require(\"@nextcloud/axios\");var Ne=n.n(we);const Fe=require(\"@nextcloud/capabilities\"),Re={data:()=>({hasStatus:!1,userStatus:{status:null,message:null,icon:null}}),methods:{async fetchUserStatus(t){if(!t)return;const e=(0,Fe.getCapabilities)();if(Object.prototype.hasOwnProperty.call(e,\"user_status\")&&e.user_status.enabled&&(0,ke.getCurrentUser)())try{const{data:e}=await Ne().get((0,ce.generateOcsUrl)(\"apps/user_status/api/v1/statuses/{userId}\",{userId:t})),{status:n,message:i,icon:a}=e.ocs.data;this.userStatus.status=n,this.userStatus.message=i||\"\",this.userStatus.icon=a||\"\",this.hasStatus=!0}catch(t){var n,i;if(404===t.response.status&&0===(null===(n=t.response.data.ocs)||void 0===n||null===(i=n.data)||void 0===i?void 0:i.length))return;console.error(t)}}}},Be=require(\"vue-material-design-icons/DotsHorizontal.vue\");var _e=n.n(Be);const Oe=require(\"@nextcloud/event-bus\"),Ze=require(\"@nextcloud/browser-storage\"),Me=require(\"@vueuse/components\"),Ye=(0,Ze.getBuilder)(\"nextcloud\").persist().build();function Ie(t,e){t&&Ye.setItem(\"user-has-avatar.\"+t,e)}const Ge={name:\"NcAvatar\",directives:{ClickOutside:Me.vOnClickOutside},components:{DotsHorizontal:_e(),NcLoadingIcon:Xt,NcPopover:Ot,NcPopoverMenu:Ht},mixins:[Re],props:{url:{type:String,default:void 0},iconClass:{type:String,default:void 0},user:{type:String,default:void 0},showUserStatus:{type:Boolean,default:!0},showUserStatusCompact:{type:Boolean,default:!0},preloadedUserStatus:{type:Object,default:void 0},isGuest:{type:Boolean,default:!1},displayName:{type:String,default:void 0},size:{type:Number,default:32},allowPlaceholder:{type:Boolean,default:!0},disableTooltip:{type:Boolean,default:!1},disableMenu:{type:Boolean,default:!1},tooltipMessage:{type:String,default:null},isNoUser:{type:Boolean,default:!1},menuPosition:{type:String,default:\"center\"},menuContainer:{type:[String,Object,Element,Boolean],default:\"body\"}},data:()=>({avatarUrlLoaded:null,avatarSrcSetLoaded:null,userDoesNotExist:!1,isAvatarLoaded:!1,isMenuLoaded:!1,contactsMenuLoading:!1,contactsMenuActions:[],contactsMenuOpenState:!1}),computed:{avatarAriaLabel(){var t,e;if(this.hasMenu)return this.hasStatus&&this.showUserStatus&&this.showUserStatusCompact?tt(\"Avatar of {displayName}, {status}\",{displayName:null!==(e=this.displayName)&&void 0!==e?e:this.user,status:this.userStatus.status}):tt(\"Avatar of {displayName}\",{displayName:null!==(t=this.displayName)&&void 0!==t?t:this.user})},canDisplayUserStatus(){return this.showUserStatus&&this.hasStatus&&[\"online\",\"away\",\"dnd\"].includes(this.userStatus.status)},showUserStatusIconOnAvatar(){return this.showUserStatus&&this.showUserStatusCompact&&this.hasStatus&&\"dnd\"!==this.userStatus.status&&this.userStatus.icon},getUserIdentifier(){return this.isDisplayNameDefined?this.displayName:this.isUserDefined?this.user:\"\"},isUserDefined(){return void 0!==this.user},isDisplayNameDefined(){return void 0!==this.displayName},isUrlDefined(){return void 0!==this.url},hasMenu(){var t;return!this.disableMenu&&(this.isMenuLoaded?this.menu.length>0:!(this.user===(null===(t=(0,ke.getCurrentUser)())||void 0===t?void 0:t.uid)||this.userDoesNotExist||this.url))},shouldShowPlaceholder(){return this.allowPlaceholder&&this.userDoesNotExist},avatarStyle(){return{\"--size\":this.size+\"px\",lineHeight:this.size+\"px\",fontSize:Math.round(.45*this.size)+\"px\"}},initialsWrapperStyle(){const{r:t,g:e,b:n}=re(this.getUserIdentifier);return{backgroundColor:\"rgba(\".concat(t,\", \").concat(e,\", \").concat(n,\", 0.1)\")}},initialsStyle(){const{r:t,g:e,b:n}=re(this.getUserIdentifier);return{color:\"rgb(\".concat(t,\", \").concat(e,\", \").concat(n,\")\")}},tooltip(){return!this.disableTooltip&&(this.tooltipMessage?this.tooltipMessage:this.displayName)},initials(){let t;if(this.shouldShowPlaceholder){const e=this.getUserIdentifier,n=e.indexOf(\" \");\"\"===e?t=\"?\":(t=String.fromCodePoint(e.codePointAt(0)),-1!==n&&(t=t.concat(String.fromCodePoint(e.codePointAt(n+1)))))}return t.toUpperCase()},menu(){const t=this.contactsMenuActions.map((t=>({href:t.hyperlink,icon:t.icon,longtext:t.title})));return this.showUserStatus&&(this.userStatus.icon||this.userStatus.message)?[{href:\"#\",icon:\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><text x='0' y='14' font-size='14'>\".concat(function(t){const e=document.createTextNode(t),n=document.createElement(\"p\");return n.appendChild(e),n.innerHTML}(this.userStatus.icon),\"</text></svg>\"),text:\"\".concat(this.userStatus.message)}].concat(t):t}},watch:{url(){this.userDoesNotExist=!1,this.loadAvatarUrl()},user(){this.userDoesNotExist=!1,this.isMenuLoaded=!1,this.loadAvatarUrl()}},mounted(){this.loadAvatarUrl(),(0,Oe.subscribe)(\"settings:avatar:updated\",this.loadAvatarUrl),(0,Oe.subscribe)(\"settings:display-name:updated\",this.loadAvatarUrl),this.showUserStatus&&this.user&&!this.isNoUser&&(this.preloadedUserStatus?(this.userStatus.status=this.preloadedUserStatus.status||\"\",this.userStatus.message=this.preloadedUserStatus.message||\"\",this.userStatus.icon=this.preloadedUserStatus.icon||\"\",this.hasStatus=null!==this.preloadedUserStatus.status):this.fetchUserStatus(this.user),(0,Oe.subscribe)(\"user_status:status.updated\",this.handleUserStatusUpdated))},beforeDestroy(){(0,Oe.unsubscribe)(\"settings:avatar:updated\",this.loadAvatarUrl),(0,Oe.unsubscribe)(\"settings:display-name:updated\",this.loadAvatarUrl),this.showUserStatus&&this.user&&!this.isNoUser&&(0,Oe.unsubscribe)(\"user_status:status.updated\",this.handleUserStatusUpdated)},methods:{handlePopoverAfterShow(){const t=this.$refs.popoverMenu.$el.getElementsByTagName(\"a\");t.length&&t[0].focus()},handlePopoverAfterHide(){this.$refs.main.focus()},handleUserStatusUpdated(t){this.user===t.userId&&(this.userStatus={status:t.status,icon:t.icon,message:t.message})},async toggleMenu(){this.hasMenu&&(this.contactsMenuOpenState||await this.fetchContactsMenu(),this.contactsMenuOpenState=!this.contactsMenuOpenState)},closeMenu(){this.contactsMenuOpenState=!1},async fetchContactsMenu(){this.contactsMenuLoading=!0;try{const t=encodeURIComponent(this.user),{data:e}=await Ne().post((0,ce.generateUrl)(\"contactsmenu/findOne\"),\"shareType=0&shareWith=\".concat(t));this.contactsMenuActions=e.topAction?[e.topAction].concat(e.actions):e.actions}catch(t){this.contactsMenuOpenState=!1}this.contactsMenuLoading=!1,this.isMenuLoaded=!0},loadAvatarUrl(){if(this.isAvatarLoaded=!1,!this.isUrlDefined&&(!this.isUserDefined||this.isNoUser))return this.isAvatarLoaded=!0,void(this.userDoesNotExist=!0);if(this.isUrlDefined)this.updateImageIfValid(this.url);else if(this.size<=64){const t=this.avatarUrlGenerator(this.user,64),e=[t+\" 1x\",this.avatarUrlGenerator(this.user,512)+\" 8x\"].join(\", \");this.updateImageIfValid(t,e)}else{const t=this.avatarUrlGenerator(this.user,512);this.updateImageIfValid(t)}},avatarUrlGenerator(t,e){var n;const i=\"invert(100%)\"===window.getComputedStyle(document.body).getPropertyValue(\"--background-invert-if-dark\");let a=\"/avatar/{user}/{size}\"+(i?\"/dark\":\"\");this.isGuest&&(a=\"/avatar/guest/{user}/{size}\"+(i?\"/dark\":\"\"));let r=(0,ce.generateUrl)(a,{user:t,size:e});return t===(null===(n=(0,ke.getCurrentUser)())||void 0===n?void 0:n.uid)&&\"undefined\"!=typeof oc_userconfig&&(r+=\"?v=\"+oc_userconfig.avatar.version),r},updateImageIfValid(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const n=function(t){const e=Ye.getItem(\"user-has-avatar.\"+t);return\"string\"==typeof e?Boolean(e):null}(this.user);if(this.isUserDefined&&\"boolean\"==typeof n)return this.isAvatarLoaded=!0,this.avatarUrlLoaded=t,e&&(this.avatarSrcSetLoaded=e),void(!1===n&&(this.userDoesNotExist=!0));const i=new Image;i.onload=()=>{this.avatarUrlLoaded=t,e&&(this.avatarSrcSetLoaded=e),this.isAvatarLoaded=!0,Ie(this.user,!0)},i.onerror=()=>{console.debug(\"Invalid avatar url\",t),this.avatarUrlLoaded=null,this.avatarSrcSetLoaded=null,this.userDoesNotExist=!0,this.isAvatarLoaded=!1,Ie(this.user,!1)},e&&(i.srcset=e),i.src=t}}};var Le=n(4343),$e={};$e.styleTagTransform=b(),$e.setAttributes=h(),$e.insert=u().bind(null,\"head\"),$e.domAPI=d(),$e.insertStyleElement=C();A()(Le.Z,$e);Le.Z&&Le.Z.locals&&Le.Z.locals;var je=n(3051),Ue=n.n(je),Pe=E(Ge,(function(){var t=this,e=t._self._c;return e(\"div\",t._g({directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:t.closeMenu,expression:\"closeMenu\"}],ref:\"main\",staticClass:\"avatardiv popovermenu-wrapper\",class:{\"avatardiv--unknown\":t.userDoesNotExist,\"avatardiv--with-menu\":t.hasMenu},style:t.avatarStyle,attrs:{title:t.tooltip,tabindex:t.hasMenu?\"0\":void 0,\"aria-label\":t.avatarAriaLabel,role:t.hasMenu?\"button\":void 0},on:{keydown:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")?null:t.toggleMenu.apply(null,arguments)}}},t.hasMenu?{click:t.toggleMenu}:{}),[t._t(\"icon\",(function(){return[t.iconClass?e(\"div\",{staticClass:\"avatar-class-icon\",class:t.iconClass}):t.isAvatarLoaded&&!t.userDoesNotExist?e(\"img\",{attrs:{src:t.avatarUrlLoaded,srcset:t.avatarSrcSetLoaded,alt:\"\"}}):t._e()]})),t._v(\" \"),t.hasMenu?e(\"NcPopover\",{attrs:{placement:\"auto\",container:t.menuContainer,shown:t.contactsMenuOpenState},on:{\"after-show\":t.handlePopoverAfterShow,\"after-hide\":t.handlePopoverAfterHide},scopedSlots:t._u([{key:\"trigger\",fn:function(){return[t.contactsMenuLoading?e(\"NcLoadingIcon\"):e(\"DotsHorizontal\",{staticClass:\"icon-more\",attrs:{size:20}})]},proxy:!0}],null,!1,2037777893)},[e(\"NcPopoverMenu\",{ref:\"popoverMenu\",attrs:{menu:t.menu}})],1):t._e(),t._v(\" \"),t.showUserStatusIconOnAvatar?e(\"div\",{staticClass:\"avatardiv__user-status avatardiv__user-status--icon\"},[t._v(\"\\n\\t\\t\"+t._s(t.userStatus.icon)+\"\\n\\t\")]):t.canDisplayUserStatus?e(\"div\",{staticClass:\"avatardiv__user-status\",class:\"avatardiv__user-status--\"+t.userStatus.status}):t._e(),t._v(\" \"),!t.userDoesNotExist||t.iconClass||t.$slots.icon?t._e():e(\"div\",{staticClass:\"avatardiv__initials-wrapper\",style:t.initialsWrapperStyle},[e(\"div\",{staticClass:\"unknown\",style:t.initialsStyle},[t._v(\"\\n\\t\\t\\t\"+t._s(t.initials)+\"\\n\\t\\t\")])])],2)}),[],!1,null,\"b1ea54bc\",null);\"function\"==typeof Ue()&&Ue()(Pe);const ze=Pe.exports;const He=require(\"@skjnldsv/sanitize-svg\"),We={name:\"NcIconSvgWrapper\",props:{svg:{type:String,default:\"\"},title:{type:String,default:\"\"}},data:()=>({cleanSvg:\"\"}),async beforeMount(){await this.sanitizeSVG()},methods:{async sanitizeSVG(){this.svg&&(this.cleanSvg=await(0,He.sanitizeSVG)(this.svg))}}};var qe=n(8973),Qe={};Qe.styleTagTransform=b(),Qe.setAttributes=h(),Qe.insert=u().bind(null,\"head\"),Qe.domAPI=d(),Qe.insertStyleElement=C();A()(qe.Z,Qe);qe.Z&&qe.Z.locals&&qe.Z.locals;var Ke=n(1287),Ve=n.n(Ke),Je=E(We,(function(){var t=this;return(0,t._self._c)(\"span\",{staticClass:\"icon-vue\",attrs:{role:\"img\",\"aria-hidden\":!t.title,\"aria-label\":t.title},domProps:{innerHTML:t._s(t.cleanSvg)}})}),[],!1,null,\"a3da3488\",null);\"function\"==typeof Ve()&&Ve()(Je);const Xe=Je.exports,tn={name:\"NcListItemIcon\",components:{NcAvatar:ze,NcHighlight:bt,NcIconSvgWrapper:Xe},mixins:[Re],props:{title:{type:String,required:!0},subtitle:{type:String,default:\"\"},icon:{type:String,default:\"\"},iconSvg:{type:String,default:\"\"},iconTitle:{type:String,default:\"\"},search:{type:String,default:\"\"},avatarSize:{type:Number,default:32},noMargin:{type:Boolean,default:!1},displayName:{type:String,default:null},isNoUser:{type:Boolean,default:!1},id:{type:String,default:null}},data:()=>({margin:8}),computed:{hasIcon(){return\"\"!==this.icon},hasIconSvg(){return\"\"!==this.iconSvg},isValidSubtitle(){var t,e;return\"\"!==(null===(t=this.subtitle)||void 0===t||null===(e=t.trim)||void 0===e?void 0:e.call(t))},isSizeBigEnough(){return this.avatarSize>=32},cssVars(){const t=this.noMargin?0:this.margin;return{\"--height\":this.avatarSize+2*t+\"px\",\"--margin\":this.margin+\"px\"}}},beforeMount(){this.isNoUser||this.subtitle||this.fetchUserStatus(this.user)}},en=tn;var nn=n(808),an={};an.styleTagTransform=b(),an.setAttributes=h(),an.insert=u().bind(null,\"head\"),an.domAPI=d(),an.insertStyleElement=C();A()(nn.Z,an);nn.Z&&nn.Z.locals&&nn.Z.locals;var rn=n(8488),on=n.n(rn),sn=E(en,(function(){var t=this,e=t._self._c;return e(\"span\",t._g({staticClass:\"option\",style:t.cssVars,attrs:{id:t.id}},t.$listeners),[e(\"NcAvatar\",t._b({staticClass:\"option__avatar\",attrs:{\"disable-menu\":!0,\"disable-tooltip\":!0,\"display-name\":t.displayName||t.title,\"is-no-user\":t.isNoUser,size:t.avatarSize}},\"NcAvatar\",t.$attrs,!1)),t._v(\" \"),e(\"div\",{staticClass:\"option__details\"},[e(\"NcHighlight\",{staticClass:\"option__lineone\",attrs:{text:t.title,search:t.search}}),t._v(\" \"),t.isValidSubtitle&&t.isSizeBigEnough?e(\"NcHighlight\",{staticClass:\"option__linetwo\",attrs:{text:t.subtitle,search:t.search}}):t.hasStatus?e(\"span\",[e(\"span\",[t._v(t._s(t.userStatus.icon))]),t._v(\" \"),e(\"span\",[t._v(t._s(t.userStatus.message))])]):t._e()],1),t._v(\" \"),t._t(\"default\",(function(){return[t.hasIconSvg?e(\"NcIconSvgWrapper\",{staticClass:\"option__icon\",attrs:{svg:t.iconSvg,title:t.iconTitle}}):t.hasIcon?e(\"span\",{staticClass:\"icon option__icon\",class:t.icon,attrs:{\"aria-label\":t.iconTitle}}):t._e()]}))],2)}),[],!1,null,\"4f3daf70\",null);\"function\"==typeof on()&&on()(sn);const ln=sn.exports,An={methods:{n:X,t:tt}},cn={name:\"NcSelect\",components:{ChevronDown:dt(),NcEllipsisedOption:xt,NcListItemIcon:ln,NcLoadingIcon:Xt,VueSelect:lt()},mixins:[An],props:{...lt().props,appendToBody:{type:Boolean,default:!0},calculatePosition:{type:Function,default:null},closeOnSelect:{type:Boolean,default:!0},components:{type:Object,default:()=>({Deselect:{render:t=>t(ut(),{props:{size:20,fillColor:\"var(--vs-controls-color)\"},style:{cursor:\"pointer\"}})}})},limit:{type:Number,default:null},disabled:{type:Boolean,default:!1},filterBy:{type:Function,default:null},inputClass:{type:[String,Object],default:null},inputId:{type:String,default:null},keyboardFocusBorder:{type:Boolean,default:!0},label:{type:String,default:null},loading:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noWrap:{type:Boolean,default:!1},options:{type:Array,default:()=>[]},placeholder:{type:String,default:\"\"},placement:{type:String,default:\"bottom\"},userSelect:{type:Boolean,default:!1},value:{type:[String,Number,Object,Array],default:null},\" \":{}},emits:[\" \"],data:()=>({search:\"\"}),computed:{localCalculatePosition(){return null!==this.calculatePosition?this.calculatePosition:(t,e,n)=>{let{width:i}=n;t.style.width=i;const a={name:\"addClass\",fn:e=>(t.classList.add(\"vs__dropdown-menu--floating\"),{})},r={name:\"togglePlacementClass\",fn(n){let{placement:i}=n;return e.$el.classList.toggle(\"select--drop-up\",\"top\"===i),t.classList.toggle(\"vs__dropdown-menu--floating-placement-top\",\"top\"===i),{}}};return(0,At.autoUpdate)(e.$refs.toggle,t,(()=>{(0,At.computePosition)(e.$refs.toggle,t,{placement:this.placement,middleware:[(0,At.offset)(-1),a,r,(0,At.flip)(),(0,At.shift)({limiter:(0,At.limitShift)()})]}).then((e=>{let{x:n,y:i}=e;Object.assign(t.style,{left:\"\".concat(n,\"px\"),top:\"\".concat(i,\"px\")})}))}))}},localFilterBy(){return null!==this.filterBy?this.filterBy:this.userSelect?(t,e,n)=>(\"\".concat(e,\" \").concat(t.subtitle)||\"\").toLocaleLowerCase().indexOf(n.toLocaleLowerCase())>-1:lt().props.filterBy.default},localLabel(){return null!==this.label?this.label:this.userSelect?\"displayName\":lt().props.label.default},propsToForward(){const{inputClass:t,noWrap:e,placement:n,userSelect:i,...a}=this.$props;return{...a,calculatePosition:this.localCalculatePosition,filterBy:this.localFilterBy,label:this.localLabel}}}},dn=cn;var pn=n(394),un={};un.styleTagTransform=b(),un.setAttributes=h(),un.insert=u().bind(null,\"head\"),un.domAPI=d(),un.insertStyleElement=C();A()(pn.Z,un);pn.Z&&pn.Z.locals&&pn.Z.locals;var mn=n(8220),hn=n.n(mn),gn=E(dn,(function(){var t=this,e=t._self._c;return e(\"VueSelect\",t._g(t._b({staticClass:\"select\",class:{\"select--no-wrap\":t.noWrap},on:{search:e=>t.search=e},scopedSlots:t._u([{key:\"search\",fn:function(n){let{attributes:i,events:a}=n;return[e(\"input\",t._g(t._b({class:[\"vs__search\",t.inputClass]},\"input\",i,!1),a))]}},{key:\"open-indicator\",fn:function(n){let{attributes:i}=n;return[e(\"ChevronDown\",t._b({attrs:{\"fill-color\":\"var(--vs-controls-color)\",size:26}},\"ChevronDown\",i,!1))]}},{key:\"option\",fn:function(n){return[t.userSelect?e(\"NcListItemIcon\",t._b({attrs:{title:n[t.localLabel],search:t.search}},\"NcListItemIcon\",n,!1)):e(\"NcEllipsisedOption\",{attrs:{name:String(n[t.localLabel]),search:t.search}})]}},{key:\"selected-option\",fn:function(n){return[t.userSelect?e(\"NcListItemIcon\",t._b({attrs:{title:n[t.localLabel],search:t.search}},\"NcListItemIcon\",n,!1)):e(\"NcEllipsisedOption\",{attrs:{name:String(n[t.localLabel]),search:t.search}})]}},{key:\"spinner\",fn:function(n){return[n.loading?e(\"NcLoadingIcon\"):t._e()]}},{key:\"no-options\",fn:function(){return[t._v(\"\\n\\t\\t\"+t._s(t.t(\"No results\"))+\"\\n\\t\")]},proxy:!0},t._l(t.$scopedSlots,(function(e,n){return{key:n,fn:function(e){return[t._t(n,null,null,e)]}}}))],null,!0)},\"VueSelect\",t.propsToForward,!1),t.$listeners))}),[],!1,null,null,null);\"function\"==typeof hn()&&hn()(gn);const Cn=gn.exports,Tn={name:\"NcTimezonePicker\",components:{NcSelect:Cn},props:{additionalTimezones:{type:Array,default:()=>[]},value:{type:String,default:\"floating\"}},emits:[\"input\"],computed:{placeholder:()=>tt(\"Type to search time zone\"),selectedTimezone(){for(const t of this.additionalTimezones)if(t.timezoneId===this.value)return t;return{label:et(this.value),timezoneId:this.value}},options(){const t=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const n={},i=[];for(const e of t){const t=e.split(\"/\");let[i,a]=[t.shift(),t.join(\"/\")];a||(a=i,i=tt(\"Global\")),n[i]=n[i]||{continent:i,regions:[]},n[i].regions.push({label:et(a),cities:[],timezoneId:e})}for(const t of e){const{continent:e,label:i,timezoneId:a}=t;n[e]=n[e]||{continent:e,regions:[]},n[e].regions.push({label:i,cities:[],timezoneId:a})}for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(n[t].regions.sort(((t,e)=>t.label<e.label?-1:1)),i.push(n[t]));return i.sort(((t,e)=>t.continent<e.continent?-1:1)),i}(ot().listAllTimezones(),this.additionalTimezones);let e=[];return Object.values(t).forEach((t=>{e.push({label:t.continent,timezoneId:\"tz-group__\".concat(t.continent),regions:t.regions}),e=e.concat(t.regions)})),e}},methods:{change(t){t&&this.$emit(\"input\",t.timezoneId)},isSelectable:t=>!t.timezoneId.startsWith(\"tz-group__\"),filterBy(t,e,n){const i=n.trim().split(\" \");return t.timezoneId.startsWith(\"tz-group__\")?t.regions.some((t=>this.matchTimezoneId(t.timezoneId,i))):this.matchTimezoneId(t.timezoneId,i)},matchTimezoneId:(t,e)=>e.every((e=>t.toLowerCase().includes(e.toLowerCase())))}};var bn=n(189),vn=n.n(bn),fn=E(Tn,(function(){var t=this;return(0,t._self._c)(\"NcSelect\",{attrs:{value:t.selectedTimezone,options:t.options,multiple:!1,clearable:!1,placeholder:t.placeholder,selectable:t.isSelectable,\"filter-by\":t.filterBy,label:\"label\"},on:{\"option:selected\":t.change}})}),[],!1,null,null,null);\"function\"==typeof vn()&&vn()(fn);const En=fn.exports,xn=require(\"vue-material-design-icons/CalendarBlank.vue\");var yn=n.n(xn);const Sn=require(\"vue-material-design-icons/Web.vue\");var Dn=n.n(Sn);const kn=require(\"@nextcloud/l10n\"),wn=require(\"vue2-datepicker\");var Nn=n.n(wn);const Fn={date:\"YYYY-MM-DD\",datetime:\"YYYY-MM-DD H:mm:ss\",year:\"YYYY\",month:\"YYYY-MM\",time:\"H:mm:ss\",week:\"w\"},Rn={name:\"NcDatetimePicker\",components:{CalendarBlank:yn(),DatePicker:Nn(),NcPopover:Ot,NcTimezonePicker:En,Web:Dn()},mixins:[An],inheritAttrs:!1,props:{clearable:{type:Boolean,default:!1},minuteStep:{type:Number,default:10},type:{type:String,default:\"date\"},format:{type:String,default:null},formatter:{type:Object,default:null},lang:{type:Object,default:null},value:{default:()=>new Date},timezoneId:{type:String,default:\"UTC\"},showTimezoneSelect:{type:Boolean,default:!1},highlightTimezone:{type:Boolean,default:!1},appendToBody:{type:Boolean,default:!1},showWeekNumber:{type:Boolean,default:!1},placeholder:{type:String,default:null}},emits:[\"update:value\",\"update:timezone-id\"],data(){return{showTimezonePopover:!1,tzVal:this.timezoneId}},computed:{defaultLang:()=>({formatLocale:{months:(0,kn.getMonthNames)(),monthsShort:(0,kn.getMonthNamesShort)(),weekdays:(0,kn.getDayNames)(),weekdaysShort:(0,kn.getDayNamesShort)(),weekdaysMin:(0,kn.getDayNamesMin)(),firstDayOfWeek:(0,kn.getFirstDay)()},monthFormat:\"MMM\"}),defaultPlaceholder(){return\"time\"===this.type?tt(\"Pick a time\"):\"month\"===this.type?tt(\"Pick a month\"):\"year\"===this.type?tt(\"Pick a year\"):\"week\"===this.type?tt(\"Pick a week\"):\"date\"===this.type?tt(\"Pick a date\"):tt(\"Pick a date and a time\")},formatTypeMap(){var t;return null!==(t=Fn[this.type])&&void 0!==t?t:Fn.date}},methods:{handleSelectYear(t){const e=this.$refs.datepicker.currentValue;if(e)try{const n=new Date(new Date(e).setFullYear(t));this.$refs.datepicker.selectDate(n)}catch(n){console.error(\"Invalid value\",e,t)}},handleSelectMonth(t){const e=this.$refs.datepicker.currentValue;if(e)try{const n=new Date(new Date(e).setMonth(t));this.$refs.datepicker.selectDate(n)}catch(n){console.error(\"Invalid value\",e,t)}},toggleTimezonePopover(){this.showTimezoneSelect&&(this.showTimezonePopover=!this.showTimezonePopover)}}};var Bn=n(6526),_n={};_n.styleTagTransform=b(),_n.setAttributes=h(),_n.insert=u().bind(null,\"head\"),_n.domAPI=d(),_n.insertStyleElement=C();A()(Bn.Z,_n);Bn.Z&&Bn.Z.locals&&Bn.Z.locals;var On=n(2618),Zn={};Zn.styleTagTransform=b(),Zn.setAttributes=h(),Zn.insert=u().bind(null,\"head\"),Zn.domAPI=d(),Zn.insertStyleElement=C();A()(On.Z,Zn);On.Z&&On.Z.locals&&On.Z.locals;var Mn=n(8538),Yn=n.n(Mn),In=E(Rn,(function(){var t=this,e=t._self._c;return e(\"DatePicker\",t._g(t._b({ref:\"datepicker\",attrs:{\"append-to-body\":t.appendToBody,clearable:t.clearable,format:t.format?t.format:t.formatTypeMap,formatter:t.formatter,lang:t.lang?t.lang:t.defaultLang,\"minute-step\":t.minuteStep,placeholder:t.placeholder?t.placeholder:t.defaultPlaceholder,\"popup-class\":{\"show-week-number\":t.showWeekNumber},\"show-week-number\":t.showWeekNumber,type:t.type,value:t.value},on:{\"select-year\":t.handleSelectYear,\"select-month\":t.handleSelectMonth,\"update:value\":function(e){return t.$emit(\"update:value\",t.value)}},scopedSlots:t._u([{key:\"icon-calendar\",fn:function(){return[t.showTimezoneSelect?e(\"NcPopover\",{attrs:{shown:t.showTimezonePopover,\"popover-base-class\":\"timezone-select__popper\"},on:{\"update:shown\":function(e){t.showTimezonePopover=e}},scopedSlots:t._u([{key:\"trigger\",fn:function(){return[e(\"button\",{staticClass:\"datetime-picker-inline-icon\",class:{\"datetime-picker-inline-icon--highlighted\":t.highlightTimezone},on:{mousedown:function(t){return t.stopPropagation(),t.preventDefault(),(()=>{}).apply(null,arguments)}}},[e(\"Web\",{attrs:{size:20}})],1)]},proxy:!0}],null,!1,3375037618)},[t._v(\" \"),e(\"div\",{staticClass:\"timezone-popover-wrapper__title\"},[e(\"strong\",[t._v(\"\\n\\t\\t\\t\\t\\t\"+t._s(t.t(\"Please select a time zone:\"))+\"\\n\\t\\t\\t\\t\")])]),t._v(\" \"),e(\"NcTimezonePicker\",{staticClass:\"timezone-popover-wrapper__timezone-select\",on:{input:function(e){return t.$emit(\"update:timezone-id\",arguments[0])}},model:{value:t.tzVal,callback:function(e){t.tzVal=e},expression:\"tzVal\"}})],1):e(\"CalendarBlank\",{attrs:{size:20}})]},proxy:!0},t._l(t.$scopedSlots,(function(e,n){return{key:n,fn:function(e){return[t._t(n,null,null,e)]}}}))],null,!0)},\"DatePicker\",t.$attrs,!1),t.$listeners))}),[],!1,null,\"68e9c068\",null);\"function\"==typeof Yn()&&Yn()(In);const Gn=In.exports,Ln=t=>{t.mounted?Array.isArray(t.mounted)||(t.mounted=[t.mounted]):t.mounted=[],t.mounted.push((function(){this.$el.setAttribute(\"data-v-\".concat(\"7310e89\"),\"\")}))};Ln(Gn);const $n=Gn;const jn=[\"date\",\"datetime-local\",\"month\",\"time\",\"week\"],Un={name:\"NcDateTimePickerNative\",inheritAttrs:!1,props:{value:{type:Date,default:null},id:{type:String,required:!0},type:{type:String,default:\"date\",validate:t=>jn.includes(t)},label:{type:String,default:\"Please choose a date\"},min:{type:[Date,Boolean],default:null},max:{type:[Date,Boolean],default:null},hideLabel:{type:Boolean,default:!1},inputClass:{type:[Object,String],default:\"\"}},emits:[\"input\"],computed:{formattedValue(){return this.formatValue(this.value)},formattedMin(){return!!this.min&&this.formatValue(this.min)},formattedMax(){return!!this.max&&this.formatValue(this.max)},listeners(){return{...this.$listeners,input:t=>{if(isNaN(t.target.valueAsNumber))return this.$emit(\"input\",null);if(\"time\"===this.type){const e=t.target.value;if(\"\"===this.value){const{yyyy:t,MM:n,dd:i}=this.getReadableDate(new Date);return this.$emit(\"input\",new Date(\"\".concat(t,\"-\").concat(n,\"-\").concat(i,\"T\").concat(e)))}const{yyyy:n,MM:i,dd:a}=this.getReadableDate(this.value);return this.$emit(\"input\",new Date(\"\".concat(n,\"-\").concat(i,\"-\").concat(a,\"T\").concat(e)))}if(\"month\"===this.type){const e=(new Date(t.target.value).getMonth()+1).toString().padStart(2,\"0\");if(\"\"===this.value){const{yyyy:t,dd:n,hh:i,mm:a}=this.getReadableDate(new Date);return this.$emit(\"input\",new Date(\"\".concat(t,\"-\").concat(e,\"-\").concat(n,\"T\").concat(i,\":\").concat(a)))}const{yyyy:n,dd:i,hh:a,mm:r}=this.getReadableDate(this.value);return this.$emit(\"input\",new Date(\"\".concat(n,\"-\").concat(e,\"-\").concat(i,\"T\").concat(a,\":\").concat(r)))}const e=1e3*new Date(t.target.valueAsNumber).getTimezoneOffset()*60,n=t.target.valueAsNumber+e;return this.$emit(\"input\",new Date(n))}}}},methods:{getReadableDate(t){if(t instanceof Date){return{yyyy:t.getFullYear().toString().padStart(4,\"0\"),MM:(t.getMonth()+1).toString().padStart(2,\"0\"),dd:t.getDate().toString().padStart(2,\"0\"),hh:t.getHours().toString().padStart(2,\"0\"),mm:t.getMinutes().toString().padStart(2,\"0\")}}},formatValue(t){if(!(t instanceof Date))return\"\";{const{yyyy:e,MM:n,dd:i,hh:a,mm:r}=this.getReadableDate(t);if(\"datetime-local\"===this.type)return\"\".concat(e,\"-\").concat(n,\"-\").concat(i,\"T\").concat(a,\":\").concat(r);if(\"date\"===this.type)return\"\".concat(e,\"-\").concat(n,\"-\").concat(i);if(\"month\"===this.type)return\"\".concat(e,\"-\").concat(n);if(\"time\"===this.type)return\"\".concat(a,\":\").concat(r);if(\"week\"===this.type){const n=new Date(e,0,1),i=Math.floor((t-n)/864e5),a=Math.ceil(i/7);return\"\".concat(e,\"-W\").concat(a)}}}}};var Pn=n(8739),zn={};zn.styleTagTransform=b(),zn.setAttributes=h(),zn.insert=u().bind(null,\"head\"),zn.domAPI=d(),zn.insertStyleElement=C();A()(Pn.Z,zn);Pn.Z&&Pn.Z.locals&&Pn.Z.locals;var Hn=n(8795),Wn=n.n(Hn),qn=E(Un,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"native-datetime-picker\"},[e(\"label\",{class:{\"hidden-visually\":t.hideLabel},attrs:{for:t.id}},[t._v(t._s(t.label))]),t._v(\" \"),e(\"input\",t._g(t._b({staticClass:\"native-datetime-picker--input\",class:t.inputClass,attrs:{id:t.id,type:t.type,min:t.formattedMin,max:t.formattedMax},domProps:{value:t.formattedValue}},\"input\",t.$attrs,!1),t.listeners))])}),[],!1,null,\"5d83a2ec\",null);\"function\"==typeof Wn()&&Wn()(qn);const Qn=qn.exports;Ln(Qn);const Kn=Qn;const Vn=require(\"vue-material-design-icons/Eye.vue\");var Jn=n.n(Vn);const Xn=require(\"vue-material-design-icons/EyeOff.vue\");var ti=n.n(Xn);const ei={name:\"NcButton\",props:{disabled:{type:Boolean,default:!1},type:{type:String,validator:t=>-1!==[\"primary\",\"secondary\",\"tertiary\",\"tertiary-no-background\",\"tertiary-on-primary\",\"error\",\"warning\",\"success\"].indexOf(t),default:\"secondary\"},nativeType:{type:String,validator:t=>-1!==[\"submit\",\"reset\",\"button\"].indexOf(t),default:\"button\"},wide:{type:Boolean,default:!1},ariaLabel:{type:String,default:null},href:{type:String,default:null},download:{type:String,default:null},to:{type:[String,Object],default:null},exact:{type:Boolean,default:!1},ariaHidden:{type:Boolean,default:null}},render(t){var e,n,i,a,r,o=this;const s=null===(e=this.$slots.default)||void 0===e||null===(n=e[0])||void 0===n||null===(i=n.text)||void 0===i||null===(a=i.trim)||void 0===a?void 0:a.call(i),l=!!s,A=null===(r=this.$slots)||void 0===r?void 0:r.icon;s||this.ariaLabel||console.warn(\"You need to fill either the text or the ariaLabel props in the button component.\",{text:s,ariaLabel:this.ariaLabel},this);const c=function(){let{navigate:e,isActive:n,isExactActive:i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t(o.to||!o.href?\"button\":\"a\",{class:[\"button-vue\",{\"button-vue--icon-only\":A&&!l,\"button-vue--text-only\":l&&!A,\"button-vue--icon-and-text\":A&&l,[\"button-vue--vue-\".concat(o.type)]:o.type,\"button-vue--wide\":o.wide,active:n,\"router-link-exact-active\":i}],attrs:{\"aria-label\":o.ariaLabel,disabled:o.disabled,type:o.href?null:o.nativeType,role:o.href?\"button\":null,href:!o.to&&o.href?o.href:null,target:!o.to&&o.href?\"_self\":null,rel:!o.to&&o.href?\"nofollow noreferrer noopener\":null,download:!o.to&&o.href&&o.download?o.download:null,...o.$attrs},on:{...o.$listeners,click:t=>{var n,i;null===(n=o.$listeners)||void 0===n||null===(i=n.click)||void 0===i||i.call(n,t),null==e||e(t)}}},[t(\"span\",{class:\"button-vue__wrapper\"},[A?t(\"span\",{class:\"button-vue__icon\",attrs:{\"aria-hidden\":o.ariaHidden}},[o.$slots.icon]):null,l?t(\"span\",{class:\"button-vue__text\"},[s]):null])])};return this.to?t(\"router-link\",{props:{custom:!0,to:this.to,exact:this.exact},scopedSlots:{default:c}}):c()}};var ni=n(4466),ii={};ii.styleTagTransform=b(),ii.setAttributes=h(),ii.insert=u().bind(null,\"head\"),ii.domAPI=d(),ii.insertStyleElement=C();A()(ni.Z,ii);ni.Z&&ni.Z.locals&&ni.Z.locals;var ai=n(2102),ri=n.n(ai),oi=E(ei,undefined,undefined,!1,null,\"4c8c7bff\",null);\"function\"==typeof ri()&&ri()(oi);const si=oi.exports,li=require(\"vue-material-design-icons/AlertCircleOutline.vue\");var Ai=n.n(li);const ci=require(\"vue-material-design-icons/Check.vue\");var di=n.n(ci);const pi={name:\"NcInputField\",components:{NcButton:si,AlertCircle:Ai(),Check:di()},inheritAttrs:!1,props:{value:{type:String,required:!0},type:{type:String,default:\"text\",validator:t=>[\"text\",\"password\",\"email\",\"tel\",\"url\",\"search\",\"number\"].includes(t)},label:{type:String,default:void 0},labelOutside:{type:Boolean,default:!1},labelVisible:{type:Boolean,default:!1},placeholder:{type:String,default:void 0},showTrailingButton:{type:Boolean,default:!1},trailingButtonLabel:{type:String,default:\"\"},success:{type:Boolean,default:!1},error:{type:Boolean,default:!1},helperText:{type:String,default:\"\"},disabled:{type:Boolean,default:!1},inputClass:{type:[Object,String],default:\"\"}},emits:[\"update:value\",\"trailing-button-click\"],computed:{computedId(){return this.$attrs.id&&\"\"!==this.$attrs.id?this.$attrs.id:this.inputName},inputName:()=>\"input\"+$(),hasLeadingIcon(){return this.$slots.default},hasTrailingIcon(){return this.success},hasPlaceholder(){return\"\"!==this.placeholder&&void 0!==this.placeholder},computedPlaceholder(){return this.labelVisible?this.hasPlaceholder?this.placeholder:\"\":this.hasPlaceholder?this.placeholder:this.label},isValidLabel(){const t=this.label||this.labelOutside;return t||console.warn(\"You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\"),t}},methods:{focus(){this.$refs.input.focus()},select(){this.$refs.input.select()},handleInput(t){this.$emit(\"update:value\",t.target.value)},handleTrailingButtonClick(t){this.$emit(\"trailing-button-click\",t)}}};var ui=n(4326),mi={};mi.styleTagTransform=b(),mi.setAttributes=h(),mi.insert=u().bind(null,\"head\"),mi.domAPI=d(),mi.insertStyleElement=C();A()(ui.Z,mi);ui.Z&&ui.Z.locals&&ui.Z.locals;var hi=n(4348),gi=n.n(hi),Ci=E(pi,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"input-field\"},[!t.labelOutside&&t.isValidLabel?e(\"label\",{staticClass:\"input-field__label\",class:{\"input-field__label--hidden\":!t.labelVisible},attrs:{for:t.computedId}},[t._v(\"\\n\\t\\t\"+t._s(t.label)+\"\\n\\t\")]):t._e(),t._v(\" \"),e(\"div\",{staticClass:\"input-field__main-wrapper\"},[e(\"input\",t._g(t._b({ref:\"input\",staticClass:\"input-field__input\",class:[t.inputClass,{\"input-field__input--trailing-icon\":t.showTrailingButton||t.hasTrailingIcon,\"input-field__input--leading-icon\":t.hasLeadingIcon,\"input-field__input--success\":t.success,\"input-field__input--error\":t.error}],attrs:{id:t.computedId,type:t.type,disabled:t.disabled,placeholder:t.computedPlaceholder,\"aria-describedby\":t.helperText.length>0?\"\".concat(t.inputName,\"-helper-text\"):\"\",\"aria-live\":\"polite\"},domProps:{value:t.value},on:{input:t.handleInput}},\"input\",t.$attrs,!1),t.$listeners)),t._v(\" \"),e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.hasLeadingIcon,expression:\"hasLeadingIcon\"}],staticClass:\"input-field__icon input-field__icon--leading\"},[t._t(\"default\")],2),t._v(\" \"),t.showTrailingButton?e(\"NcButton\",{staticClass:\"input-field__clear-button\",attrs:{type:\"tertiary-no-background\",\"aria-label\":t.trailingButtonLabel,disabled:t.disabled},on:{click:t.handleTrailingButtonClick},scopedSlots:t._u([{key:\"icon\",fn:function(){return[t._t(\"trailing-button-icon\")]},proxy:!0}],null,!0)}):t.success||t.error?e(\"div\",{staticClass:\"input-field__icon input-field__icon--trailing\"},[t.success?e(\"Check\",{attrs:{size:18}}):t.error?e(\"AlertCircle\",{attrs:{size:18}}):t._e()],1):t._e()],1),t._v(\" \"),t.helperText.length>0?e(\"p\",{staticClass:\"input-field__helper-text-message\",class:{\"input-field__helper-text-message--error\":t.error,\"input-field__helper-text-message--success\":t.success},attrs:{id:\"\".concat(t.inputName,\"-helper-text\")}},[t.success?e(\"Check\",{staticClass:\"input-field__helper-text-message__icon\",attrs:{size:18}}):t.error?e(\"AlertCircle\",{staticClass:\"input-field__helper-text-message__icon\",attrs:{size:18}}):t._e(),t._v(\"\\n\\t\\t\"+t._s(t.helperText)+\"\\n\\t\")],1):t._e()])}),[],!1,null,\"474d33a2\",null);\"function\"==typeof gi()&&gi()(Ci);const Ti=Ci.exports,bi=require(\"debounce\");var vi=n.n(bi);const fi=require(\"@nextcloud/initial-state\"),Ei={name:\"NcPasswordField\",components:{NcInputField:Ti,Eye:Jn(),EyeOff:ti()},inheritAttrs:!1,props:{...Ti.props,helperText:{type:String,default:\"\"},checkPasswordStrength:{type:Boolean,default:!1},minlength:{type:Number,default:0},maxlength:{type:Number,default:null},showTrailingButton:{type:Boolean,default:!0}},emits:[\"valid\",\"invalid\",\"update:value\"],data:()=>({isPasswordHidden:!0,internalHelpMessage:\"\",passwordPolicy:(0,fi.loadState)(\"core\",\"capabilities\",{}).password_policy||null,isValid:null}),computed:{computedError(){return this.error||!1===this.isValid},computedSuccess(){return this.success||!0===this.isValid},computedHelperText(){return this.helperText.length>0?this.helperText:this.internalHelpMessage},rules(){const{minlength:t,passwordPolicy:e}=this;return{minlength:null!=t?t:null==e?void 0:e.minLength}},trailingButtonLabelPassword(){return this.isPasswordHidden?tt(\"Show password\"):tt(\"Hide password\")}},watch:{value(t){if(this.checkPasswordStrength){if(null===this.passwordPolicy)return;this.passwordPolicy&&this.checkPassword(t)}}},methods:{focus(){this.$refs.inputField.focus()},select(){this.$refs.inputField.select()},handleInput(t){this.$emit(\"update:value\",t.target.value)},togglePasswordVisibility(){this.isPasswordHidden=!this.isPasswordHidden},checkPassword:vi()((async function(t){try{const{data:e}=await Ne().post((0,ce.generateOcsUrl)(\"apps/password_policy/api/v1/validate\"),{password:t});if(this.isValid=e.ocs.data.passed,e.ocs.data.passed)return this.internalHelpMessage=tt(\"Password is secure\"),void this.$emit(\"valid\");this.internalHelpMessage=e.ocs.data.reason,this.$emit(\"invalid\")}catch(t){it.error(\"Password policy returned an error\",t)}}),500)}};var xi=n(6239),yi=n.n(xi),Si=E(Ei,(function(){var t=this,e=t._self._c;return e(\"NcInputField\",t._g(t._b({ref:\"inputField\",attrs:{type:t.isPasswordHidden?\"password\":\"text\",\"show-trailing-button\":t.showTrailingButton,\"trailing-button-label\":t.trailingButtonLabelPassword,\"helper-text\":t.computedHelperText,error:t.computedError,success:t.computedSuccess,minlength:t.rules.minlength},on:{\"trailing-button-click\":t.togglePasswordVisibility,input:t.handleInput},scopedSlots:t._u([{key:\"trailing-button-icon\",fn:function(){return[t.isPasswordHidden?e(\"Eye\",{attrs:{size:18}}):e(\"EyeOff\",{attrs:{size:18}})]},proxy:!0}])},\"NcInputField\",{...t.$attrs,...t.$props},!1),t.$listeners),[t._t(\"default\")],2)}),[],!1,null,null,null);\"function\"==typeof yi()&&yi()(Si);const Di=Si.exports;const ki=require(\"vue-material-design-icons/ArrowRight.vue\");var wi=n.n(ki);const Ni=require(\"vue-material-design-icons/UndoVariant.vue\");var Fi=n.n(Ni);const Ri={name:\"NcTextField\",components:{NcInputField:Ti,Close:ut(),ArrowRight:wi(),Undo:Fi()},inheritAttrs:!1,props:{...Ti.props,trailingButtonIcon:{type:String,default:\"close\",validator:t=>[\"close\",\"arrowRight\",\"undo\"].includes(t)}},emits:[\"update:value\"],computed:{clearTextLabel(){return this.trailingButtonLabel||tt(\"Clear text\")}},methods:{focus(){this.$refs.inputField.focus()},select(){this.$refs.inputField.select()},handleInput(t){this.$emit(\"update:value\",t.target.value)}}};var Bi=n(5439),_i=n.n(Bi),Oi=E(Ri,(function(){var t=this,e=t._self._c;return e(\"NcInputField\",t._g(t._b({ref:\"inputField\",attrs:{\"trailing-button-label\":t.clearTextLabel},on:{input:t.handleInput},scopedSlots:t._u([\"search\"!==t.type?{key:\"trailing-button-icon\",fn:function(){return[\"close\"===t.trailingButtonIcon?e(\"Close\",{attrs:{size:20}}):\"arrowRight\"===t.trailingButtonIcon?e(\"ArrowRight\",{attrs:{size:20}}):\"undo\"===t.trailingButtonIcon?e(\"Undo\",{attrs:{size:20}}):t._e()]},proxy:!0}:null],null,!0)},\"NcInputField\",{...t.$attrs,...t.$props},!1),t.$listeners),[t._t(\"default\")],2)}),[],!1,null,null,null);\"function\"==typeof _i()&&_i()(Oi);const Zi=Oi.exports,Mi={name:\"NcActionInput\",components:{NcDatetimePicker:$n,NcDateTimePickerNative:Kn,NcPasswordField:Di,NcSelect:Cn,NcTextField:Zi},mixins:[a],props:{id:{type:String,default:()=>\"action-\"+$(),validator:t=>\"\"!==t.trim()},inputId:{type:String,default:()=>\"action-input-\"+$(),validator:t=>\"\"!==t.trim()},icon:{type:String,default:\"\"},type:{type:String,default:\"text\",validator:t=>[\"date\",\"datetime-local\",\"month\",\"multiselect\",\"number\",\"password\",\"search\",\"tel\",\"text\",\"time\",\"url\",\"week\",\"color\",\"email\"].indexOf(t)>-1},idNativeDateTimePicker:{type:String,default:\"date-time-picker_id\"},isNativePicker:{type:Boolean,default:!1},label:{type:String,default:null},labelVisible:{type:Boolean,default:!0},value:{type:[String,Date,Number,Array],default:\"\"},disabled:{type:Boolean,default:!1},ariaLabel:{type:String,default:\"\"},ariaHidden:{type:Boolean,default:null},showTrailingButton:{type:Boolean,default:!0},trailingButtonLabel:{type:String,default:tt(\"Submit\")}},emits:[\"input\",\"submit\",\"change\",\"update:value\"],computed:{isIconUrl(){try{return new URL(this.icon)}catch(t){return!1}},isMultiselectType(){return\"multiselect\"===this.type},nativeDatePickerType(){switch(this.type){case\"date\":case\"month\":case\"time\":case\"week\":case\"datetime-local\":return this.type}return!1},datePickerType(){if(!this.isNativePicker)switch(this.type){case\"date\":case\"month\":case\"time\":return this.type;case\"datetime-local\":return\"datetime\"}return!1},isFocusable(){return!this.disabled}},methods:{onLeave(){this.$refs.datetimepicker&&this.$refs.datetimepicker.$refs.datepicker&&this.$refs.datetimepicker.$refs.datepicker.closePopup()},onInput(t){this.$emit(\"input\",t),this.$emit(\"update:value\",t.target?t.target.value:t)},onSubmit(t){if(t.preventDefault(),t.stopPropagation(),this.disabled)return!1;this.$emit(\"submit\",t)},onChange(t){this.$emit(\"change\",t)}}};var Yi=n(1181),Ii={};Ii.styleTagTransform=b(),Ii.setAttributes=h(),Ii.insert=u().bind(null,\"head\"),Ii.domAPI=d(),Ii.insertStyleElement=C();A()(Yi.Z,Ii);Yi.Z&&Yi.Z.locals&&Yi.Z.locals;var Gi=n(9686),Li=n.n(Gi),$i=E(Mi,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"action\",class:{\"action--disabled\":t.disabled}},[e(\"span\",{staticClass:\"action-input\",class:{\"action-input-picker--disabled\":t.disabled,\"action-input--visible-label\":t.labelVisible&&t.label},on:{mouseleave:t.onLeave}},[e(\"span\",{staticClass:\"action-input__icon-wrapper\"},[t._t(\"icon\",(function(){return[e(\"span\",{staticClass:\"action-input__icon\",class:[t.isIconUrl?\"action-input__icon--url\":t.icon],style:{backgroundImage:t.isIconUrl?\"url(\".concat(t.icon,\")\"):null},attrs:{\"aria-hidden\":t.ariaHidden}})]}))],2),t._v(\" \"),e(\"form\",{ref:\"form\",staticClass:\"action-input__form\",attrs:{disabled:t.disabled},on:{submit:function(e){return e.preventDefault(),t.onSubmit.apply(null,arguments)}}},[t.datePickerType?e(\"NcDatetimePicker\",t._b({ref:\"datetimepicker\",staticClass:\"action-input__datetimepicker\",attrs:{value:t.value,placeholder:t.text,disabled:t.disabled,type:t.datePickerType,\"input-class\":[\"mx-input\",{focusable:t.isFocusable}]},on:{input:t.onInput,change:t.onChange}},\"NcDatetimePicker\",t.$attrs,!1)):t.isNativePicker?e(\"NcDateTimePickerNative\",t._b({staticClass:\"action-input__datetimepicker\",attrs:{id:t.idNativeDateTimePicker,value:t.value,type:t.nativeDatePickerType,\"input-class\":{focusable:t.isFocusable}},on:{input:function(e){return t.$emit(\"input\",e)},change:function(e){return t.$emit(\"change\",e)}}},\"NcDateTimePickerNative\",t.$attrs,!1)):t.isMultiselectType?e(\"NcSelect\",t._g(t._b({staticClass:\"action-input__multi\",attrs:{value:t.value,placeholder:t.text,disabled:t.disabled,\"append-to-body\":!1,\"input-class\":{focusable:t.isFocusable}}},\"NcSelect\",t.$attrs,!1),t.$listeners)):[e(\"div\",{staticClass:\"action-input__container\"},[t.label?e(\"label\",{staticClass:\"action-input__text-label\",class:{\"action-input__text-label--hidden\":!t.labelVisible},attrs:{for:t.inputId}},[t._v(\"\\n\\t\\t\\t\\t\\t\\t\"+t._s(t.label)+\"\\n\\t\\t\\t\\t\\t\")]):t._e(),t._v(\" \"),e(\"div\",{staticClass:\"action-input__input-container\"},[\"password\"===t.type?e(\"NcPasswordField\",t._g(t._b({attrs:{id:t.inputId,value:t.value,label:t.text,disabled:t.disabled,\"input-class\":{focusable:t.isFocusable},\"show-trailing-button\":t.showTrailingButton&&!t.disabled},on:{input:t.onInput,change:t.onChange}},\"NcPasswordField\",t.$attrs,!1),t.$listeners)):\"color\"===t.type?e(\"NcColorPicker\",t._g(t._b({staticClass:\"colorpicker__trigger\",attrs:{id:t.inputId,value:t.value},on:{input:t.onInput,submit:function(e){return t.$refs.form.requestSubmit()}}},\"NcColorPicker\",t.$attrs,!1),t.$listeners),[e(\"button\",{staticClass:\"colorpicker__preview\",class:{focusable:t.isFocusable},style:{\"background-color\":t.value}})]):e(\"NcTextField\",t._g(t._b({attrs:{id:t.inputId,value:t.value,label:t.text,disabled:t.disabled,\"input-class\":{focusable:t.isFocusable},type:t.type,\"trailing-button-icon\":\"arrowRight\",\"trailing-button-label\":t.trailingButtonLabel,\"show-trailing-button\":t.showTrailingButton&&!t.disabled},on:{\"trailing-button-click\":function(e){return t.$refs.form.requestSubmit()},input:t.onInput,change:t.onChange}},\"NcTextField\",t.$attrs,!1),t.$listeners))],1)])]],2)])])}),[],!1,null,\"141476ca\",null);\"function\"==typeof Li()&&Li()($i);const ji=$i.exports;const Ui={name:\"NcActionLink\",mixins:[o],props:{href:{type:String,default:\"#\",required:!0,validator:t=>{try{return new URL(t)}catch(e){return t.startsWith(\"#\")||t.startsWith(\"/\")}}},download:{type:String,default:null},target:{type:String,default:\"_self\",validator:t=>t&&(!t.startsWith(\"_\")||[\"_blank\",\"_self\",\"_parent\",\"_top\"].indexOf(t)>-1)},title:{type:String,default:null},ariaHidden:{type:Boolean,default:null}}};var Pi=n(4953),zi={};zi.styleTagTransform=b(),zi.setAttributes=h(),zi.insert=u().bind(null,\"head\"),zi.domAPI=d(),zi.insertStyleElement=C();A()(Pi.Z,zi);Pi.Z&&Pi.Z.locals&&Pi.Z.locals;var Hi=n(9158),Wi=n.n(Hi),qi=E(Ui,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"action\"},[e(\"a\",{staticClass:\"action-link focusable\",attrs:{download:t.download,href:t.href,\"aria-label\":t.ariaLabel,target:t.target,title:t.title,rel:\"nofollow noreferrer noopener\"},on:{click:t.onClick}},[t._t(\"icon\",(function(){return[e(\"span\",{staticClass:\"action-link__icon\",class:[t.isIconUrl?\"action-link__icon--url\":t.icon],style:{backgroundImage:t.isIconUrl?\"url(\".concat(t.icon,\")\"):null},attrs:{\"aria-hidden\":t.ariaHidden}})]})),t._v(\" \"),t.nameTitleFallback?e(\"p\",[e(\"strong\",{staticClass:\"action-link__title\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.nameTitleFallback)+\"\\n\\t\\t\\t\")]),t._v(\" \"),e(\"br\"),t._v(\" \"),e(\"span\",{staticClass:\"action-link__longtext\",domProps:{textContent:t._s(t.text)}})]):t.isLongText?e(\"p\",{staticClass:\"action-link__longtext\",domProps:{textContent:t._s(t.text)}}):e(\"span\",{staticClass:\"action-link__text\"},[t._v(t._s(t.text))]),t._v(\" \"),t._e()],2)])}),[],!1,null,\"4c8a3330\",null);\"function\"==typeof Wi()&&Wi()(qi);const Qi=qi.exports;const Ki={name:\"NcActionRadio\",mixins:[a],props:{id:{type:String,default:()=>\"action-\"+$(),validator:t=>\"\"!==t.trim()},checked:{type:Boolean,default:!1},name:{type:String,required:!0},value:{type:[String,Number],default:\"\"},disabled:{type:Boolean,default:!1}},emits:[\"update:checked\",\"change\"],computed:{isFocusable(){return!this.disabled}},methods:{toggleInput(t){this.$refs.label.click()},onChange(t){this.$emit(\"update:checked\",this.$refs.radio.checked),this.$emit(\"change\",t)}}};var Vi=n(3069),Ji={};Ji.styleTagTransform=b(),Ji.setAttributes=h(),Ji.insert=u().bind(null,\"head\"),Ji.domAPI=d(),Ji.insertStyleElement=C();A()(Vi.Z,Ji);Vi.Z&&Vi.Z.locals&&Vi.Z.locals;var Xi=n(9157),ta=n.n(Xi),ea=E(Ki,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"action\",class:{\"action--disabled\":t.disabled}},[e(\"span\",{staticClass:\"action-radio\"},[e(\"input\",{ref:\"radio\",staticClass:\"radio action-radio__radio\",class:{focusable:t.isFocusable},attrs:{id:t.id,disabled:t.disabled,name:t.name,type:\"radio\"},domProps:{checked:t.checked,value:t.value},on:{keydown:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:(e.preventDefault(),t.toggleInput.apply(null,arguments))},change:t.onChange}}),t._v(\" \"),e(\"label\",{ref:\"label\",staticClass:\"action-radio__label\",attrs:{for:t.id}},[t._v(t._s(t.text))]),t._v(\" \"),t._e()],2)])}),[],!1,null,\"04bdccb2\",null);\"function\"==typeof ta()&&ta()(ea);const na=ea.exports;const ia={name:\"NcActionRouter\",mixins:[o],props:{to:{type:[String,Object],default:\"\",required:!0},exact:{type:Boolean,default:!1}}};var aa=n(2180),ra={};ra.styleTagTransform=b(),ra.setAttributes=h(),ra.insert=u().bind(null,\"head\"),ra.domAPI=d(),ra.insertStyleElement=C();A()(aa.Z,ra);aa.Z&&aa.Z.locals&&aa.Z.locals;const oa=E(ia,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"action\"},[e(\"router-link\",{staticClass:\"action-router focusable\",attrs:{to:t.to,\"aria-label\":t.ariaLabel,exact:t.exact,title:t.title,rel:\"nofollow noreferrer noopener\"},nativeOn:{click:function(e){return t.onClick.apply(null,arguments)}}},[t._t(\"icon\",(function(){return[e(\"span\",{staticClass:\"action-router__icon\",class:[t.isIconUrl?\"action-router__icon--url\":t.icon],style:{backgroundImage:t.isIconUrl?\"url(\".concat(t.icon,\")\"):null}})]})),t._v(\" \"),t.nameTitleFallback?e(\"p\",[e(\"strong\",{staticClass:\"action-router__title\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.nameTitleFallback)+\"\\n\\t\\t\\t\")]),t._v(\" \"),e(\"br\"),t._v(\" \"),e(\"span\",{staticClass:\"action-router__longtext\",domProps:{textContent:t._s(t.text)}})]):t.isLongText?e(\"p\",{staticClass:\"action-router__longtext\",domProps:{textContent:t._s(t.text)}}):e(\"span\",{staticClass:\"action-router__text\"},[t._v(t._s(t.text))]),t._v(\" \"),t._e()],2)],1)}),[],!1,null,\"ab5e8848\",null).exports,sa=\".focusable\",la={name:\"NcActions\",components:{NcButton:si,DotsHorizontal:_e(),NcPopover:Ot},props:{open:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceTitle:{type:Boolean,default:!1},menuTitle:{type:String,default:null},primary:{type:Boolean,default:!1},type:{type:String,validator:t=>-1!==[\"primary\",\"secondary\",\"tertiary\",\"tertiary-no-background\",\"tertiary-on-primary\",\"error\",\"warning\",\"success\"].indexOf(t),default:null},defaultIcon:{type:String,default:\"\"},ariaLabel:{type:String,default:tt(\"Actions\")},ariaHidden:{type:Boolean,default:null},placement:{type:String,default:\"bottom\"},boundariesElement:{type:Element,default:()=>document.querySelector(\"body\")},container:{type:[String,Object,Element,Boolean],default:\"body\"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0}},emits:[\"update:open\",\"open\",\"update:open\",\"close\",\"focus\",\"blur\"],data(){return{opened:this.open,focusIndex:0,randomId:\"menu-\".concat($())}},computed:{triggerBtnType(){return this.type||(this.primary?\"primary\":this.menuTitle?\"secondary\":\"tertiary\")}},watch:{open(t){t!==this.opened&&(this.opened=t)}},methods:{isValidSingleAction(t){var e,n,i,a,r;const o=null!==(e=null==t||null===(n=t.componentOptions)||void 0===n||null===(i=n.Ctor)||void 0===i||null===(a=i.extendOptions)||void 0===a?void 0:a.name)&&void 0!==e?e:null==t||null===(r=t.componentOptions)||void 0===r?void 0:r.tag;return[\"NcActionButton\",\"NcActionLink\",\"NcActionRouter\"].includes(o)},openMenu(t){this.opened||(this.opened=!0,this.$emit(\"update:open\",!0),this.$emit(\"open\"))},closeMenu(){let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.opened&&(this.opened=!1,this.$refs.popover.clearFocusTrap({returnFocus:t}),this.$emit(\"update:open\",!1),this.$emit(\"close\"),this.opened=!1,this.focusIndex=0,this.$refs.menuButton.$el.focus())},onOpen(t){this.$nextTick((()=>{this.focusFirstAction(t)}))},onMouseFocusAction(t){if(document.activeElement===t.target)return;const e=t.target.closest(\"li\");if(e){const t=e.querySelector(sa);if(t){const e=[...this.$refs.menu.querySelectorAll(sa)].indexOf(t);e>-1&&(this.focusIndex=e,this.focusAction())}}},onKeydown(t){(38===t.keyCode||9===t.keyCode&&t.shiftKey)&&this.focusPreviousAction(t),(40===t.keyCode||9===t.keyCode&&!t.shiftKey)&&this.focusNextAction(t),33===t.keyCode&&this.focusFirstAction(t),34===t.keyCode&&this.focusLastAction(t),27===t.keyCode&&(this.closeMenu(),t.preventDefault())},removeCurrentActive(){const t=this.$refs.menu.querySelector(\"li.active\");t&&t.classList.remove(\"active\")},focusAction(){const t=this.$refs.menu.querySelectorAll(sa)[this.focusIndex];if(t){this.removeCurrentActive();const e=t.closest(\"li.action\");t.focus(),e&&e.classList.add(\"active\")}},focusPreviousAction(t){this.opened&&(0===this.focusIndex?this.closeMenu():(this.preventIfEvent(t),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(t){if(this.opened){const e=this.$refs.menu.querySelectorAll(sa).length-1;this.focusIndex===e?this.closeMenu():(this.preventIfEvent(t),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(t){this.opened&&(this.preventIfEvent(t),this.focusIndex=0,this.focusAction())},focusLastAction(t){this.opened&&(this.preventIfEvent(t),this.focusIndex=this.$refs.menu.querySelectorAll(sa).length-1,this.focusAction())},preventIfEvent(t){t&&(t.preventDefault(),t.stopPropagation())},onFocus(t){this.$emit(\"focus\",t)},onBlur(t){this.$emit(\"blur\",t)}},render(t){const n=(this.$slots.default||[]).filter((t=>{var e,n,i,a;return(null==t||null===(e=t.componentOptions)||void 0===e?void 0:e.tag)||(null==t||null===(n=t.componentOptions)||void 0===n||null===(i=n.Ctor)||void 0===i||null===(a=i.extendOptions)||void 0===a?void 0:a.name)})),i=n.every((t=>{var e,n,i,a,r,o,s,l;return\"NcActionLink\"===(null!==(e=null==t||null===(n=t.componentOptions)||void 0===n||null===(i=n.Ctor)||void 0===i||null===(a=i.extendOptions)||void 0===a?void 0:a.name)&&void 0!==e?e:null==t||null===(r=t.componentOptions)||void 0===r?void 0:r.tag)&&(null==t||null===(o=t.componentOptions)||void 0===o||null===(s=o.propsData)||void 0===s||null===(l=s.href)||void 0===l?void 0:l.startsWith(window.location.origin))}));let a=n.filter(this.isValidSingleAction);if(this.forceMenu&&a.length>0&&this.inline>0&&(e().util.warn(\"Specifying forceMenu will ignore any inline actions rendering.\"),a=[]),0===n.length)return;const r=e=>{var n,i,a,r,o,s,l,A,c,d,p,u,m,h,g,C,T,b,v,f,E,x;const y=(null==e||null===(n=e.data)||void 0===n||null===(i=n.scopedSlots)||void 0===i||null===(a=i.icon())||void 0===a?void 0:a[0])||t(\"span\",{class:[\"icon\",null==e||null===(r=e.componentOptions)||void 0===r||null===(o=r.propsData)||void 0===o?void 0:o.icon]}),S=null==e||null===(s=e.componentOptions)||void 0===s||null===(l=s.listeners)||void 0===l?void 0:l.click,D=null==e||null===(A=e.componentOptions)||void 0===A||null===(c=A.children)||void 0===c||null===(d=c[0])||void 0===d||null===(p=d.text)||void 0===p||null===(u=p.trim)||void 0===u?void 0:u.call(p),k=(null==e||null===(m=e.componentOptions)||void 0===m||null===(h=m.propsData)||void 0===h?void 0:h.ariaLabel)||D,w=this.forceTitle?D:\"\";let N=null==e||null===(g=e.componentOptions)||void 0===g||null===(C=g.propsData)||void 0===C?void 0:C.title;return this.forceTitle||N||(N=D),t(\"NcButton\",{class:[\"action-item action-item--single\",null==e||null===(T=e.data)||void 0===T?void 0:T.staticClass,null==e||null===(b=e.data)||void 0===b?void 0:b.class],attrs:{\"aria-label\":k,title:N},ref:null==e||null===(v=e.data)||void 0===v?void 0:v.ref,props:{type:this.type||(w?\"secondary\":\"tertiary\"),disabled:this.disabled||(null==e||null===(f=e.componentOptions)||void 0===f||null===(E=f.propsData)||void 0===E?void 0:E.disabled),ariaHidden:this.ariaHidden,...null==e||null===(x=e.componentOptions)||void 0===x?void 0:x.propsData},on:{focus:this.onFocus,blur:this.onBlur,...!!S&&{click:t=>{S&&S(t)}}}},[t(\"template\",{slot:\"icon\"},[y]),w])},o=e=>{var n,a;const r=(null===(n=this.$slots.icon)||void 0===n?void 0:n[0])||(this.defaultIcon?t(\"span\",{class:[\"icon\",this.defaultIcon]}):t(\"DotsHorizontal\",{props:{size:20}}));return t(\"NcPopover\",{ref:\"popover\",props:{delay:0,handleResize:!0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,container:this.container,popoverBaseClass:\"action-item__popper\",setReturnFocus:null===(a=this.$refs.menuButton)||void 0===a?void 0:a.$el},attrs:{delay:0,handleResize:!0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,container:this.container,popoverBaseClass:\"action-item__popper\"},on:{show:this.openMenu,\"after-show\":this.onOpen,hide:this.closeMenu}},[t(\"NcButton\",{class:\"action-item__menutoggle\",props:{type:this.triggerBtnType,disabled:this.disabled,ariaHidden:this.ariaHidden},slot:\"trigger\",ref:\"menuButton\",attrs:{\"aria-haspopup\":i?null:\"menu\",\"aria-label\":this.menuTitle?null:this.ariaLabel,\"aria-controls\":this.opened?this.randomId:null,\"aria-expanded\":this.opened.toString()},on:{focus:this.onFocus,blur:this.onBlur}},[t(\"template\",{slot:\"icon\"},[r]),this.menuTitle]),t(\"div\",{class:{open:this.opened},attrs:{tabindex:\"-1\"},on:{keydown:this.onKeydown,mousemove:this.onMouseFocusAction},ref:\"menu\"},[t(\"ul\",{attrs:{id:this.randomId,tabindex:\"-1\",role:i?null:\"menu\"}},[e])])])};if(1===n.length&&1===a.length&&!this.forceMenu)return r(a[0]);if(a.length>0&&this.inline>0){const e=a.slice(0,this.inline),i=n.filter((t=>!e.includes(t)));return t(\"div\",{class:[\"action-items\",\"action-item--\".concat(this.triggerBtnType)]},[...e.map(r),i.length>0?t(\"div\",{class:[\"action-item\",{\"action-item--open\":this.opened}]},[o(i)]):null])}return t(\"div\",{class:[\"action-item action-item--default-popover\",\"action-item--\".concat(this.triggerBtnType),{\"action-item--open\":this.opened}]},[o(n)])}};var Aa=n(9886),ca={};ca.styleTagTransform=b(),ca.setAttributes=h(),ca.insert=u().bind(null,\"head\"),ca.domAPI=d(),ca.insertStyleElement=C();A()(Aa.Z,ca);Aa.Z&&Aa.Z.locals&&Aa.Z.locals;var da=n(4214),pa={};pa.styleTagTransform=b(),pa.setAttributes=h(),pa.insert=u().bind(null,\"head\"),pa.domAPI=d(),pa.insertStyleElement=C();A()(da.Z,pa);da.Z&&da.Z.locals&&da.Z.locals;var ua=n(5727),ma=n.n(ua),ha=E(la,undefined,undefined,!1,null,\"657486e3\",null);\"function\"==typeof ma()&&ma()(ha);const ga=ha.exports;const Ca={name:\"NcActionSeparator\"};var Ta=n(1474),ba={};ba.styleTagTransform=b(),ba.setAttributes=h(),ba.insert=u().bind(null,\"head\"),ba.domAPI=d(),ba.insertStyleElement=C();A()(Ta.Z,ba);Ta.Z&&Ta.Z.locals&&Ta.Z.locals;const va=E(Ca,(function(){return(0,this._self._c)(\"li\",{staticClass:\"action action-separator action--disabled\"})}),[],!1,null,\"a1812d84\",null).exports;const fa={name:\"NcActionText\",mixins:[o]};var Ea=n(9869),xa={};xa.styleTagTransform=b(),xa.setAttributes=h(),xa.insert=u().bind(null,\"head\"),xa.domAPI=d(),xa.insertStyleElement=C();A()(Ea.Z,xa);Ea.Z&&Ea.Z.locals&&Ea.Z.locals;const ya=E(fa,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"action\"},[e(\"span\",{staticClass:\"action-text\",on:{click:t.onClick}},[t._t(\"icon\",(function(){return[\"\"!==t.icon?e(\"span\",{staticClass:\"action-text__icon\",class:[t.isIconUrl?\"action-text__icon--url\":t.icon],style:{backgroundImage:t.isIconUrl?\"url(\".concat(t.icon,\")\"):null},attrs:{\"aria-hidden\":t.ariaHidden}}):t._e()]})),t._v(\" \"),t.nameTitleFallback?e(\"p\",[e(\"strong\",{staticClass:\"action-text__title\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.nameTitleFallback)+\"\\n\\t\\t\\t\")]),t._v(\" \"),e(\"br\"),t._v(\" \"),e(\"span\",{staticClass:\"action-text__longtext\",domProps:{textContent:t._s(t.text)}})]):t.isLongText?e(\"p\",{staticClass:\"action-text__longtext\",domProps:{textContent:t._s(t.text)}}):e(\"span\",{staticClass:\"action-text__text\"},[t._v(t._s(t.text))]),t._v(\" \"),t._e()],2)])}),[],!1,null,\"cdd04674\",null).exports;const Sa={name:\"NcActionTextEditable\",components:{ArrowRight:wi()},mixins:[o],props:{id:{type:String,default:()=>\"action-\"+$(),validator:t=>\"\"!==t.trim()},disabled:{type:Boolean,default:!1},value:{type:String,default:\"\"}},emits:[\"input\",\"update:value\",\"submit\"],computed:{isFocusable(){return!this.disabled}},methods:{onInput(t){this.$emit(\"input\",t),this.$emit(\"update:value\",t.target.value)},onSubmit(t){if(t.preventDefault(),t.stopPropagation(),this.disabled)return!1;this.$emit(\"submit\",t)}}};var Da=n(9658),ka={};ka.styleTagTransform=b(),ka.setAttributes=h(),ka.insert=u().bind(null,\"head\"),ka.domAPI=d(),ka.insertStyleElement=C();A()(Da.Z,ka);Da.Z&&Da.Z.locals&&Da.Z.locals;var wa=n(3179),Na=n.n(wa),Fa=E(Sa,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"action\",class:{\"action--disabled\":t.disabled}},[e(\"span\",{staticClass:\"action-text-editable\",on:{click:t.onClick}},[t._t(\"icon\",(function(){return[e(\"span\",{staticClass:\"action-text-editable__icon\",class:[t.isIconUrl?\"action-text-editable__icon--url\":t.icon],style:{backgroundImage:t.isIconUrl?\"url(\".concat(t.icon,\")\"):null}})]})),t._v(\" \"),e(\"form\",{ref:\"form\",staticClass:\"action-text-editable__form\",attrs:{disabled:t.disabled},on:{submit:function(e){return e.preventDefault(),t.onSubmit.apply(null,arguments)}}},[e(\"input\",{staticClass:\"action-text-editable__submit\",attrs:{id:t.id,type:\"submit\"}}),t._v(\" \"),t.nameTitleFallback?e(\"strong\",{staticClass:\"action-text__title\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.nameTitleFallback)+\"\\n\\t\\t\\t\")]):t._e(),t._v(\" \"),e(\"textarea\",t._b({class:[\"action-text-editable__textarea\",{focusable:t.isFocusable}],attrs:{disabled:t.disabled},domProps:{value:t.value},on:{input:t.onInput}},\"textarea\",t.$attrs,!1)),t._v(\" \"),e(\"label\",{directives:[{name:\"show\",rawName:\"v-show\",value:!t.disabled,expression:\"!disabled\"}],staticClass:\"action-text-editable__label\",attrs:{for:t.id}},[e(\"ArrowRight\",{attrs:{size:20}})],1)])],2)])}),[],!1,null,\"98e16ffe\",null);\"function\"==typeof Na()&&Na()(Fa);const Ra=Fa.exports;var Ba=n(8384),_a={};_a.styleTagTransform=b(),_a.setAttributes=h(),_a.insert=u().bind(null,\"head\"),_a.domAPI=d(),_a.insertStyleElement=C();A()(Ba.Z,_a);Ba.Z&&Ba.Z.locals&&Ba.Z.locals;yt.options.themes.tooltip.html=!1,yt.options.themes.tooltip.delay={show:500,hide:200},yt.options.themes.tooltip.distance=10,yt.options.themes.tooltip[\"arrow-padding\"]=3;const Oa=yt.VTooltip,Za={name:\"NcAppDetailsToggle\",directives:{tooltip:Oa},components:{NcButton:si,ArrowRight:wi()},computed:{title:()=>tt(\"Go back to the list\")},beforeMount(){this.toggleAppNavigationButton(!0)},beforeDestroy(){this.toggleAppNavigationButton(!1)},methods:{toggleAppNavigationButton(){let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];const e=document.querySelector(\".app-navigation .app-navigation-toggle\");e&&(e.style.display=t?\"none\":null,!0===t&&(0,Oe.emit)(\"toggle-navigation\",{open:!1}))}}};var Ma=n(5194),Ya={};Ya.styleTagTransform=b(),Ya.setAttributes=h(),Ya.insert=u().bind(null,\"head\"),Ya.domAPI=d(),Ya.insertStyleElement=C();A()(Ma.Z,Ya);Ma.Z&&Ma.Z.locals&&Ma.Z.locals;const Ia=E(Za,(function(){var t=this,e=t._self._c;return e(\"NcButton\",{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:t.title,expression:\"title\"}],staticClass:\"app-details-toggle\",attrs:{\"aria-label\":t.title},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"ArrowRight\",{attrs:{size:20}})]},proxy:!0}])})}),[],!1,null,\"45131f51\",null).exports,Ga=require(\"hammerjs\");var La=n.n(Ga);require(\"splitpanes/dist/splitpanes.css\");const $a=require(\"splitpanes\"),ja=(0,Ze.getBuilder)(\"nextcloud\").persist().build(),Ua={name:\"NcAppContent\",components:{NcAppDetailsToggle:Ia,Pane:$a.Pane,Splitpanes:$a.Splitpanes},mixins:[Ae],props:{allowSwipeNavigation:{type:Boolean,default:!0},listSize:{type:Number,default:20},listMinWidth:{type:Number,default:15},listMaxWidth:{type:Number,default:40},paneConfigKey:{type:String,default:\"\"},showDetails:{type:Boolean,default:!0},pageHeading:{type:String,default:null}},emits:[\"update:showDetails\"],data(){return{contentHeight:0,hasList:!1,listPaneSize:this.restorePaneConfig()}},computed:{paneConfigID(){if(\"\"!==this.paneConfigKey)return\"pane-list-size-\".concat(this.paneConfigKey);try{return\"pane-list-size-\".concat(\"@nextcloud/vue\")}catch(t){return console.info(\"[INFO] AppContent:\",\"falling back to global nextcloud pane config\"),\"pane-list-size-nextcloud\"}},detailsPaneSize(){return this.listPaneSize?100-this.listPaneSize:this.paneDefaults.details.size},paneDefaults(){return{list:{size:this.listSize,min:this.listMinWidth,max:this.listMaxWidth},details:{size:100-this.listSize,min:100-this.listMaxWidth,max:100-this.listMinWidth}}}},updated(){this.checkListSlot()},mounted(){this.allowSwipeNavigation&&(this.mc=new(La())(this.$el,{cssProps:{userSelect:\"text\"}}),this.mc.on(\"swipeleft swiperight\",this.handleSwipe)),this.checkListSlot(),this.restorePaneConfig()},beforeDestroy(){this.mc.off(\"swipeleft swiperight\",this.handleSwipe)},methods:{handleSwipe(t){const e=t.srcEvent.pageX-t.deltaX,n=Math.abs(t.deltaX)>70;n&&e<40?(0,Oe.emit)(\"toggle-navigation\",{open:!0}):n&&e<340&&(0,Oe.emit)(\"toggle-navigation\",{open:!1})},handlePaneResize(t){const e=parseInt(t[0].size,10);ja.setItem(this.paneConfigID,JSON.stringify(e)),this.listPaneSize=e,console.debug(\"AppContent pane config\",e)},checkListSlot(){const t=!!this.$slots.list;this.hasList!==t&&(this.hasList=t)},restorePaneConfig(){const t=parseInt(ja.getItem(this.paneConfigID),10);if(!isNaN(t)&&t!==this.listPaneSize)return console.debug(\"AppContent pane config\",t),this.listPaneSize=t,t},hideDetails(){this.$emit(\"update:showDetails\",!1)}}};var Pa=n(785),za={};za.styleTagTransform=b(),za.setAttributes=h(),za.insert=u().bind(null,\"head\"),za.domAPI=d(),za.insertStyleElement=C();A()(Pa.Z,za);Pa.Z&&Pa.Z.locals&&Pa.Z.locals;var Ha=n(2893),Wa=n.n(Ha),qa=E(Ua,(function(){var t=this,e=t._self._c;return e(\"main\",{staticClass:\"app-content no-snapper\",class:{\"app-content--has-list\":t.hasList},attrs:{id:\"app-content-vue\"}},[t.pageHeading?e(\"h1\",{staticClass:\"hidden-visually\"},[t._v(\"\\n\\t\\t\"+t._s(t.pageHeading)+\"\\n\\t\")]):t._e(),t._v(\" \"),t.hasList?[t.isMobile?e(\"div\",{staticClass:\"app-content-wrapper app-content-wrapper--mobile\",class:t.showDetails?\"app-content-wrapper--show-details\":\"app-content-wrapper--show-list\"},[t.hasList&&t.showDetails?e(\"NcAppDetailsToggle\",{nativeOn:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.hideDetails.apply(null,arguments)}}}):t._e(),t._v(\" \"),t._t(\"list\"),t._v(\" \"),t._t(\"default\")],2):e(\"div\",{staticClass:\"app-content-wrapper\"},[e(\"Splitpanes\",{staticClass:\"default-theme\",on:{resized:t.handlePaneResize}},[e(\"Pane\",{staticClass:\"splitpanes__pane-list\",attrs:{size:t.listPaneSize||t.paneDefaults.list.size,\"min-size\":t.paneDefaults.list.min,\"max-size\":t.paneDefaults.list.max}},[t._t(\"list\")],2),t._v(\" \"),e(\"Pane\",{staticClass:\"splitpanes__pane-details\",attrs:{size:t.detailsPaneSize,\"min-size\":t.paneDefaults.details.min,\"max-size\":t.paneDefaults.details.max}},[t._t(\"default\")],2)],1)],1)]:t._t(\"default\")],2)}),[],!1,null,\"fb7feaf4\",null);\"function\"==typeof Wa()&&Wa()(qa);const Qa=qa.exports;const Ka=E({name:\"NcAppContentDetails\"},(function(){return(0,this._self._c)(\"div\",{staticClass:\"app-content-details\"},[this._t(\"default\")],2)}),[],!1,null,null,null).exports;const Va=E({name:\"NcAppContentList\",props:{selection:{type:Boolean,default:!1},showDetails:{type:Boolean,default:!1}}},(function(){var t=this;return(0,t._self._c)(\"div\",{staticClass:\"app-content-list\",class:{selection:t.selection,showdetails:t.showDetails}},[t._t(\"default\")],2)}),[],!1,null,null,null).exports;const Ja=require(\"vue-material-design-icons/Menu.vue\");var Xa=n.n(Ja);const tr=require(\"vue-material-design-icons/MenuOpen.vue\");var er=n.n(tr);const nr={name:\"NcAppNavigationToggle\",directives:{tooltip:Oa},components:{NcButton:si,MenuIcon:Xa(),MenuOpenIcon:er()},props:{open:{type:Boolean,required:!0}},emits:[\"update:open\"],computed:{label(){return this.open?tt(\"Close navigation\"):tt(\"Open navigation\")}},methods:{toggleNavigation(){this.$emit(\"update:open\",!this.open)}}};var ir=n(9464),ar={};ar.styleTagTransform=b(),ar.setAttributes=h(),ar.insert=u().bind(null,\"head\"),ar.domAPI=d(),ar.insertStyleElement=C();A()(ir.Z,ar);ir.Z&&ir.Z.locals&&ir.Z.locals;const rr={name:\"NcAppNavigation\",components:{NcAppNavigationToggle:E(nr,(function(){var t=this,e=t._self._c;return e(\"NcButton\",{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:t.label,expression:\"label\",modifiers:{auto:!0}}],staticClass:\"app-navigation-toggle\",attrs:{type:\"tertiary\",\"aria-expanded\":t.open?\"true\":\"false\",\"aria-label\":t.label,\"aria-controls\":\"app-navigation-vue\"},on:{click:t.toggleNavigation},scopedSlots:t._u([{key:\"icon\",fn:function(){return[t.open?e(\"MenuOpenIcon\",{attrs:{size:20}}):e(\"MenuIcon\",{attrs:{size:20}})]},proxy:!0}])})}),[],!1,null,\"30c3aef8\",null).exports},mixins:[Ae],data:()=>({open:!0}),computed:{ariaHidden(){return this.open?\"false\":\"true\"}},watch:{isMobile(){this.open=!this.isMobile}},mounted(){(0,Oe.subscribe)(\"toggle-navigation\",this.toggleNavigationByEventBus),(0,Oe.emit)(\"navigation-toggled\",{open:this.open})},unmounted(){this.mc.off(\"swipeleft swiperight\"),this.mc.destroy(),(0,Oe.unsubscribe)(\"toggle-navigation\",this.toggleNavigationByEventBus)},methods:{toggleNavigation(t){this.open=void 0===t?!this.open:t;const e=getComputedStyle(document.body),n=parseInt(e.getPropertyValue(\"--animation-quick\"))||100;setTimeout((()=>{(0,Oe.emit)(\"navigation-toggled\",{open:this.open})}),1.5*n)},toggleNavigationByEventBus(t){let{open:e}=t;this.toggleNavigation(e)}}};var or=n(7311),sr={};sr.styleTagTransform=b(),sr.setAttributes=h(),sr.insert=u().bind(null,\"head\"),sr.domAPI=d(),sr.insertStyleElement=C();A()(or.Z,sr);or.Z&&or.Z.locals&&or.Z.locals;var lr=n(6313),Ar=n.n(lr),cr=E(rr,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"app-navigation\",class:{\"app-navigation--close\":!t.open},attrs:{id:\"app-navigation-vue\",role:\"navigation\"}},[e(\"NcAppNavigationToggle\",{attrs:{open:t.open},on:{\"update:open\":t.toggleNavigation}}),t._v(\" \"),e(\"div\",{staticClass:\"app-navigation__content\",attrs:{\"aria-hidden\":t.ariaHidden}},[t._t(\"default\"),t._v(\" \"),e(\"ul\",{staticClass:\"app-navigation__list\"},[t._t(\"list\")],2),t._v(\" \"),t._t(\"footer\")],2)],1)}),[],!1,null,\"2dae457c\",null);\"function\"==typeof Ar()&&Ar()(cr);const dr=cr.exports;const pr={name:\"NcAppNavigationCaption\",components:{NcActions:ga},props:{title:{type:String,required:!0}},computed:{hasActions(){return!!this.$slots.actions}}};var ur=n(2409),mr={};mr.styleTagTransform=b(),mr.setAttributes=h(),mr.insert=u().bind(null,\"head\"),mr.domAPI=d(),mr.insertStyleElement=C();A()(ur.Z,mr);ur.Z&&ur.Z.locals&&ur.Z.locals;var hr=n(5706),gr=n.n(hr),Cr=E(pr,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"app-navigation-caption\"},[e(\"h2\",{staticClass:\"app-navigation-caption__title\"},[t._v(\"\\n\\t\\t\"+t._s(t.title)+\"\\n\\t\")]),t._v(\" \"),t.hasActions?e(\"div\",{staticClass:\"app-navigation-caption__actions\"},[e(\"NcActions\",t._b({scopedSlots:t._u([{key:\"icon\",fn:function(){return[t._t(\"actionsTriggerIcon\")]},proxy:!0}],null,!0)},\"NcActions\",t.$attrs,!1),[t._t(\"actions\")],2)],1):t._e()])}),[],!1,null,\"45fa1055\",null);\"function\"==typeof gr()&&gr()(Cr);const Tr=Cr.exports;const br={name:\"NcAppNavigationCounter\",props:{highlighted:{type:Boolean,default:!1}}};var vr=n(891),fr={};fr.styleTagTransform=b(),fr.setAttributes=h(),fr.insert=u().bind(null,\"head\"),fr.domAPI=d(),fr.insertStyleElement=C();A()(vr.Z,fr);vr.Z&&vr.Z.locals&&vr.Z.locals;var Er=n(1358),xr=n.n(Er),yr=E(br,(function(){var t=this;return(0,t._self._c)(\"div\",{staticClass:\"app-navigation-entry__counter\",class:{\"app-navigation-entry__counter--highlighted\":t.highlighted}},[t._t(\"default\")],2)}),[],!1,null,\"2a1ad7b2\",null);\"function\"==typeof xr()&&xr()(yr);const Sr=yr.exports;const Dr={name:\"NcAppNavigationIconBullet\",props:{color:{type:String,required:!0,validator:t=>/^#?([0-9A-F]{3}){1,2}$/i.test(t)}},emits:[\"click\"],computed:{formattedColor(){return this.color.startsWith(\"#\")?this.color:\"#\"+this.color}},methods:{onClick(t){this.$emit(\"click\",t)}}};var kr=n(774),wr={};wr.styleTagTransform=b(),wr.setAttributes=h(),wr.insert=u().bind(null,\"head\"),wr.domAPI=d(),wr.insertStyleElement=C();A()(kr.Z,wr);kr.Z&&kr.Z.locals&&kr.Z.locals;var Nr=n(2720),Fr=n.n(Nr),Rr=E(Dr,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"app-navigation-entry__icon-bullet\",on:{click:t.onClick}},[e(\"div\",{style:{backgroundColor:t.formattedColor}})])}),[],!1,null,\"419ac252\",null);\"function\"==typeof Fr()&&Fr()(Rr);const Br=Rr.exports;const _r=E({name:\"NcVNodes\",props:{vnodes:{type:[Array,Object],default:null}},render(t){var e,n,i;return this.vnodes||(null===(e=this.$slots)||void 0===e?void 0:e.default)||(null===(n=this.$scopedSlots)||void 0===n||null===(i=n.default)||void 0===i?void 0:i.call(n))}},undefined,undefined,!1,null,null,null).exports;const Or=require(\"vue-material-design-icons/ChevronUp.vue\");var Zr=n.n(Or);const Mr={name:\"NcAppNavigationIconCollapsible\",components:{NcButton:si,ChevronDown:dt(),ChevronUp:Zr()},props:{open:{type:Boolean,default:!0}},emits:[\"click\"],computed:{labelButton(){return this.open?tt(\"Collapse menu\"):tt(\"Open menu\")}},methods:{onClick(t){this.$emit(\"click\",t)}}};var Yr=n(2374),Ir={};Ir.styleTagTransform=b(),Ir.setAttributes=h(),Ir.insert=u().bind(null,\"head\"),Ir.domAPI=d(),Ir.insertStyleElement=C();A()(Yr.Z,Ir);Yr.Z&&Yr.Z.locals&&Yr.Z.locals;const Gr=E(Mr,(function(){var t=this,e=t._self._c;return e(\"NcButton\",{staticClass:\"icon-collapse\",class:{\"icon-collapse--open\":t.open},attrs:{type:\"tertiary\",\"aria-label\":t.labelButton},on:{click:t.onClick},scopedSlots:t._u([{key:\"icon\",fn:function(){return[t.open?e(\"ChevronUp\",{attrs:{size:20}}):e(\"ChevronDown\",{attrs:{size:20}})]},proxy:!0}])})}),[],!1,null,\"0c72b57a\",null).exports;const Lr={name:\"NcInputConfirmCancel\",components:{NcButton:si,ArrowRight:wi(),Close:ut()},props:{placeholder:{default:\"\",type:String},value:{default:\"\",type:String}},emits:[\"input\",\"confirm\",\"cancel\"],data:()=>({labelConfirm:tt(\"Confirm changes\"),labelCancel:tt(\"Cancel changes\")}),computed:{valueModel:{get(){return this.value},set(t){this.$emit(\"input\",t)}}},methods:{confirm(){this.$emit(\"confirm\")},cancel(){this.$emit(\"cancel\")},focusInput(){this.$refs.input.focus()}}};var $r=n(6982),jr={};jr.styleTagTransform=b(),jr.setAttributes=h(),jr.insert=u().bind(null,\"head\"),jr.domAPI=d(),jr.insertStyleElement=C();A()($r.Z,jr);$r.Z&&$r.Z.locals&&$r.Z.locals;var Ur=n(8686),Pr=n.n(Ur),zr=E(Lr,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"app-navigation-input-confirm\"},[e(\"form\",{on:{submit:function(e){return e.preventDefault(),t.confirm.apply(null,arguments)},keydown:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"esc\",27,e.key,[\"Esc\",\"Escape\"])||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:(e.preventDefault(),t.cancel.apply(null,arguments))},click:function(t){t.stopPropagation(),t.preventDefault()}}},[e(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.valueModel,expression:\"valueModel\"}],ref:\"input\",staticClass:\"app-navigation-input-confirm__input\",attrs:{type:\"text\",placeholder:t.placeholder},domProps:{value:t.valueModel},on:{input:function(e){e.target.composing||(t.valueModel=e.target.value)}}}),t._v(\" \"),e(\"NcButton\",{attrs:{\"native-type\":\"submit\",type:\"primary\",\"aria-label\":t.labelConfirm},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.confirm.apply(null,arguments)}},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"ArrowRight\",{attrs:{size:20}})]},proxy:!0}])}),t._v(\" \"),e(\"NcButton\",{attrs:{\"native-type\":\"reset\",type:\"tertiary\",\"aria-label\":t.labelCancel},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.cancel.apply(null,arguments)}},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"Close\",{attrs:{size:20}})]},proxy:!0}])})],1)])}),[],!1,null,null,null);\"function\"==typeof Pr()&&Pr()(zr);const Hr=zr.exports,Wr=require(\"vue-material-design-icons/Pencil.vue\");var qr=n.n(Wr);const Qr=require(\"vue-material-design-icons/Undo.vue\");var Kr=n.n(Qr);const Vr={name:\"NcAppNavigationItem\",components:{NcActions:ga,NcActionButton:D,NcAppNavigationIconCollapsible:Gr,NcInputConfirmCancel:Hr,NcLoadingIcon:Xt,NcVNodes:_r,Pencil:qr(),Undo:Kr()},mixins:[Ae],props:{name:{type:String,default:\"\"},title:{type:String,default:null},id:{type:String,default:()=>\"app-navigation-item-\"+$(),validator:t=>\"\"!==t.trim()},icon:{type:String,default:\"\"},loading:{type:Boolean,default:!1},to:{type:[String,Object],default:null},href:{type:String,default:null},exact:{type:Boolean,default:!1},allowCollapse:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},editLabel:{type:String,default:\"\"},editPlaceholder:{type:String,default:\"\"},pinned:{type:Boolean,default:!1},undo:{type:Boolean,default:!1},open:{type:Boolean,default:!1},menuOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},menuIcon:{type:String,default:void 0},menuPlacement:{type:String,default:\"bottom\"},ariaDescription:{type:String,default:null},forceDisplayActions:{type:Boolean,default:!1},inlineActions:{type:Number,default:0}},emits:[\"update:menuOpen\",\"update:open\",\"update:name\",\"click\",\"undo\"],data(){return{editingValue:\"\",opened:this.open,editingActive:!1,hasChildren:!1,menuOpenLocalValue:!1,focused:!1}},computed:{nameTitleFallback(){return this.name?this.name:(console.warn(\"The `name` prop is required. Please migrate away from the deprecated `title` prop.\"),this.title)},isRouterLink(){return this.to&&!this.href},collapsible(){return this.allowCollapse&&!!this.$slots.default},canHaveChildren(){return\"AppNavigationItem\"!==this.$parent.$options._componentTag},hasUtils(){return!!(this.$slots.actions||this.$slots.counter||this.editable||this.undo)},editButtonAriaLabel(){return this.editLabel?this.editLabel:tt(\"Edit item\")},undoButtonAriaLabel:()=>tt(\"Undo changes\"),actionsBoundariesElement:()=>document.querySelector(\"#content-vue\")||void 0},watch:{open(t){this.opened=t}},created(){this.updateSlotInfo()},beforeUpdate(){this.updateSlotInfo()},methods:{onMenuToggle(t){this.$emit(\"update:menuOpen\",t),this.menuOpenLocalValue=t},toggleCollapse(){this.opened=!this.opened,this.$emit(\"update:open\",this.opened)},onClick(t,e,n){this.$emit(\"click\",t),t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||n&&(null==e||e(t),t.preventDefault())},handleEdit(){this.editingValue=this.nameTitleFallback,this.editingActive=!0,this.onMenuToggle(!1),this.$nextTick((()=>{this.$refs.editingInput.focusInput()}))},cancelEditing(){this.editingActive=!1},handleEditingDone(){this.$emit(\"update:title\",this.editingValue),this.$emit(\"update:name\",this.editingValue),this.editingValue=\"\",this.editingActive=!1},handleUndo(){this.$emit(\"undo\")},updateSlotInfo(){this.hasChildren=!!this.$slots.default},handleFocus(){this.focused=!0},handleBlur(){this.focused=!1},handleTab(t){this.$refs.actions&&(this.focused?(t.preventDefault(),this.$refs.actions.$refs.menuButton.$el.focus(),this.focused=!1):this.$refs.actions.$refs.menuButton.$el.blur())},isExternal:t=>t&&t.match(/[a-z]+:\\/\\//i)}};var Jr=n(2412),Xr={};Xr.styleTagTransform=b(),Xr.setAttributes=h(),Xr.insert=u().bind(null,\"head\"),Xr.domAPI=d(),Xr.insertStyleElement=C();A()(Jr.Z,Xr);Jr.Z&&Jr.Z.locals&&Jr.Z.locals;var to=n(3789),eo=n.n(to),no=E(Vr,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"app-navigation-entry-wrapper\",class:{\"app-navigation-entry--opened\":t.opened,\"app-navigation-entry--pinned\":t.pinned,\"app-navigation-entry--collapsible\":t.collapsible},attrs:{id:t.id}},[e(t.isRouterLink?\"router-link\":\"NcVNodes\",{tag:\"component\",attrs:{custom:!!t.isRouterLink,to:t.to,exact:t.isRouterLink?t.exact:null},scopedSlots:t._u([{key:\"default\",fn:function(n){let{href:i,navigate:a,isActive:r}=n;return[e(\"div\",{staticClass:\"app-navigation-entry\",class:{\"app-navigation-entry--editing\":t.editingActive,\"app-navigation-entry--deleted\":t.undo,active:r&&t.to}},[t.undo?t._e():e(\"a\",{staticClass:\"app-navigation-entry-link\",attrs:{\"aria-description\":t.ariaDescription,\"aria-expanded\":t.opened.toString(),href:t.href||i||\"#\",target:t.isExternal(t.href)?\"_blank\":\"\",title:t.title||t.nameTitleFallback},on:{blur:t.handleBlur,click:function(e){return t.onClick(e,a,i)},focus:t.handleFocus,keydown:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"tab\",9,e.key,\"Tab\")||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:t.handleTab.apply(null,arguments)}}},[e(\"div\",{staticClass:\"app-navigation-entry-icon\",class:{[t.icon]:t.icon}},[t.loading?e(\"NcLoadingIcon\"):t._t(\"icon\")],2),t._v(\" \"),t.editingActive?t._e():e(\"span\",{staticClass:\"app-navigation-entry__title\"},[t._v(\"\\n\\t\\t\\t\\t\\t\"+t._s(t.nameTitleFallback)+\"\\n\\t\\t\\t\\t\")]),t._v(\" \"),t.editingActive?e(\"div\",{staticClass:\"editingContainer\"},[e(\"NcInputConfirmCancel\",{ref:\"editingInput\",attrs:{placeholder:\"\"!==t.editPlaceholder?t.editPlaceholder:t.nameTitleFallback},on:{cancel:t.cancelEditing,confirm:t.handleEditingDone},model:{value:t.editingValue,callback:function(e){t.editingValue=e},expression:\"editingValue\"}})],1):t._e()]),t._v(\" \"),t.undo?e(\"div\",{staticClass:\"app-navigation-entry__deleted\"},[e(\"div\",{staticClass:\"app-navigation-entry__deleted-description\"},[t._v(\"\\n\\t\\t\\t\\t\\t\"+t._s(t.nameTitleFallback)+\"\\n\\t\\t\\t\\t\")])]):t._e(),t._v(\" \"),t.hasUtils&&!t.editingActive?e(\"div\",{staticClass:\"app-navigation-entry__utils\",class:{\"app-navigation-entry__utils--display-actions\":t.forceDisplayActions||t.menuOpenLocalValue||t.menuOpen}},[t.$slots.counter?e(\"div\",{staticClass:\"app-navigation-entry__counter-wrapper\"},[t._t(\"counter\")],2):t._e(),t._v(\" \"),t.$slots.actions||t.editable&&!t.editingActive||t.undo?e(\"NcActions\",{ref:\"actions\",staticClass:\"app-navigation-entry__actions\",attrs:{inline:t.inlineActions,container:\"#app-navigation-vue\",\"boundaries-element\":t.actionsBoundariesElement,placement:t.menuPlacement,open:t.menuOpen,\"force-menu\":t.forceMenu,\"default-icon\":t.menuIcon},on:{\"update:open\":t.onMenuToggle},scopedSlots:t._u([{key:\"icon\",fn:function(){return[t._t(\"menu-icon\")]},proxy:!0}],null,!0)},[t._v(\" \"),t.editable&&!t.editingActive?e(\"NcActionButton\",{attrs:{\"aria-label\":t.editButtonAriaLabel},on:{click:t.handleEdit},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"Pencil\",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v(\"\\n\\t\\t\\t\\t\\t\\t\"+t._s(t.editLabel)+\"\\n\\t\\t\\t\\t\\t\")]):t._e(),t._v(\" \"),t.undo?e(\"NcActionButton\",{attrs:{\"aria-label\":t.undoButtonAriaLabel},on:{click:t.handleUndo},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"Undo\",{attrs:{size:20}})]},proxy:!0}],null,!0)}):t._e(),t._v(\" \"),t._t(\"actions\")],2):t._e()],1):t._e(),t._v(\" \"),t.collapsible?e(\"NcAppNavigationIconCollapsible\",{attrs:{open:t.opened},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.toggleCollapse.apply(null,arguments)}}}):t._e(),t._v(\" \"),t._t(\"extra\")],2)]}}],null,!0)}),t._v(\" \"),t.canHaveChildren&&t.hasChildren?e(\"ul\",{staticClass:\"app-navigation-entry__children\"},[t._t(\"default\")],2):t._e()],1)}),[],!1,null,null,null);\"function\"==typeof eo()&&eo()(no);const io=no.exports;const ao={components:{NcButton:si},props:{buttonId:{type:String,required:!1,default:\"\"},disabled:{type:Boolean,required:!1,default:!1},text:{type:String,required:!0}},emits:[\"click\"]};var ro=n(8139),oo={};oo.styleTagTransform=b(),oo.setAttributes=h(),oo.insert=u().bind(null,\"head\"),oo.domAPI=d(),oo.insertStyleElement=C();A()(ro.Z,oo);ro.Z&&ro.Z.locals&&ro.Z.locals;var so=n(7499),lo=n.n(so),Ao=E(ao,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"app-navigation-new\"},[e(\"NcButton\",{attrs:{id:t.buttonId,disabled:t.disabled},on:{click:function(e){return t.$emit(\"click\")}},scopedSlots:t._u([{key:\"icon\",fn:function(){return[t._t(\"icon\")]},proxy:!0}],null,!0)},[t._v(\"\\n\\t\\t\"+t._s(t.text)+\"\\n\\t\")])],1)}),[],!1,null,\"5e6c9e57\",null);\"function\"==typeof lo()&&lo()(Ao);const co=Ao.exports;const po={name:\"NcAppNavigationNewItem\",components:{NcInputConfirmCancel:Hr,NcLoadingIcon:Xt},props:{title:{type:String,required:!0},icon:{type:String,default:\"\"},loading:{type:Boolean,default:!1},editLabel:{type:String,default:\"\"},editPlaceholder:{type:String,default:\"\"}},emits:[\"new-item\"],data:()=>({newItemValue:\"\",newItemActive:!1}),methods:{handleNewItem(){this.loading||(this.newItemActive=!0,this.$nextTick((()=>{this.$refs.newItemInput.focusInput()})))},cancelNewItem(){this.newItemActive=!1},handleNewItemDone(){this.$emit(\"new-item\",this.newItemValue),this.newItemValue=\"\",this.newItemActive=!1}}};var uo=n(7935),mo={};mo.styleTagTransform=b(),mo.setAttributes=h(),mo.insert=u().bind(null,\"head\"),mo.domAPI=d(),mo.insertStyleElement=C();A()(uo.Z,mo);uo.Z&&uo.Z.locals&&uo.Z.locals;var ho=n(9297),go=n.n(ho),Co=E(po,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"app-navigation-entry\",class:{\"app-navigation-entry--newItemActive\":t.newItemActive}},[e(\"div\",{staticClass:\"app-navigation-entry-div\",on:{click:t.handleNewItem}},[e(\"div\",{staticClass:\"app-navigation-entry-icon\",class:{[t.icon]:!t.loading}},[t.loading?e(\"NcLoadingIcon\"):t._t(\"icon\")],2),t._v(\" \"),t.newItemActive?t._e():e(\"span\",{staticClass:\"app-navigation-new-item__title\",attrs:{title:t.title}},[t._v(\"\\n\\t\\t\\t\"+t._s(t.title)+\"\\n\\t\\t\")]),t._v(\" \"),t.newItemActive?e(\"div\",{staticClass:\"newItemContainer\"},[e(\"NcInputConfirmCancel\",{ref:\"newItemInput\",attrs:{placeholder:\"\"!==t.editPlaceholder?t.editPlaceholder:t.title},on:{cancel:t.cancelNewItem,confirm:t.handleNewItemDone},model:{value:t.newItemValue,callback:function(e){t.newItemValue=e},expression:\"newItemValue\"}})],1):t._e()])])}),[],!1,null,null,null);\"function\"==typeof go()&&go()(Co);const To=Co.exports;const bo=require(\"vue-material-design-icons/Cog.vue\");var vo=n.n(bo);const fo={directives:{ClickOutside:Me.vOnClickOutside},components:{Cog:vo()},mixins:[oe],props:{title:{type:String,required:!1,default:tt(\"Settings\")}},data:()=>({open:!1}),computed:{clickOutsideConfig(){return[this.closeMenu,this.clickOutsideOptions]}},methods:{toggleMenu(){this.open=!this.open},closeMenu(){this.open=!1}}};var Eo=n(2532),xo={};xo.styleTagTransform=b(),xo.setAttributes=h(),xo.insert=u().bind(null,\"head\"),xo.domAPI=d(),xo.insertStyleElement=C();A()(Eo.Z,xo);Eo.Z&&Eo.Z.locals&&Eo.Z.locals;const yo=E(fo,(function(){var t=this,e=t._self._c;return e(\"div\",{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:t.clickOutsideConfig,expression:\"clickOutsideConfig\"}],class:{open:t.open},attrs:{id:\"app-settings\"}},[e(\"div\",{attrs:{id:\"app-settings__header\"}},[e(\"button\",{staticClass:\"settings-button\",attrs:{type:\"button\"},on:{click:t.toggleMenu}},[e(\"Cog\",{staticClass:\"settings-button__icon\",attrs:{size:20}}),t._v(\" \"),e(\"span\",{staticClass:\"settings-button__label\"},[t._v(t._s(t.title))])],1)]),t._v(\" \"),e(\"transition\",{attrs:{name:\"slide-up\"}},[e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.open,expression:\"open\"}],attrs:{id:\"app-settings__content\"}},[t._t(\"default\")],2)])],1)}),[],!1,null,\"c1f15fcc\",null).exports;const So={name:\"NcAppNavigationSpacer\"};var Do=n(5999),ko={};ko.styleTagTransform=b(),ko.setAttributes=h(),ko.insert=u().bind(null,\"head\"),ko.domAPI=d(),ko.insertStyleElement=C();A()(Do.Z,ko);Do.Z&&Do.Z.locals&&Do.Z.locals;const wo=E(So,(function(){return(0,this._self._c)(\"li\",{staticClass:\"app-navigation-spacer\"})}),[],!1,null,\"e9226d86\",null).exports;function No(t,e){let n,i,a,r=e;this.start=function(){a=!0,i=new Date,n=setTimeout(t,r)},this.pause=function(){a=!1,clearTimeout(n),r-=new Date-i},this.clear=function(){a=!1,clearTimeout(n),r=0},this.getTimeLeft=function(){return a&&(this.pause(),this.start()),r},this.getStateRunning=function(){return a},this.start()}const Fo=require(\"vue-material-design-icons/ChevronLeft.vue\");var Ro=n.n(Fo);const Bo=require(\"vue-material-design-icons/ChevronRight.vue\");var _o=n.n(Bo);const Oo=require(\"vue-material-design-icons/Pause.vue\");var Zo=n.n(Oo);const Mo=require(\"vue-material-design-icons/Play.vue\");var Yo=n.n(Mo);const Io={name:\"NcModal\",components:{NcActions:ga,ChevronLeft:Ro(),ChevronRight:_o(),Close:ut(),Pause:Zo(),Play:Yo(),NcButton:si},directives:{tooltip:Oa},mixins:[An],props:{title:{type:String,default:\"\"},hasPrevious:{type:Boolean,default:!1},hasNext:{type:Boolean,default:!1},outTransition:{type:Boolean,default:!1},enableSlideshow:{type:Boolean,default:!1},slideshowDelay:{type:Number,default:5e3},slideshowPaused:{type:Boolean,default:!1},enableSwipe:{type:Boolean,default:!0},spreadNavigation:{type:Boolean,default:!1},size:{type:String,default:\"normal\",validator:t=>[\"small\",\"normal\",\"large\",\"full\"].includes(t)},canClose:{type:Boolean,default:!0},dark:{type:Boolean,default:!1},container:{type:[String,null],default:\"body\"},closeButtonContained:{type:Boolean,default:!0},additionalTrapElements:{type:Array,default:()=>[]},inlineActions:{type:Number,default:0},show:{type:Boolean,default:void 0}},emits:[\"previous\",\"next\",\"close\",\"update:show\"],data:()=>({mc:null,playing:!1,slideshowTimeout:null,iconSize:24,focusTrap:null,randId:$(),internalShow:!0}),computed:{showModal(){return void 0===this.show?this.internalShow:this.show},modalTransitionName(){return\"modal-\".concat(this.outTransition?\"out\":\"in\")},playPauseTitle(){return this.playing?tt(\"Pause slideshow\"):tt(\"Start slideshow\")},cssVariables(){return{\"--slideshow-duration\":this.slideshowDelay+\"ms\",\"--icon-size\":this.iconSize+\"px\"}},closeButtonAriaLabel:()=>tt(\"Close modal\"),prevButtonAriaLabel:()=>tt(\"Previous\"),nextButtonAriaLabel:()=>tt(\"Next\")},watch:{slideshowPaused(t){this.slideshowTimeout&&(t?this.slideshowTimeout.pause():this.slideshowTimeout.start())},additionalTrapElements(t){if(this.focusTrap){const e=this.$refs.mask;this.focusTrap.updateContainerElements([e,...t])}}},beforeMount(){window.addEventListener(\"keydown\",this.handleKeydown)},beforeDestroy(){window.removeEventListener(\"keydown\",this.handleKeydown),this.mc.off(\"swipeleft swiperight\"),this.mc.destroy()},mounted(){if(this.useFocusTrap(),this.mc=new(La())(this.$refs.mask),this.mc.on(\"swipeleft swiperight\",(t=>{this.handleSwipe(t)})),this.container)if(\"body\"===this.container)document.body.insertBefore(this.$el,document.body.lastChild);else{document.querySelector(this.container).appendChild(this.$el)}},destroyed(){this.clearFocusTrap(),this.$el.remove()},methods:{previous(t){this.hasPrevious&&(t&&this.resetSlideshow(),this.$emit(\"previous\",t))},next(t){this.hasNext&&(t&&this.resetSlideshow(),this.$emit(\"next\",t))},close(t){this.canClose&&(this.internalShow=!1,this.$emit(\"update:show\",!1),setTimeout((()=>{this.$emit(\"close\",t)}),300))},handleKeydown(t){switch(t.keyCode){case 37:this.previous(t);break;case 39:this.next(t);break;case 27:this.close(t)}},handleSwipe(t){this.enableSwipe&&(\"swipeleft\"===t.type?this.next(t):\"swiperight\"===t.type&&this.previous(t))},togglePlayPause(){this.playing=!this.playing,this.playing?this.handleSlideshow():this.clearSlideshowTimeout()},resetSlideshow(){this.playing=!this.playing,this.clearSlideshowTimeout(),this.$nextTick((function(){this.togglePlayPause()}))},handleSlideshow(){this.playing=!0,this.hasNext?this.slideshowTimeout=new No((()=>{this.next(),this.handleSlideshow()}),this.slideshowDelay):(this.playing=!1,this.clearSlideshowTimeout())},clearSlideshowTimeout(){this.slideshowTimeout&&this.slideshowTimeout.clear()},async useFocusTrap(){if(!this.showModal||this.focusTrap)return;const t=this.$refs.mask;await this.$nextTick();const e={allowOutsideClick:!0,fallbackFocus:t,trapStack:Dt()};this.focusTrap=(0,St.createFocusTrap)(t,e),this.focusTrap.activate()},clearFocusTrap(){var t;this.focusTrap&&(null===(t=this.focusTrap)||void 0===t||t.deactivate(),this.focusTrap=null)}}},Go=Io;var Lo=n(4274),$o={};$o.styleTagTransform=b(),$o.setAttributes=h(),$o.insert=u().bind(null,\"head\"),$o.domAPI=d(),$o.insertStyleElement=C();A()(Lo.Z,$o);Lo.Z&&Lo.Z.locals&&Lo.Z.locals;var jo=n(9989),Uo=n.n(jo),Po=E(Go,(function(){var t=this,e=t._self._c;return e(\"transition\",{attrs:{name:\"fade\",appear:\"\"},on:{\"after-enter\":t.useFocusTrap,\"before-leave\":t.clearFocusTrap}},[e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showModal,expression:\"showModal\"}],ref:\"mask\",staticClass:\"modal-mask\",class:{\"modal-mask--dark\":t.dark},style:t.cssVariables,attrs:{role:\"dialog\",\"aria-modal\":\"true\",\"aria-labelledby\":\"modal-title-\"+t.randId,\"aria-describedby\":\"modal-description-\"+t.randId,tabindex:\"-1\"}},[e(\"transition\",{attrs:{name:\"fade-visibility\",appear:\"\"}},[e(\"div\",{staticClass:\"modal-header\"},[\"\"!==t.title.trim()?e(\"h2\",{staticClass:\"modal-title\",attrs:{id:\"modal-title-\"+t.randId}},[t._v(\"\\n\\t\\t\\t\\t\\t\"+t._s(t.title)+\"\\n\\t\\t\\t\\t\")]):t._e(),t._v(\" \"),e(\"div\",{staticClass:\"icons-menu\"},[t.hasNext&&t.enableSlideshow?e(\"button\",{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:t.playPauseTitle,expression:\"playPauseTitle\",modifiers:{auto:!0}}],staticClass:\"play-pause-icons\",class:{\"play-pause-icons--paused\":t.slideshowPaused},attrs:{type:\"button\"},on:{click:t.togglePlayPause}},[t.playing?e(\"Pause\",{staticClass:\"play-pause-icons__pause\",attrs:{size:t.iconSize}}):e(\"Play\",{staticClass:\"play-pause-icons__play\",attrs:{size:t.iconSize}}),t._v(\" \"),e(\"span\",{staticClass:\"hidden-visually\"},[t._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+t._s(t.playPauseTitle)+\"\\n\\t\\t\\t\\t\\t\\t\")]),t._v(\" \"),t.playing?e(\"svg\",{staticClass:\"progress-ring\",attrs:{height:\"50\",width:\"50\"}},[e(\"circle\",{staticClass:\"progress-ring__circle\",attrs:{stroke:\"white\",\"stroke-width\":\"2\",fill:\"transparent\",r:\"15\",cx:\"25\",cy:\"25\"}})]):t._e()],1):t._e(),t._v(\" \"),e(\"NcActions\",{staticClass:\"header-actions\",attrs:{inline:t.inlineActions}},[t._t(\"actions\")],2),t._v(\" \"),t.canClose&&!t.closeButtonContained?e(\"NcButton\",{staticClass:\"header-close\",attrs:{\"aria-label\":t.closeButtonAriaLabel,type:\"tertiary\"},on:{click:t.close},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"Close\",{attrs:{size:t.iconSize}})]},proxy:!0}],null,!1,1841713362)}):t._e()],1)])]),t._v(\" \"),e(\"transition\",{attrs:{name:t.modalTransitionName,appear:\"\"}},[e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showModal,expression:\"showModal\"}],staticClass:\"modal-wrapper\",class:[\"modal-wrapper--\".concat(t.size),t.spreadNavigation?\"modal-wrapper--spread-navigation\":\"\"],on:{mousedown:function(e){return e.target!==e.currentTarget?null:t.close.apply(null,arguments)}}},[e(\"transition\",{attrs:{name:\"fade-visibility\",appear:\"\"}},[e(\"NcButton\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.hasPrevious,expression:\"hasPrevious\"}],staticClass:\"prev\",class:{invisible:!t.hasPrevious},attrs:{type:\"tertiary-no-background\",\"aria-label\":t.prevButtonAriaLabel},on:{click:t.previous},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"ChevronLeft\",{attrs:{size:40}})]},proxy:!0}])})],1),t._v(\" \"),e(\"div\",{staticClass:\"modal-container\",attrs:{id:\"modal-description-\"+t.randId}},[t._t(\"default\"),t._v(\" \"),t.canClose&&t.closeButtonContained?e(\"NcButton\",{staticClass:\"modal-container__close\",attrs:{type:\"tertiary\",\"aria-label\":t.closeButtonAriaLabel},on:{click:t.close},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"Close\",{attrs:{size:20}})]},proxy:!0}],null,!1,2121748766)}):t._e()],2),t._v(\" \"),e(\"transition\",{attrs:{name:\"fade-visibility\",appear:\"\"}},[e(\"NcButton\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.hasNext,expression:\"hasNext\"}],staticClass:\"next\",class:{invisible:!t.hasNext},attrs:{type:\"tertiary-no-background\",\"aria-label\":t.nextButtonAriaLabel},on:{click:t.next},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"ChevronRight\",{attrs:{size:40}})]},proxy:!0}])})],1)],1)])],1)])}),[],!1,null,\"09b21bad\",null);\"function\"==typeof Uo()&&Uo()(Po);const zo=Po.exports;Ln(zo);const Ho=zo,Wo={name:\"NcAppSettingsDialog\",components:{NcModal:Ho},mixins:[Ae],props:{open:{type:Boolean,required:!0},showNavigation:{type:Boolean,default:!1},container:{type:String,default:\"body\"},title:{type:String,default:\"\"},additionalTrapElements:{type:Array,default:()=>[]}},emits:[\"update:open\"],data:()=>({selectedSection:\"\",linkClicked:!1,addedScrollListener:!1,scroller:null}),computed:{hasNavigation(){return!(this.isMobile||!this.showNavigation)},settingsNavigationAriaLabel:()=>tt(\"Settings navigation\")},mounted(){this.selectedSection=this.$slots.default[0].componentOptions.propsData.id},updated(){this.$refs.settingsScroller&&(this.scroller=this.$refs.settingsScroller,this.addedScrollListener||(this.scroller.addEventListener(\"scroll\",this.handleScroll),this.addedScrollListener=!0))},methods:{getSettingsNavigation(t){const e=t.filter((t=>t.componentOptions)).map((t=>{var e,n;return{id:null===(e=t.componentOptions.propsData)||void 0===e?void 0:e.id,title:null===(n=t.componentOptions.propsData)||void 0===n?void 0:n.title}})),n=t.map((t=>t.title)),i=t.map((t=>t.id));return e.forEach(((t,e)=>{const a=[...n],r=[...i];if(a.splice(e,1),r.splice(e,1),a.includes(t.title))throw new Error(\"Duplicate section title found: \".concat(t,\". Settings navigation sections must have unique section titles.\"));if(r.includes(t.id))throw new Error(\"Duplicate section id found: \".concat(t,\". Settings navigation sections must have unique section ids.\"))})),e},handleSettingsNavigationClick(t){this.linkClicked=!0,document.getElementById(\"settings-section_\"+t).scrollIntoView({behavior:\"smooth\",inline:\"nearest\"}),this.selectedSection=t,setTimeout((()=>{this.linkClicked=!1}),1e3)},handleCloseModal(){this.$emit(\"update:open\",!1),this.scroller.removeEventListener(\"scroll\",this.handleScroll),this.addedScrollListener=!1,this.scroller.scrollTop=0},handleScroll(){this.linkClicked||this.unfocusNavigationItem()},unfocusNavigationItem:vi()((function(){this.selectedSection=\"\",document.activeElement.className.includes(\"navigation-list__link\")&&document.activeElement.blur()}),300),handleLinkKeydown(t,e){\"Enter\"===t.code&&this.handleSettingsNavigationClick(e)}},render(t){const e=()=>this.hasNavigation?[t(\"div\",{attrs:{class:\"app-settings__navigation\",role:\"tablist\",\"aria-label\":this.settingsNavigationAriaLabel}},[t(\"ul\",{attrs:{class:\"navigation-list\",role:\"tablist\"}},this.getSettingsNavigation(this.$slots.default).map((t=>n(t))))])]:[],n=e=>t(\"li\",{},[t(\"a\",{class:{\"navigation-list__link\":!0,\"navigation-list__link--active\":e.id===this.selectedSection},attrs:{role:\"tab\",\"aria-selected\":e.id===this.selectedSection,tabindex:\"0\"},on:{click:()=>this.handleSettingsNavigationClick(e.id),keydown:()=>this.handleLinkKeydown(event,e.id)}},e.title)]);return this.open?t(\"NcModal\",{class:[\"app-settings-modal\"],attrs:{container:this.container,size:\"large\",additionalTrapElements:this.additionalTrapElements},on:{close:()=>{this.handleCloseModal()}}},[t(\"div\",{attrs:{class:\"app-settings\"}},[t(\"h2\",{attrs:{class:\"app-settings__title\"}},this.title),t(\"div\",{attrs:{class:\"app-settings__wrapper\"}},[...e(),t(\"div\",{attrs:{class:\"app-settings__content\"},ref:\"settingsScroller\"},this.$slots.default)])])]):void 0}};var qo=n(5223),Qo={};Qo.styleTagTransform=b(),Qo.setAttributes=h(),Qo.insert=u().bind(null,\"head\"),Qo.domAPI=d(),Qo.insertStyleElement=C();A()(qo.Z,Qo);qo.Z&&qo.Z.locals&&qo.Z.locals;var Ko=n(7984),Vo=n.n(Ko),Jo=E(Wo,undefined,undefined,!1,null,\"549cf324\",null);\"function\"==typeof Vo()&&Vo()(Jo);const Xo=Jo.exports;const ts={name:\"NcAppSettingsSection\",props:{title:{type:String,required:!0},id:{type:String,required:!0,validator:t=>/^[a-z0-9\\-_]+$/.test(t)}},computed:{htmlId(){return\"settings-section_\"+this.id}}};var es=n(2746),ns={};ns.styleTagTransform=b(),ns.setAttributes=h(),ns.insert=u().bind(null,\"head\"),ns.domAPI=d(),ns.insertStyleElement=C();A()(es.Z,ns);es.Z&&es.Z.locals&&es.Z.locals;const is=E(ts,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"app-settings-section\",attrs:{id:t.htmlId}},[e(\"h3\",{staticClass:\"app-settings-section__title\"},[t._v(\"\\n\\t\\t\"+t._s(t.title)+\"\\n\\t\")]),t._v(\" \"),t._t(\"default\")],2)}),[],!1,null,\"600605cc\",null).exports;const as={name:\"NcAppSidebarTabs\",components:{NcVNodes:_r},provide(){return{registerTab:this.registerTab,unregisterTab:this.unregisterTab,getActiveTab:()=>this.activeTab}},props:{active:{type:String,default:\"\"}},emits:[\"update:active\"],data:()=>({tabs:[],activeTab:\"\"}),computed:{hasMultipleTabs(){return this.tabs.length>1},currentTabIndex(){return this.tabs.findIndex((t=>t.id===this.activeTab))}},watch:{active(t){t!==this.activeTab&&this.updateActive()}},methods:{setActive(t){this.activeTab=t,this.$emit(\"update:active\",this.activeTab)},focusPreviousTab(){this.currentTabIndex>0&&this.setActive(this.tabs[this.currentTabIndex-1].id),this.focusActiveTab()},focusNextTab(){this.currentTabIndex<this.tabs.length-1&&this.setActive(this.tabs[this.currentTabIndex+1].id),this.focusActiveTab()},focusFirstTab(){this.setActive(this.tabs[0].id),this.focusActiveTab()},focusLastTab(){this.setActive(this.tabs[this.tabs.length-1].id),this.focusActiveTab()},focusActiveTab(){this.$el.querySelector(\"#\"+this.activeTab).focus()},focusActiveTabContent(){this.$el.querySelector(\"#tab-\"+this.activeTab).focus()},updateActive(){this.activeTab=this.active&&this.tabs.some((t=>t.id===this.active))?this.active:this.tabs.length>0?this.tabs[0].id:\"\"},registerTab(t){this.tabs.push(t),this.tabs.sort(((t,e)=>t.order===e.order?OC.Util.naturalSortCompare(t.name,e.name):t.order-e.order)),this.updateActive()},unregisterTab(t){const e=this.tabs.findIndex((e=>e.id===t));-1!==e&&this.tabs.splice(e,1),this.activeTab===t&&this.updateActive()}}};var rs=n(9290),os={};os.styleTagTransform=b(),os.setAttributes=h(),os.insert=u().bind(null,\"head\"),os.domAPI=d(),os.insertStyleElement=C();A()(rs.Z,os);rs.Z&&rs.Z.locals&&rs.Z.locals;const ss=E(as,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"app-sidebar-tabs\"},[t.hasMultipleTabs?e(\"nav\",{staticClass:\"app-sidebar-tabs__nav\",attrs:{role:\"tablist\"},on:{keydown:[function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"left\",37,e.key,[\"Left\",\"ArrowLeft\"])||\"button\"in e&&0!==e.button||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:(e.preventDefault(),t.focusPreviousTab.apply(null,arguments))},function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"right\",39,e.key,[\"Right\",\"ArrowRight\"])||\"button\"in e&&2!==e.button||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:(e.preventDefault(),t.focusNextTab.apply(null,arguments))},function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"tab\",9,e.key,\"Tab\")||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:(e.preventDefault(),t.focusActiveTabContent.apply(null,arguments))},function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"home\",void 0,e.key,void 0)||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:(e.preventDefault(),t.focusFirstTab.apply(null,arguments))},function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"end\",void 0,e.key,void 0)||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:(e.preventDefault(),t.focusLastTab.apply(null,arguments))},function(e){return e.type.indexOf(\"key\")||33===e.keyCode?e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:(e.preventDefault(),t.focusFirstTab.apply(null,arguments)):null},function(e){return e.type.indexOf(\"key\")||34===e.keyCode?e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:(e.preventDefault(),t.focusLastTab.apply(null,arguments)):null}]}},[e(\"ul\",t._l(t.tabs,(function(n){return e(\"li\",{key:n.id,staticClass:\"app-sidebar-tabs__tab\"},[e(\"a\",{class:{active:t.activeTab===n.id},attrs:{id:n.id,\"aria-controls\":\"tab-\".concat(n.id),\"aria-selected\":t.activeTab===n.id,\"data-id\":n.id,href:\"#tab-\".concat(n.id),tabindex:t.activeTab===n.id?0:-1,role:\"tab\"},on:{click:function(e){return e.preventDefault(),t.setActive(n.id)}}},[e(\"span\",{staticClass:\"app-sidebar-tabs__tab-icon\"},[e(\"NcVNodes\",{attrs:{vnodes:n.renderIcon()}},[e(\"span\",{class:n.icon})])],1),t._v(\"\\n\\t\\t\\t\\t\\t\"+t._s(n.name)+\"\\n\\t\\t\\t\\t\")])])})),0)]):t._e(),t._v(\" \"),e(\"div\",{staticClass:\"app-sidebar-tabs__content\",class:{\"app-sidebar-tabs__content--multiple\":t.hasMultipleTabs}},[t._t(\"default\")],2)])}),[],!1,null,\"204e1d5c\",null).exports;const ls={name:\"NcEmptyContent\",props:{title:{type:String,default:\"\"},description:{type:String,default:\"\"}},computed:{hasTitle(){return\"\"!==this.title},hasDescription(){var t;return\"\"!==this.description||(null===(t=this.$slots.description)||void 0===t?void 0:t[0])}}};var As=n(635),cs={};cs.styleTagTransform=b(),cs.setAttributes=h(),cs.insert=u().bind(null,\"head\"),cs.domAPI=d(),cs.insertStyleElement=C();A()(As.Z,cs);As.Z&&As.Z.locals&&As.Z.locals;var ds=n(9258),ps=n.n(ds),us=E(ls,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"empty-content\",attrs:{role:\"note\"}},[t.$slots.icon?e(\"div\",{staticClass:\"empty-content__icon\",attrs:{\"aria-hidden\":\"true\"}},[t._t(\"icon\")],2):t._e(),t._v(\" \"),t._t(\"title\",(function(){return[t.hasTitle?e(\"h2\",{staticClass:\"empty-content__title\"},[t._v(\"\\n\\t\\t\\t\"+t._s(t.title)+\"\\n\\t\\t\")]):t._e()]})),t._v(\" \"),t.hasDescription?e(\"p\",[t._t(\"description\",(function(){return[t._v(\"\\n\\t\\t\\t\"+t._s(t.description)+\"\\n\\t\\t\")]}))],2):t._e(),t._v(\" \"),t.$slots.action?e(\"div\",{staticClass:\"empty-content__action\"},[t._t(\"action\")],2):t._e()],2)}),[],!1,null,\"957b98b0\",null);\"function\"==typeof ps()&&ps()(us);const ms=us.exports,hs={inserted(t){t.focus()}},gs=function(t,e){var n;!0===(null===(n=e.value)||void 0===n?void 0:n.linkify)&&(t.innerHTML=Ce(e.value.text))},Cs=require(\"vue-material-design-icons/Star.vue\");var Ts=n.n(Cs);const bs=require(\"vue-material-design-icons/StarOutline.vue\");var vs=n.n(bs);const fs={name:\"NcAppSidebar\",components:{NcActions:ga,NcAppSidebarTabs:ss,ArrowRight:wi(),NcButton:si,NcLoadingIcon:Xt,NcEmptyContent:ms,Close:ut(),Star:Ts(),StarOutline:vs()},directives:{focus:hs,linkify:gs,ClickOutside:Me.vOnClickOutside,Tooltip:Oa},props:{active:{type:String,default:\"\"},title:{type:String,default:\"\",required:!0},titleEditable:{type:Boolean,default:!1},titlePlaceholder:{type:String,default:\"\"},subtitle:{type:String,default:\"\"},subtitleTooltip:{type:String,default:\"\"},background:{type:String,default:\"\"},starred:{type:Boolean,default:null},starLoading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},empty:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},linkifyTitle:{type:Boolean,default:!1},titleTooltip:{type:String,default:\"\"}},emits:[\"close\",\"closing\",\"closed\",\"opening\",\"opened\",\"figure-click\",\"update:starred\",\"update:titleEditable\",\"update:title\",\"update:active\",\"submit-title\",\"dismiss-editing\"],data(){return{changeTitleTranslated:tt(\"Change title\"),closeTranslated:tt(\"Close sidebar\"),favoriteTranslated:tt(\"Favorite\"),isStarred:this.starred}},computed:{canStar(){return null!==this.isStarred},hasFigure(){return this.$slots.header||this.background},hasFigureClickListener(){return this.$listeners[\"figure-click\"]}},watch:{starred(){this.isStarred=this.starred}},beforeDestroy(){this.$emit(\"closed\")},methods:{onBeforeEnter(t){this.$emit(\"opening\",t)},onAfterEnter(t){this.$emit(\"opened\",t)},onBeforeLeave(t){this.$emit(\"closing\",t)},onAfterLeave(t){this.$emit(\"closed\",t)},closeSidebar(t){this.$emit(\"close\",t)},onFigureClick(t){this.$emit(\"figure-click\",t)},toggleStarred(){this.isStarred=!this.isStarred,this.$emit(\"update:starred\",this.isStarred)},editTitle(){this.$emit(\"update:titleEditable\",!0),this.titleEditable&&this.$nextTick((()=>this.$refs.titleInput.focus()))},onTitleInput(t){this.$emit(\"update:title\",t.target.value)},onSubmitTitle(t){this.$emit(\"update:titleEditable\",!1),this.$emit(\"submit-title\",t)},onDismissEditing(){this.$emit(\"update:titleEditable\",!1),this.$emit(\"dismiss-editing\")},onUpdateActive(t){this.$emit(\"update:active\",t)}}};var Es=n(6801),xs={};xs.styleTagTransform=b(),xs.setAttributes=h(),xs.insert=u().bind(null,\"head\"),xs.domAPI=d(),xs.insertStyleElement=C();A()(Es.Z,xs);Es.Z&&Es.Z.locals&&Es.Z.locals;var ys=n(6180),Ss={};Ss.styleTagTransform=b(),Ss.setAttributes=h(),Ss.insert=u().bind(null,\"head\"),Ss.domAPI=d(),Ss.insertStyleElement=C();A()(ys.Z,Ss);ys.Z&&ys.Z.locals&&ys.Z.locals;var Ds=n(2112),ks=n.n(Ds),ws=E(fs,(function(){var t=this,e=t._self._c;return e(\"transition\",{attrs:{appear:\"\",name:\"slide-right\"},on:{\"before-enter\":t.onBeforeEnter,\"after-enter\":t.onAfterEnter,\"before-leave\":t.onBeforeLeave,\"after-leave\":t.onAfterLeave}},[e(\"aside\",{staticClass:\"app-sidebar\",attrs:{id:\"app-sidebar-vue\"}},[e(\"header\",{staticClass:\"app-sidebar-header\",class:{\"app-sidebar-header--with-figure\":t.hasFigure,\"app-sidebar-header--compact\":t.compact}},[e(\"div\",{staticClass:\"app-sidebar-header__info\"},[t.hasFigure&&!t.empty?e(\"div\",{staticClass:\"app-sidebar-header__figure\",class:{\"app-sidebar-header__figure--with-action\":t.hasFigureClickListener},style:{backgroundImage:\"url(\".concat(t.background,\")\")},attrs:{tabindex:\"0\"},on:{click:t.onFigureClick,keydown:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")?null:t.onFigureClick.apply(null,arguments)}}},[t._t(\"header\")],2):t._e(),t._v(\" \"),t.empty?t._e():e(\"div\",{staticClass:\"app-sidebar-header__desc\",class:{\"app-sidebar-header__desc--with-tertiary-action\":t.canStar||t.$slots[\"tertiary-actions\"],\"app-sidebar-header__desc--editable\":t.titleEditable&&!t.subtitle,\"app-sidebar-header__desc--with-subtitle--editable\":t.titleEditable&&t.subtitle,\"app-sidebar-header__desc--without-actions\":!t.$slots[\"secondary-actions\"]}},[t.canStar||t.$slots[\"tertiary-actions\"]?e(\"div\",{staticClass:\"app-sidebar-header__tertiary-actions\"},[t._t(\"tertiary-actions\",(function(){return[t.canStar?e(\"NcButton\",{staticClass:\"app-sidebar-header__star\",attrs:{\"aria-label\":t.favoriteTranslated,type:\"secondary\"},on:{click:function(e){return e.preventDefault(),t.toggleStarred.apply(null,arguments)}},scopedSlots:t._u([{key:\"icon\",fn:function(){return[t.starLoading?e(\"NcLoadingIcon\"):t.isStarred?e(\"Star\",{attrs:{size:20}}):e(\"StarOutline\",{attrs:{size:20}})]},proxy:!0}],null,!1,2575459756)}):t._e()]}))],2):t._e(),t._v(\" \"),e(\"div\",{staticClass:\"app-sidebar-header__title-container\"},[e(\"div\",{staticClass:\"app-sidebar-header__maintitle-container\"},[e(\"h2\",{directives:[{name:\"show\",rawName:\"v-show\",value:!t.titleEditable,expression:\"!titleEditable\"},{name:\"linkify\",rawName:\"v-linkify\",value:{text:t.title,linkify:t.linkifyTitle},expression:\"{text: title, linkify: linkifyTitle}\"}],staticClass:\"app-sidebar-header__maintitle\",attrs:{\"aria-label\":t.titleTooltip,title:t.titleTooltip,tabindex:t.titleEditable?0:void 0},on:{click:function(e){return e.target!==e.currentTarget?null:t.editTitle.apply(null,arguments)}}},[t._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+t._s(t.title)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")]),t._v(\" \"),t.titleEditable?[e(\"form\",{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:()=>t.onSubmitTitle(),expression:\"() => onSubmitTitle()\"}],staticClass:\"app-sidebar-header__maintitle-form\",on:{submit:function(e){return e.preventDefault(),t.onSubmitTitle.apply(null,arguments)}}},[e(\"input\",{directives:[{name:\"focus\",rawName:\"v-focus\"}],ref:\"titleInput\",staticClass:\"app-sidebar-header__maintitle-input\",attrs:{type:\"text\",placeholder:t.titlePlaceholder},domProps:{value:t.title},on:{keydown:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"esc\",27,e.key,[\"Esc\",\"Escape\"])?null:t.onDismissEditing.apply(null,arguments)},input:t.onTitleInput}}),t._v(\" \"),e(\"NcButton\",{attrs:{type:\"tertiary-no-background\",\"aria-label\":t.changeTitleTranslated,\"native-type\":\"submit\"},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"ArrowRight\",{attrs:{size:20}})]},proxy:!0}],null,!1,1252225425)})],1)]:t._e(),t._v(\" \"),t.$slots[\"secondary-actions\"]?e(\"NcActions\",{staticClass:\"app-sidebar-header__menu\",attrs:{\"force-menu\":t.forceMenu}},[t._t(\"secondary-actions\")],2):t._e()],2),t._v(\" \"),\"\"!==t.subtitle.trim()?e(\"p\",{staticClass:\"app-sidebar-header__subtitle\",attrs:{\"aria-label\":t.subtitleTooltip,title:t.subtitleTooltip}},[t._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+t._s(t.subtitle)+\"\\n\\t\\t\\t\\t\\t\\t\")]):t._e()])])]),t._v(\" \"),e(\"NcButton\",{staticClass:\"app-sidebar__close\",attrs:{title:t.closeTranslated,\"aria-label\":t.closeTranslated,type:\"tertiary\"},on:{click:function(e){return e.preventDefault(),t.closeSidebar.apply(null,arguments)}},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"Close\",{attrs:{size:20}})]},proxy:!0}])}),t._v(\" \"),t.$slots.description&&!t.empty?e(\"div\",{staticClass:\"app-sidebar-header__description\"},[t._t(\"description\")],2):t._e()],1),t._v(\" \"),e(\"NcAppSidebarTabs\",{directives:[{name:\"show\",rawName:\"v-show\",value:!t.loading,expression:\"!loading\"}],ref:\"tabs\",attrs:{active:t.active},on:{\"update:active\":t.onUpdateActive}},[t._t(\"default\")],2),t._v(\" \"),t.loading?e(\"NcEmptyContent\",{scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"NcLoadingIcon\",{attrs:{size:64}})]},proxy:!0}],null,!1,826850984)}):t._e()],1)])}),[],!1,null,\"62b02a03\",null);\"function\"==typeof ks()&&ks()(ws);const Ns=ws.exports;const Fs={name:\"NcAppSidebarTab\",inject:[\"registerTab\",\"unregisterTab\",\"getActiveTab\"],props:{id:{type:String,required:!0},name:{type:String,required:!0},icon:{type:String,default:\"\"},order:{type:Number,default:0}},emits:[\"bottom-reached\",\"scroll\"],expose:[\"id\",\"name\",\"icon\",\"order\",\"renderIcon\"],computed:{isActive(){return this.getActiveTab()===this.id}},created(){this.registerTab(this)},beforeDestroy(){this.unregisterTab(this.id)},methods:{onScroll(t){this.$el.scrollHeight-this.$el.scrollTop===this.$el.clientHeight&&this.$emit(\"bottom-reached\",t),this.$emit(\"scroll\",t)},renderIcon(){var t,e;return null===(t=(e=this.$scopedSlots).icon)||void 0===t?void 0:t.call(e)}}};var Rs=n(8222),Bs={};Bs.styleTagTransform=b(),Bs.setAttributes=h(),Bs.insert=u().bind(null,\"head\"),Bs.domAPI=d(),Bs.insertStyleElement=C();A()(Rs.Z,Bs);Rs.Z&&Rs.Z.locals&&Rs.Z.locals;const _s=E(Fs,(function(){var t=this,e=t._self._c;return e(\"section\",{staticClass:\"app-sidebar__tab\",class:{\"app-sidebar__tab--active\":t.isActive},attrs:{id:\"tab-\".concat(t.id),\"aria-hidden\":!t.isActive,\"aria-labelledby\":t.id,tabindex:\"0\",role:\"tabpanel\"},on:{scroll:t.onScroll}},[e(\"h3\",{staticClass:\"hidden-visually\"},[t._v(\"\\n\\t\\t\"+t._s(t.name)+\"\\n\\t\")]),t._v(\" \"),t._t(\"default\")],2)}),[],!1,null,\"0c059703\",null).exports;const Os={name:\"NcBreadcrumb\",components:{NcActions:ga,ChevronRight:_o()},props:{name:{type:String,default:null},title:{type:String,default:null},to:{type:[String,Object],default:void 0},exact:{type:Boolean,default:!1},href:{type:String,default:void 0},icon:{type:String,default:\"\"},disableDrop:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},open:{type:Boolean,default:!1}},emits:[\"update:open\",\"dropped\"],data:()=>({hovering:!1,crumbId:\"crumb-id-\".concat($())}),computed:{nameTitleFallback(){return null===this.name?(console.warn(\"The `name` prop is required. Please migrate away from the deprecated `title` prop.\"),this.title):this.name},tag(){return this.to?\"router-link\":\"a\"},linkAttributes(){return this.to?{to:this.to,exact:this.exact,...this.$attrs}:{href:this.href,...this.$attrs}}},methods:{onOpenChange(t){this.$emit(\"update:open\",t)},dropped(t){return this.disableDrop||(this.$emit(\"dropped\",t,this.to||this.href),this.$parent.$emit(\"dropped\",t,this.to||this.href),this.hovering=!1),!1},dragEnter(t){this.disableDrop||(this.hovering=!0)},dragLeave(t){this.disableDrop||t.target.contains(t.relatedTarget)||this.$refs.crumb.contains(t.relatedTarget)||(this.hovering=!1)}}};var Zs=n(9560),Ms={};Ms.styleTagTransform=b(),Ms.setAttributes=h(),Ms.insert=u().bind(null,\"head\"),Ms.domAPI=d(),Ms.insertStyleElement=C();A()(Zs.Z,Ms);Zs.Z&&Zs.Z.locals&&Zs.Z.locals;var Ys=n(6591),Is=n.n(Ys),Gs=E(Os,(function(){var t=this,e=t._self._c;return e(\"li\",t._b({ref:\"crumb\",staticClass:\"vue-crumb\",class:{\"vue-crumb--hovered\":t.hovering},attrs:{draggable:\"false\"},on:{dragstart:function(t){return t.preventDefault(),(()=>{}).apply(null,arguments)},drop:function(e){return e.preventDefault(),t.dropped.apply(null,arguments)},dragover:function(t){return t.preventDefault(),(()=>{}).apply(null,arguments)},dragenter:t.dragEnter,dragleave:t.dragLeave}},\"li\",t._d({},[t.crumbId,\"\"])),[!t.nameTitleFallback&&!t.icon||t.$slots.default?t._e():e(t.tag,t._g(t._b({tag:\"component\",attrs:{title:t.title}},\"component\",t.linkAttributes,!1),t.$listeners),[t._t(\"icon\",(function(){return[t.icon?e(\"span\",{staticClass:\"icon\",class:t.icon}):e(\"span\",[t._v(t._s(t.nameTitleFallback))])]}))],2),t._v(\" \"),t.$slots.default?e(\"NcActions\",{ref:\"actions\",attrs:{type:\"tertiary\",\"force-menu\":t.forceMenu,open:t.open,\"menu-title\":t.nameTitleFallback,title:t.title,\"force-title\":!0,container:\".vue-crumb[\".concat(t.crumbId,\"]\")},on:{\"update:open\":t.onOpenChange},scopedSlots:t._u([{key:\"icon\",fn:function(){return[t._t(\"menu-icon\")]},proxy:!0}],null,!0)},[t._v(\" \"),t._t(\"default\")],2):t._e(),t._v(\" \"),e(\"ChevronRight\",{staticClass:\"vue-crumb__separator\",attrs:{size:20}})],1)}),[],!1,null,\"74afe090\",null);\"function\"==typeof Is()&&Is()(Gs);const Ls=Gs.exports,$s=(t,n,i)=>{if(void 0!==t)for(let a=t.length-1;a>=0;a--){const r=t[a],o=!r.componentOptions&&r.tag&&-1===n.indexOf(r.tag),s=!!r.componentOptions&&\"string\"==typeof r.componentOptions.tag,l=s&&-1===n.indexOf(r.componentOptions.tag);(o||!s||l)&&((o||l)&&e().util.warn(\"\".concat(o?r.tag:r.componentOptions.tag,\" is not allowed inside the \").concat(i.$options.name,\" component\"),i),t.splice(a,1))}},js=require(\"vue-material-design-icons/Folder.vue\");var Us=n.n(js);const Ps=require(\"vue-frag\"),zs=\"vue-crumb\",Hs={name:\"NcBreadcrumbs\",components:{NcActions:ga,NcActionButton:D,NcActionRouter:oa,NcActionLink:Qi,NcBreadcrumb:Ls,IconFolder:Us()},props:{rootIcon:{type:String,default:\"icon-home\"}},emits:[\"dropped\"],data:()=>({hiddenIndices:[],menuBreadcrumbProps:{name:\"\",forceMenu:!0,disableDrop:!0,open:!1},breadcrumbsRefs:{}}),beforeMount(){$s(this.$slots.default,[\"NcBreadcrumb\"],this)},beforeUpdate(){$s(this.$slots.default,[\"NcBreadcrumb\"],this)},created(){window.addEventListener(\"resize\",vi()((()=>{this.handleWindowResize()}),100)),(0,Oe.subscribe)(\"navigation-toggled\",this.delayedResize)},mounted(){this.handleWindowResize()},updated(){this.delayedResize(),this.$nextTick((()=>{this.hideCrumbs()}))},beforeDestroy(){window.removeEventListener(\"resize\",this.handleWindowResize),(0,Oe.unsubscribe)(\"navigation-toggled\",this.delayedResize)},methods:{closeActions(t){this.$refs.actionsBreadcrumb.$el.contains(t.relatedTarget)||(this.menuBreadcrumbProps.open=!1)},async delayedResize(){await this.$nextTick(),this.handleWindowResize()},handleWindowResize(){if(!this.$refs.container)return;const t=Object.values(this.breadcrumbsRefs),e=t.length,n=[],i=this.$refs.container.offsetWidth;let a=this.getTotalWidth(t);this.$refs.breadcrumb__actions&&(a+=this.$refs.breadcrumb__actions.offsetWidth);let r=a-i;r+=r>0?64:0;let o=0;const s=Math.floor(e/2);for(;r>0&&o<e-2;){var l;const i=s+(o%2?o+1:o)/2*Math.pow(-1,o+e%2);r-=this.getWidth(null===(l=t[i])||void 0===l?void 0:l.elm),n.push(i),o++}this.arraysEqual(this.hiddenIndices,n.sort(((t,e)=>t-e)))||(this.hiddenIndices=n)},arraysEqual(t,e){if(t.length!==e.length)return!1;if(t===e)return!0;if(null===t||null===e)return!1;for(let n=0;n<t.length;++n)if(t[n]!==e[n])return!1;return!0},getTotalWidth(t){return t.reduce(((t,e,n)=>t+this.getWidth(null==e?void 0:e.elm)),0)},getWidth(t){if(null==t||!t.classList)return 0;const e=t.classList.contains(\"\".concat(zs,\"--hidden\"));t.style.minWidth=\"auto\",t.classList.remove(\"\".concat(zs,\"--hidden\"));const n=t.offsetWidth;return e&&t.classList.add(\"\".concat(zs,\"--hidden\")),t.style.minWidth=\"\",n},preventDefault:t=>(t.preventDefault&&t.preventDefault(),!1),dragStart(t){return this.preventDefault(t)},dropped(t,e,n){n||this.$emit(\"dropped\",t,e),this.menuBreadcrumbProps.open=!1;return document.querySelectorAll(\".\".concat(zs)).forEach((t=>{t.classList.remove(\"\".concat(zs,\"--hovered\"))})),this.preventDefault(t)},dragOver(t){return this.preventDefault(t)},dragEnter(t,e){if(!e&&t.target.closest){const e=t.target.closest(\".\".concat(zs));if(e.classList&&e.classList.contains(zs)){document.querySelectorAll(\".\".concat(zs)).forEach((t=>{t.classList.remove(\"\".concat(zs,\"--hovered\"))})),e.classList.add(\"\".concat(zs,\"--hovered\"))}}},dragLeave(t,e){if(!e&&!t.target.contains(t.relatedTarget)&&t.target.closest){const e=t.target.closest(\".\".concat(zs));if(e.contains(t.relatedTarget))return;e.classList&&e.classList.contains(zs)&&e.classList.remove(\"\".concat(zs,\"--hovered\"))}},hideCrumbs(){Object.values(this.breadcrumbsRefs).forEach(((t,e)=>{var n;null!=t&&null!==(n=t.elm)&&void 0!==n&&n.classList&&(this.hiddenIndices.includes(e)?t.elm.classList.add(\"\".concat(zs,\"--hidden\")):t.elm.classList.remove(\"\".concat(zs,\"--hidden\")))}))},isBreadcrumb(t){var e;return((null==t||null===(e=t.componentOptions)||void 0===e?void 0:e.tag)||(null==t?void 0:t.tag)||\"\").includes(\"NcBreadcrumb\")}},render(t){const n=[];if(this.$slots.default.forEach((t=>{var e,i;this.isBreadcrumb(t)?n.push(t):(null==t?void 0:t.type)===Ps.Fragment&&(null==t||null===(e=t.children)||void 0===e||null===(i=e.forEach)||void 0===i||i.call(e,(t=>{this.isBreadcrumb(t)&&n.push(t)})))})),0===n.length)return;e().set(n[0].componentOptions.propsData,\"icon\",this.rootIcon),e().set(n[0].componentOptions.propsData,\"ref\",\"breadcrumbs\");const i={};n.forEach(((t,n)=>{e().set(t,\"ref\",\"crumb-\".concat(n)),i[n]=t}));let a=[];if(this.hiddenIndices.length){a=n.slice(0,Math.round(n.length/2)),a.push(t(\"NcBreadcrumb\",{class:\"dropdown\",props:this.menuBreadcrumbProps,attrs:{\"aria-hidden\":!0},ref:\"actionsBreadcrumb\",key:\"actions-breadcrumb-1\",nativeOn:{dragstart:this.dragStart,dragenter:()=>{this.menuBreadcrumbProps.open=!0},dragleave:this.closeActions},on:{\"update:open\":t=>{this.menuBreadcrumbProps.open=t}}},this.hiddenIndices.map((e=>{const i=n[e],a=i.componentOptions.propsData.to,r=i.componentOptions.propsData.href,o=i.componentOptions.propsData.disableDrop,s=i.componentOptions.propsData.title,l=i.componentOptions.propsData.name||s;let A=\"NcActionButton\",c=\"\";r&&(A=\"NcActionLink\",c=r),a&&(A=\"NcActionRouter\",c=a);const d=t(\"IconFolder\",{props:{size:20},slot:\"icon\"});return t(A,{class:zs,props:{href:r||null,title:s,name:\"\",to:a||null},attrs:{draggable:!1},on:{...i.componentOptions.listeners},nativeOn:{dragstart:this.dragStart,drop:t=>this.dropped(t,c,o),dragover:this.dragOver,dragenter:t=>this.dragEnter(t,o),dragleave:t=>this.dragLeave(t,o)}},[d,l])}))));const e=n.slice(Math.round(n.length/2));a=a.concat(e)}else a=n;const r=[t(\"nav\",{},[t(\"ul\",{class:\"breadcrumb__crumbs\"},[a])])];return this.$slots.actions&&r.push(t(\"div\",{class:\"breadcrumb__actions\",ref:\"breadcrumb__actions\"},this.$slots.actions)),this.breadcrumbsRefs=i,t(\"div\",{class:[\"breadcrumb\",{\"breadcrumb--collapsed\":this.hiddenIndices.length===n.length-2}],ref:\"container\"},r)}};var Ws=n(9007),qs={};qs.styleTagTransform=b(),qs.setAttributes=h(),qs.insert=u().bind(null,\"head\"),qs.domAPI=d(),qs.insertStyleElement=C();A()(Ws.Z,qs);Ws.Z&&Ws.Z.locals&&Ws.Z.locals;var Qs=n(1753),Ks=n.n(Qs),Vs=E(Hs,undefined,undefined,!1,null,\"32bc320f\",null);\"function\"==typeof Ks()&&Ks()(Vs);const Js=Vs.exports;const Xs=require(\"vue-material-design-icons/CheckboxBlankOutline.vue\");var tl=n.n(Xs);const el=require(\"vue-material-design-icons/MinusBox.vue\");var nl=n.n(el);const il=require(\"vue-material-design-icons/CheckboxMarked.vue\");var al=n.n(il);const rl=require(\"vue-material-design-icons/RadioboxMarked.vue\");var ol=n.n(rl);const sl=require(\"vue-material-design-icons/RadioboxBlank.vue\");var ll=n.n(sl);const Al=require(\"vue-material-design-icons/ToggleSwitchOff.vue\");var cl=n.n(Al);const dl=require(\"vue-material-design-icons/ToggleSwitch.vue\");var pl=n.n(dl);const ul=\"checkbox\",ml=\"radio\",hl=\"switch\",gl={name:\"NcCheckboxRadioSwitch\",components:{NcLoadingIcon:Xt},mixins:[An],props:{id:{type:String,default:()=>\"checkbox-radio-switch-\"+$(),validator:t=>\"\"!==t.trim()},name:{type:String,default:null},type:{type:String,default:\"checkbox\",validator:t=>t===ul||t===ml||t===hl},buttonVariant:{type:Boolean,default:!1},buttonVariantGrouped:{type:String,default:\"no\",validator:t=>[\"no\",\"vertical\",\"horizontal\"].includes(t)},checked:{type:[Boolean,Array,String],default:!1},value:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},wrapperElement:{type:String,default:\"span\"}},emits:[\"update:checked\"],computed:{size(){return this.type===hl?36:24},cssVars(){return{\"--icon-size\":this.size+\"px\"}},inputType(){return this.type===ml?ml:ul},isChecked(){return null!==this.value?Array.isArray(this.checked)?[...this.checked].indexOf(this.value)>-1:this.checked===this.value:!0===this.checked},checkboxRadioIconElement(){return this.type===ml?this.isChecked?ol():ll():this.type===hl?this.isChecked?pl():cl():this.indeterminate?nl():this.isChecked?al():tl()}},mounted(){if(this.name&&this.type===ul&&!Array.isArray(this.checked))throw new Error(\"When using groups of checkboxes, the updated value will be an array.\");if(this.name&&this.type===hl)throw new Error(\"Switches are not made to be used for data sets. Please use checkboxes instead.\");if(\"boolean\"!=typeof this.checked&&this.type===hl)throw new Error(\"Switches can only be used with boolean as checked prop.\")},methods:{onToggle(){if(this.disabled)return;if(this.type===ml)return void this.$emit(\"update:checked\",this.value);if(this.type===hl)return void this.$emit(\"update:checked\",!this.isChecked);if(\"boolean\"==typeof this.checked)return void this.$emit(\"update:checked\",!this.isChecked);const t=this.getInputsSet().filter((t=>t.checked)).map((t=>t.value));this.$emit(\"update:checked\",t)},getInputsSet(){return[...document.getElementsByName(this.name)]}}};var Cl=n(8523),Tl={};Tl.styleTagTransform=b(),Tl.setAttributes=h(),Tl.insert=u().bind(null,\"head\"),Tl.domAPI=d(),Tl.insertStyleElement=C();A()(Cl.Z,Tl);Cl.Z&&Cl.Z.locals&&Cl.Z.locals;var bl=n(3768),vl=n.n(bl),fl=E(gl,(function(){var t=this,e=t._self._c;return e(t.wrapperElement,{tag:\"component\",staticClass:\"checkbox-radio-switch\",class:{[\"checkbox-radio-switch-\"+t.type]:t.type,\"checkbox-radio-switch--checked\":t.isChecked,\"checkbox-radio-switch--disabled\":t.disabled,\"checkbox-radio-switch--indeterminate\":t.indeterminate,\"checkbox-radio-switch--button-variant\":t.buttonVariant,\"checkbox-radio-switch--button-variant-v-grouped\":t.buttonVariant&&\"vertical\"===t.buttonVariantGrouped,\"checkbox-radio-switch--button-variant-h-grouped\":t.buttonVariant&&\"horizontal\"===t.buttonVariantGrouped},style:t.cssVars},[e(\"label\",{staticClass:\"checkbox-radio-switch__label\",attrs:{for:t.id}},[e(\"input\",{staticClass:\"checkbox-radio-switch__input\",attrs:{id:t.id,disabled:t.disabled,indeterminate:t.indeterminate,name:t.name,type:t.inputType},domProps:{checked:t.isChecked,value:t.value},on:{change:t.onToggle}}),t._v(\" \"),t.loading?e(\"NcLoadingIcon\",{staticClass:\"checkbox-radio-switch__icon\"}):t.buttonVariant?t._e():e(t.checkboxRadioIconElement,{tag:\"component\",staticClass:\"checkbox-radio-switch__icon\",attrs:{size:t.size}}),t._v(\" \"),t._t(\"default\")],2)])}),[],!1,null,\"781f2f28\",null);\"function\"==typeof vl()&&vl()(fl);const El=fl.exports;const xl=require(\"vue-material-design-icons/ArrowLeft.vue\");var yl=n.n(xl);const Sl=require(\"vue-color\"),Dl=function(t){const e=t.toString(16);return 1===e.length?\"0\"+e:e},kl={name:\"NcColorPicker\",components:{ArrowLeft:yl(),Check:di(),Chrome:Sl.Chrome,DotsHorizontal:_e(),NcButton:si,NcPopover:Ot},props:{value:{type:String,required:!0},advancedFields:{type:Boolean,default:!1},palette:{type:Array,default:()=>ne(4).map((t=>\"#\"+Dl(t.r)+Dl(t.g)+Dl(t.b))),validator:t=>t.every((t=>/^#([a-f0-9]{3}|[a-f0-9]{6})$/i.test(t)))}},emits:[\"submit\",\"close\",\"update:open\",\"update:value\",\"input\"],data(){return{currentColor:this.value,advanced:!1,ariaBack:tt(\"Back\"),ariaMore:tt(\"More options\")}},watch:{value(t){this.currentColor=t}},methods:{t:tt,handleConfirm(){this.$emit(\"submit\",this.currentColor),this.handleClose(),this.advanced=!1},handleClose(){this.$emit(\"close\"),this.$emit(\"update:open\",!1)},handleBack(){this.advanced=!1},handleMoreSettings(){this.advanced=!0},pickColor(t){\"string\"!=typeof t&&(t=this.currentColor.hex),this.currentColor=t,this.$emit(\"update:value\",t),this.$emit(\"input\",t)}}};var wl=n(3246),Nl={};Nl.styleTagTransform=b(),Nl.setAttributes=h(),Nl.insert=u().bind(null,\"head\"),Nl.domAPI=d(),Nl.insertStyleElement=C();A()(wl.Z,Nl);wl.Z&&wl.Z.locals&&wl.Z.locals;var Fl=n(1554),Rl=n.n(Fl),Bl=E(kl,(function(){var t=this,e=t._self._c;return e(\"NcPopover\",t._g(t._b({on:{\"apply-hide\":t.handleClose},scopedSlots:t._u([{key:\"trigger\",fn:function(){return[t._t(\"default\")]},proxy:!0}],null,!0)},\"NcPopover\",t.$attrs,!1),t.$listeners),[t._v(\" \"),e(\"div\",{staticClass:\"color-picker\",class:{\"color-picker--advanced-fields\":t.advanced&&t.advancedFields}},[e(\"transition\",{attrs:{name:\"slide\",mode:\"out-in\"}},[t.advanced?t._e():e(\"div\",{staticClass:\"color-picker__simple\"},t._l(t.palette,(function(n,i){return e(\"button\",{key:i,staticClass:\"color-picker__simple-color-circle\",class:{\"color-picker__simple-color-circle--active\":n===t.currentColor},style:{\"background-color\":n},attrs:{type:\"button\"},on:{click:function(e){return t.pickColor(n)}}},[n===t.currentColor?e(\"Check\",{attrs:{size:20}}):t._e()],1)})),0),t._v(\" \"),t.advanced?e(\"Chrome\",{staticClass:\"color-picker__advanced\",attrs:{\"disable-alpha\":!0,\"disable-fields\":!t.advancedFields},on:{input:t.pickColor},model:{value:t.currentColor,callback:function(e){t.currentColor=e},expression:\"currentColor\"}}):t._e()],1),t._v(\" \"),e(\"div\",{staticClass:\"color-picker__navigation\"},[t.advanced?e(\"NcButton\",{attrs:{type:\"tertiary\",\"aria-label\":t.ariaBack},on:{click:t.handleBack},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"ArrowLeft\",{attrs:{size:20}})]},proxy:!0}],null,!1,1821202730)}):t._e(),t._v(\" \"),t.advanced?t._e():e(\"NcButton\",{attrs:{type:\"tertiary\",\"aria-label\":t.ariaMore},on:{click:t.handleMoreSettings},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"DotsHorizontal\",{attrs:{size:20}})]},proxy:!0}],null,!1,1056868794)}),t._v(\" \"),t.advanced?e(\"NcButton\",{attrs:{type:\"primary\"},on:{click:t.handleConfirm}},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.t(\"Choose\"))+\"\\n\\t\\t\\t\")]):t._e()],1)],1)])}),[],!1,null,\"6cccc0ac\",null);\"function\"==typeof Rl()&&Rl()(Bl);const _l=Bl.exports;const Ol={props:{appName:{type:String,required:!0}}};var Zl=n(7168),Ml={};Ml.styleTagTransform=b(),Ml.setAttributes=h(),Ml.insert=u().bind(null,\"head\"),Ml.domAPI=d(),Ml.insertStyleElement=C();A()(Zl.Z,Ml);Zl.Z&&Zl.Z.locals&&Zl.Z.locals;var Yl=n(1152),Il=n.n(Yl),Gl=E(Ol,(function(){var t=this;return(0,t._self._c)(\"div\",{staticClass:\"content\",class:\"app-\".concat(t.appName.toLowerCase()),attrs:{id:\"content-vue\"}},[t._t(\"default\")],2)}),[],!1,null,\"f8d5ac8e\",null);\"function\"==typeof Il()&&Il()(Gl);const Ll=Gl.exports;const $l={name:\"NcCounterBubble\",props:{type:{type:String,default:\"\",validator:t=>-1!==[\"highlighted\",\"outlined\",\"\"].indexOf(t)}},computed:{counterClassObject(){return{\"counter-bubble__counter--highlighted\":\"highlighted\"===this.type,\"counter-bubble__counter--outlined\":\"outlined\"===this.type}}}};var jl=n(3236),Ul={};Ul.styleTagTransform=b(),Ul.setAttributes=h(),Ul.insert=u().bind(null,\"head\"),Ul.domAPI=d(),Ul.insertStyleElement=C();A()(jl.Z,Ul);jl.Z&&jl.Z.locals&&jl.Z.locals;var Pl=n(7633),zl=n.n(Pl),Hl=E($l,(function(){var t=this;return(0,t._self._c)(\"div\",{staticClass:\"counter-bubble__counter\",class:t.counterClassObject},[t._t(\"default\")],2)}),[],!1,null,\"345fc3d1\",null);\"function\"==typeof zl()&&zl()(Hl);const Wl=Hl.exports;const ql={name:\"NcDashboardWidgetItem\",components:{NcAvatar:ze,NcActions:ga,NcActionButton:D},props:{id:{type:[String,Number],default:void 0},targetUrl:{type:String,default:void 0},avatarUrl:{type:String,default:void 0},avatarUsername:{type:String,default:void 0},avatarIsNoUser:{type:Boolean,default:!1},overlayIconUrl:{type:String,default:void 0},mainText:{type:String,required:!0},subText:{type:String,default:\"\"},itemMenu:{type:Object,default:()=>({})},forceMenu:{type:Boolean,default:!0}},data:()=>({hovered:!1}),computed:{item(){return{id:this.id,targetUrl:this.targetUrl,avatarUrl:this.avatarUrl,avatarUsername:this.avatarUsername,overlayIconUrl:this.overlayIconUrl,mainText:this.mainText,subText:this.subText}},gotMenu(){return 0!==Object.keys(this.itemMenu).length||!!this.$slots.actions},gotOverlayIcon(){return this.overlayIconUrl&&\"\"!==this.overlayIconUrl}},methods:{onLinkClick(t){t.target.closest(\".action-item\")&&t.preventDefault()}}};var Ql=n(342),Kl={};Kl.styleTagTransform=b(),Kl.setAttributes=h(),Kl.insert=u().bind(null,\"head\"),Kl.domAPI=d(),Kl.insertStyleElement=C();A()(Ql.Z,Kl);Ql.Z&&Ql.Z.locals&&Ql.Z.locals;var Vl=n(4084),Jl=n.n(Vl),Xl=E(ql,(function(){var t=this,e=t._self._c;return e(\"div\",{on:{mouseover:function(e){t.hovered=!0},mouseleave:function(e){t.hovered=!1}}},[e(t.targetUrl?\"a\":\"div\",{tag:\"component\",class:{\"item-list__entry\":!0,\"item-list__entry--has-actions-menu\":t.gotMenu},attrs:{href:t.targetUrl,target:t.targetUrl?\"_blank\":void 0},on:{click:t.onLinkClick}},[t._t(\"avatar\",(function(){return[e(\"NcAvatar\",{staticClass:\"item-avatar\",attrs:{size:44,url:t.avatarUrl,user:t.avatarUsername,\"is-no-user\":t.avatarIsNoUser,\"show-user-status\":!t.gotOverlayIcon}})]}),{avatarUrl:t.avatarUrl,avatarUsername:t.avatarUsername}),t._v(\" \"),t.overlayIconUrl?e(\"img\",{staticClass:\"item-icon\",attrs:{alt:\"\",src:t.overlayIconUrl}}):t._e(),t._v(\" \"),e(\"div\",{staticClass:\"item__details\"},[e(\"h3\",{attrs:{title:t.mainText}},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.mainText)+\"\\n\\t\\t\\t\")]),t._v(\" \"),e(\"span\",{staticClass:\"message\",attrs:{title:t.subText}},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.subText)+\"\\n\\t\\t\\t\")])]),t._v(\" \"),t.gotMenu?e(\"NcActions\",{attrs:{\"force-menu\":t.forceMenu}},[t._t(\"actions\",(function(){return t._l(t.itemMenu,(function(n,i){return e(\"NcActionButton\",{key:i,attrs:{icon:n.icon,\"close-after-click\":!0},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.$emit(i,t.item)}}},[t._v(\"\\n\\t\\t\\t\\t\\t\"+t._s(n.text)+\"\\n\\t\\t\\t\\t\")])}))}))],2):t._e()],2)],1)}),[],!1,null,\"cde45638\",null);\"function\"==typeof Jl()&&Jl()(Xl);const tA=Xl.exports,eA={name:\"NcDashboardWidget\",components:{NcAvatar:ze,NcDashboardWidgetItem:tA,NcEmptyContent:ms,Check:di()},props:{items:{type:Array,default:()=>[]},showMoreUrl:{type:String,default:\"\"},showMoreLabel:{type:String,default:tt(\"More items …\")},loading:{type:Boolean,default:!1},itemMenu:{type:Object,default:()=>({})},showItemsAndEmptyContent:{type:Boolean,default:!1},emptyContentMessage:{type:String,default:\"\"},halfEmptyContentMessage:{type:String,default:\"\"}},computed:{handlers(){const t={};for(const e in this.itemMenu)t[e]=t=>{this.$emit(e,t)};return t},displayedItems(){const t=this.showMoreUrl&&this.items.length>=this.maxItemNumber?this.maxItemNumber-1:this.maxItemNumber;return this.items.slice(0,t)},showHalfEmptyContentArea(){return this.showItemsAndEmptyContent&&this.halfEmptyContentString&&0!==this.items.length},halfEmptyContentString(){return this.halfEmptyContentMessage||this.emptyContentMessage},maxItemNumber(){return this.showItemsAndEmptyContent?5:7},showMore(){return this.showMoreUrl&&this.items.length>=this.maxItemNumber}}};var nA=n(3048),iA={};iA.styleTagTransform=b(),iA.setAttributes=h(),iA.insert=u().bind(null,\"head\"),iA.domAPI=d(),iA.insertStyleElement=C();A()(nA.Z,iA);nA.Z&&nA.Z.locals&&nA.Z.locals;var aA=n(5671),rA=n.n(aA),oA=E(eA,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"dashboard-widget\"},[t.showHalfEmptyContentArea?e(\"NcEmptyContent\",{staticClass:\"half-screen\",attrs:{description:t.halfEmptyContentString},scopedSlots:t._u([{key:\"icon\",fn:function(){return[t._t(\"halfEmptyContentIcon\",(function(){return[e(\"Check\")]}))]},proxy:!0}],null,!0)}):t._e(),t._v(\" \"),e(\"ul\",t._l(t.displayedItems,(function(n){return e(\"li\",{key:n.id},[t._t(\"default\",(function(){return[e(\"NcDashboardWidgetItem\",t._g(t._b({attrs:{\"item-menu\":t.itemMenu}},\"NcDashboardWidgetItem\",n,!1),t.handlers))]}),{item:n})],2)})),0),t._v(\" \"),t.loading?e(\"div\",t._l(7,(function(n){return e(\"div\",{key:n,staticClass:\"item-list__entry\"},[e(\"NcAvatar\",{staticClass:\"item-avatar\",attrs:{size:44}}),t._v(\" \"),t._m(0,!0)],1)})),0):0===t.items.length?t._t(\"empty-content\",(function(){return[t.emptyContentMessage?e(\"NcEmptyContent\",{attrs:{description:t.emptyContentMessage},scopedSlots:t._u([{key:\"icon\",fn:function(){return[t._t(\"emptyContentIcon\")]},proxy:!0}],null,!0)}):t._e()]})):t.showMore?e(\"a\",{staticClass:\"more\",attrs:{href:t.showMoreUrl,target:\"_blank\",tabindex:\"0\"}},[t._v(\"\\n\\t\\t\\t\"+t._s(t.showMoreLabel)+\"\\n\\t\\t\")]):t._e()],2)}),[function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"item__details\"},[e(\"h3\",[t._v(\" \")]),t._v(\" \"),e(\"p\",{staticClass:\"message\"},[t._v(\"\\n \\n\\t\\t\\t\\t\\t\")])])}],!1,null,\"35ac6098\",null);\"function\"==typeof rA()&&rA()(oA);const sA=oA.exports;const lA=require(\"emoji-mart-vue-fast\"),AA=require(\"emoji-mart-vue-fast/data/all.json\");var cA=n.n(AA);let dA;const pA={search:tt(\"Search emoji\"),notfound:tt(\"No emoji found\"),categories:{search:tt(\"Search results\"),recent:tt(\"Frequently used\"),smileys:tt(\"Smileys & Emotion\"),people:tt(\"People & Body\"),nature:tt(\"Animals & Nature\"),foods:tt(\"Food & Drink\"),activity:tt(\"Activities\"),places:tt(\"Travel & Places\"),objects:tt(\"Objects\"),symbols:tt(\"Symbols\"),flags:tt(\"Flags\"),custom:tt(\"Custom\")}},uA={name:\"NcEmojiPicker\",components:{NcPopover:Ot,NcTextField:Zi,Emoji:lA.Emoji,Picker:lA.Picker},props:{activeSet:{type:String,default:\"native\"},showPreview:{type:Boolean,default:!1},allowUnselect:{type:Boolean,default:!1},selectedEmoji:{type:String,default:\"\"},previewFallbackEmoji:{type:String,default:\"grinning\"},previewFallbackTitle:{type:String,default:tt(\"Pick an emoji\")},closeOnSelect:{type:Boolean,default:!0},container:{type:[String,Object,Element,Boolean],default:\"body\"}},emits:[\"select\",\"select-data\",\"unselect\"],setup:()=>(dA||(dA=new lA.EmojiIndex(cA())),{emojiIndex:dA,i18n:pA}),data:()=>({search:\"\",open:!1}),computed:{native(){return\"native\"===this.activeSet}},methods:{t:tt,clearSearch(){var t,e;this.search=\"\";const n=null===(t=this.$refs.search)||void 0===t||null===(e=t.$refs.inputField)||void 0===e?void 0:e.$refs.input;n&&n.focus()},select(t){this.$emit(\"select\",t.native),this.$emit(\"select-data\",t),this.closeOnSelect&&(this.open=!1)},unselect(){this.$emit(\"unselect\")},afterShow(){var t,e;this.$refs.picker.$el.addEventListener(\"keydown\",this.checkKeyEvent);const n=null===(t=this.$refs.search)||void 0===t||null===(e=t.$refs.inputField)||void 0===e?void 0:e.$refs.input;n&&n.focus()},afterHide(){this.$refs.picker.$el.removeEventListener(\"keydown\",this.checkKeyEvent)},checkKeyEvent(t){if(\"Tab\"!==t.key)return;const e=this.$refs.picker.$el.querySelectorAll(\"button, input\"),n=e.length-1;e.length<=1?t.preventDefault():!1===t.shiftKey&&t.target===e[n]?(t.preventDefault(),e[0].focus()):!0===t.shiftKey&&t.target===e[0]&&(t.preventDefault(),e[n].focus())}}};var mA=n(4722),hA={};hA.styleTagTransform=b(),hA.setAttributes=h(),hA.insert=u().bind(null,\"head\"),hA.domAPI=d(),hA.insertStyleElement=C();A()(mA.Z,hA);mA.Z&&mA.Z.locals&&mA.Z.locals;var gA=n(3841),CA={};CA.styleTagTransform=b(),CA.setAttributes=h(),CA.insert=u().bind(null,\"head\"),CA.domAPI=d(),CA.insertStyleElement=C();A()(gA.Z,CA);gA.Z&&gA.Z.locals&&gA.Z.locals;var TA=n(882),bA=n.n(TA),vA=E(uA,(function(){var t=this,e=t._self._c;return e(\"NcPopover\",t._g(t._b({attrs:{shown:t.open,container:t.container},on:{\"update:shown\":function(e){t.open=e},\"after-show\":t.afterShow,\"after-hide\":t.afterHide},scopedSlots:t._u([{key:\"trigger\",fn:function(){return[t._t(\"default\")]},proxy:!0}],null,!0)},\"NcPopover\",t.$attrs,!1),t.$listeners),[t._v(\" \"),e(\"Picker\",t._b({ref:\"picker\",attrs:{\"auto-focus\":!1,color:\"var(--color-primary-element)\",data:t.emojiIndex,emoji:t.previewFallbackEmoji,i18n:t.i18n,native:t.native,\"emoji-size\":20,\"per-line\":8,\"picker-styles\":{width:\"320px\"},\"show-preview\":t.showPreview,title:t.previewFallbackTitle},on:{select:t.select},scopedSlots:t._u([{key:\"searchTemplate\",fn:function(n){return[e(\"NcTextField\",{ref:\"search\",staticClass:\"search\",attrs:{value:t.search,label:t.t(\"Search\"),\"label-visible\":!0,placeholder:t.i18n.search,\"trailing-button-icon\":\"close\",\"trailing-button-label\":t.t(\"Clear search\"),\"show-trailing-button\":\"\"!==t.search},on:{\"update:value\":[function(e){t.search=e},function(e){return n.onSearch(t.search)}],\"trailing-button-click\":function(e){t.clearSearch(),n.onSearch(t.search)}}})]}},t.allowUnselect&&t.selectedEmoji?{key:\"customCategory\",fn:function(){return[e(\"div\",{staticClass:\"emoji-mart-category-label\"},[e(\"h3\",{staticClass:\"emoji-mart-category-label\"},[t._v(\"\\n\\t\\t\\t\\t\\t\"+t._s(t.t(\"Selected\"))+\"\\n\\t\\t\\t\\t\")])]),t._v(\" \"),e(\"Emoji\",{staticClass:\"emoji-selected\",attrs:{data:t.emojiIndex,emoji:t.selectedEmoji,native:!0,size:32},on:{click:t.unselect}}),t._v(\" \"),e(\"Emoji\",{staticClass:\"emoji-delete\",attrs:{data:t.emojiIndex,emoji:\":x:\",native:!0,size:10},on:{click:t.unselect}})]},proxy:!0}:null],null,!0)},\"Picker\",t.$attrs,!1))],1)}),[],!1,null,\"0d89938e\",null);\"function\"==typeof bA()&&bA()(vA);const fA=vA.exports;const EA={name:\"NcGuestContent\",mounted(){document.getElementById(\"content\").classList.add(\"nc-guest-content\")},destroyed(){document.getElementById(\"content\").classList.remove(\"nc-guest-content\")}};var xA=n(1552),yA={};yA.styleTagTransform=b(),yA.setAttributes=h(),yA.insert=u().bind(null,\"head\"),yA.domAPI=d(),yA.insertStyleElement=C();A()(xA.Z,yA);xA.Z&&xA.Z.locals&&xA.Z.locals;var SA=n(7267),DA={};DA.styleTagTransform=b(),DA.setAttributes=h(),DA.insert=u().bind(null,\"head\"),DA.domAPI=d(),DA.insertStyleElement=C();A()(SA.Z,DA);SA.Z&&SA.Z.locals&&SA.Z.locals;var kA=n(7009),wA=n.n(kA),NA=E(EA,(function(){return(0,this._self._c)(\"div\",{attrs:{id:\"guest-content-vue\"}},[this._t(\"default\")],2)}),[],!1,null,\"91d382a6\",null);\"function\"==typeof wA()&&wA()(NA);const FA=NA.exports;const RA={name:\"NcHeaderMenu\",directives:{ClickOutside:Me.vOnClickOutside},mixins:[oe],props:{id:{type:String,required:!0},ariaLabel:{type:String,default:\"\"},open:{type:Boolean,default:!1}},emits:[\"close\",\"closed\",\"open\",\"opened\",\"update:open\",\"cancel\"],data(){var t,e,n;return{focusTrap:null,opened:this.open,shortcutsDisabled:null===(t=window.OCP)||void 0===t||null===(e=t.Accessibility)||void 0===e||null===(n=e.disableKeyboardShortcuts)||void 0===n?void 0:n.call(e)}},computed:{clickOutsideConfig(){return[this.closeMenu,this.clickOutsideOptions]}},watch:{open(t){t?this.openMenu():this.closeMenu()}},mounted(){document.addEventListener(\"keydown\",this.onKeyDown)},beforeDestroy(){document.removeEventListener(\"keydown\",this.onKeyDown)},methods:{toggleMenu(){this.opened?this.closeMenu():this.openMenu()},closeMenu(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.opened=!1,this.$emit(t?\"cancel\":\"close\"),this.$emit(\"update:open\",!1),this.clearFocusTrap(),this.$nextTick((()=>{this.$emit(\"closed\")}))},openMenu(){this.opened=!0,this.$emit(\"open\"),this.$emit(\"update:open\",!0),this.$nextTick((()=>{this.useFocusTrap(),this.$emit(\"opened\")}))},onKeyDown(t){!this.shortcutsDisabled&&this.opened&&\"Escape\"===t.key&&(t.preventDefault(),this.closeMenu(!0))},async useFocusTrap(){if(this.focusTrap)return;const t=this.$refs.content;this.focusTrap=(0,St.createFocusTrap)(t,{allowOutsideClick:!0,trapStack:Dt(),fallbackFocus:this.$refs.trigger}),this.focusTrap.activate()},clearFocusTrap(){var t;null===(t=this.focusTrap)||void 0===t||t.deactivate(),this.focusTrap=null}}};var BA=n(9950),_A={};_A.styleTagTransform=b(),_A.setAttributes=h(),_A.insert=u().bind(null,\"head\"),_A.domAPI=d(),_A.insertStyleElement=C();A()(BA.Z,_A);BA.Z&&BA.Z.locals&&BA.Z.locals;var OA=n(156),ZA=n.n(OA),MA=E(RA,(function(){var t=this,e=t._self._c;return e(\"div\",{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:t.clickOutsideConfig,expression:\"clickOutsideConfig\"}],staticClass:\"header-menu\",class:{\"header-menu--opened\":t.opened},attrs:{id:t.id}},[e(\"a\",{ref:\"trigger\",staticClass:\"header-menu__trigger\",attrs:{href:\"#\",\"aria-label\":t.ariaLabel,\"aria-controls\":\"header-menu-\".concat(t.id),\"aria-expanded\":t.opened.toString()},on:{click:function(e){return e.preventDefault(),t.toggleMenu.apply(null,arguments)}}},[t._t(\"trigger\")],2),t._v(\" \"),e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.opened,expression:\"opened\"}],staticClass:\"header-menu__carret\"}),t._v(\" \"),e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.opened,expression:\"opened\"}],staticClass:\"header-menu__wrapper\",attrs:{id:\"header-menu-\".concat(t.id),role:\"menu\"}},[e(\"div\",{ref:\"content\",staticClass:\"header-menu__content\"},[t._t(\"default\")],2)])])}),[],!1,null,\"357d93a8\",null);\"function\"==typeof ZA()&&ZA()(MA);const YA=MA.exports;const IA={name:\"NcListItem\",components:{NcActions:ga,NcCounterBubble:Wl,NcVNodes:_r},props:{details:{type:String,default:\"\"},title:{type:String,required:!0},exact:{type:Boolean,default:!1},to:{type:[String,Object],default:null},href:{type:String,default:\"#\"},anchorId:{type:String,default:\"\"},bold:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},active:{type:Boolean,default:!1},linkAriaLabel:{type:String,default:\"\"},actionsAriaLabel:{type:String,default:\"\"},counterNumber:{type:[Number,String],default:0},counterType:{type:String,default:\"\",validator:t=>-1!==[\"highlighted\",\"outlined\",\"\"].indexOf(t)},forceDisplayActions:{type:Boolean,default:!1}},emits:[\"click\",\"update:menuOpen\"],data:()=>({hovered:!1,focused:!1,hasActions:!1,hasSubtitle:!1,displayActionsOnHoverFocus:!1,menuOpen:!1,hasIndicator:!1}),computed:{hasDetails(){return\"\"!==this.details},oneLine(){return!this.hasSubtitle&&!this.showDetails},showAdditionalElements(){return!this.displayActionsOnHoverFocus||this.forceDisplayActions},showDetails(){return this.hasDetails&&(!this.displayActionsOnHoverFocus||this.forceDisplayActions)},computedActionsAriaLabel(){return this.actionsAriaLabel||tt('Actions for item with title \"{title}\"',{title:this.title})}},watch:{menuOpen(t){t||this.hovered||(this.displayActionsOnHoverFocus=!1)}},mounted(){this.checkSlots()},updated(){this.checkSlots()},methods:{onClick(t,e,n){this.$emit(\"click\",t),t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||n&&(null==e||e(t),t.preventDefault())},handleMouseover(){this.showActions(),this.hovered=!0},showActions(){this.hasActions&&(this.displayActionsOnHoverFocus=!0),this.hovered=!1},hideActions(){this.displayActionsOnHoverFocus=!1},handleFocus(){this.focused=!0,this.showActions()},handleBlur(){this.focused=!1},handleMouseleave(){this.menuOpen||(this.displayActionsOnHoverFocus=!1),this.hovered=!1},handleTab(t){this.focused&&this.hasActions?(t.preventDefault(),this.$refs.actions.$refs.menuButton.$el.focus(),this.focused=!1):this.displayActionsOnHoverFocus=!1},handleActionsUpdateOpen(t){this.menuOpen=t,this.$emit(\"update:menuOpen\",t)},checkSlots(){this.hasActions!==!!this.$slots.actions&&(this.hasActions=!!this.$slots.actions),this.hasSubtitle!==!!this.$slots.subtitle&&(this.hasSubtitle=!!this.$slots.subtitle),this.hasIndicator!==!!this.$slots.indicator&&(this.hasIndicator=!!this.$slots.indicator)}}};var GA=n(3408),LA={};LA.styleTagTransform=b(),LA.setAttributes=h(),LA.insert=u().bind(null,\"head\"),LA.domAPI=d(),LA.insertStyleElement=C();A()(GA.Z,LA);GA.Z&&GA.Z.locals&&GA.Z.locals;var $A=n(1560),jA=n.n($A),UA=E(IA,(function(){var t=this,e=t._self._c;return e(t.to?\"router-link\":\"NcVNodes\",{tag:\"component\",attrs:{custom:!!t.to||null,to:t.to,exact:t.to?t.exact:null},scopedSlots:t._u([{key:\"default\",fn:function(n){let{href:i,navigate:a,isActive:r}=n;return[e(\"li\",{staticClass:\"list-item__wrapper\",class:{\"list-item__wrapper--active\":r}},[e(\"a\",{ref:\"list-item\",staticClass:\"list-item\",attrs:{id:t.anchorId,href:i||t.href,target:\"#\"===t.href?void 0:\"_blank\",rel:\"#\"===t.href?void 0:\"noopener noreferrer\",\"aria-label\":t.linkAriaLabel},on:{mouseover:t.handleMouseover,mouseleave:t.handleMouseleave,focus:t.handleFocus,blur:t.handleBlur,keydown:[function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"tab\",9,e.key,\"Tab\")||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:t.handleTab.apply(null,arguments)},function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"esc\",27,e.key,[\"Esc\",\"Escape\"])?null:t.hideActions.apply(null,arguments)}],click:function(e){return t.onClick(e,a,i)}}},[e(\"div\",{staticClass:\"list-item-content__wrapper\",class:{\"list-item-content__wrapper--compact\":t.compact}},[t._t(\"icon\"),t._v(\" \"),e(\"div\",{staticClass:\"list-item-content\"},[e(\"div\",{staticClass:\"list-item-content__main\",class:{\"list-item-content__main--oneline\":t.oneLine}},[e(\"div\",{staticClass:\"line-one\"},[e(\"span\",{staticClass:\"line-one__title\"},[t._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+t._s(t.title)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")]),t._v(\" \"),t.showDetails?e(\"span\",{staticClass:\"line-one__details\"},[t._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+t._s(t.details)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")]):t._e()]),t._v(\" \"),e(\"div\",{staticClass:\"line-two\",class:{\"line-two--bold\":t.bold}},[t.hasSubtitle?e(\"span\",{staticClass:\"line-two__subtitle\"},[t._t(\"subtitle\")],2):t._e(),t._v(\" \"),0!=t.counterNumber||t.hasIndicator?e(\"span\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showAdditionalElements,expression:\"showAdditionalElements\"}],staticClass:\"line-two__additional_elements\"},[0!=t.counterNumber?e(\"NcCounterBubble\",{staticClass:\"line-two__counter\",attrs:{type:t.counterType}},[t._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+t._s(t.counterNumber)+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\")]):t._e(),t._v(\" \"),t.hasIndicator?e(\"span\",{staticClass:\"line-two__indicator\"},[t._t(\"indicator\")],2):t._e()],1):t._e()])]),t._v(\" \"),t.forceDisplayActions?t._e():e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.displayActionsOnHoverFocus,expression:\"displayActionsOnHoverFocus\"}],staticClass:\"list-item-content__actions\",on:{click:function(t){t.preventDefault(),t.stopPropagation()}}},[e(\"NcActions\",{ref:\"actions\",attrs:{\"aria-label\":t.computedActionsAriaLabel},on:{\"update:open\":t.handleActionsUpdateOpen}},[t._t(\"actions\")],2)],1)]),t._v(\" \"),t.forceDisplayActions?e(\"div\",{staticClass:\"list-item-content__actions\",on:{click:function(t){t.preventDefault(),t.stopPropagation()}}},[e(\"NcActions\",{ref:\"actions\",attrs:{\"aria-label\":t.computedActionsAriaLabel},on:{\"update:open\":t.handleActionsUpdateOpen}},[t._t(\"actions\")],2)],1):t._e()],2),t._v(\" \"),t.$slots.extra?e(\"div\",{staticClass:\"list-item__extra\"},[t._t(\"extra\")],2):t._e()])])]}}],null,!0)})}),[],!1,null,\"f418ea78\",null);\"function\"==typeof jA()&&jA()(UA);const PA=UA.exports;var zA=n(636),HA={};HA.styleTagTransform=b(),HA.setAttributes=h(),HA.insert=u().bind(null,\"head\"),HA.domAPI=d(),HA.insertStyleElement=C();A()(zA.Z,HA);zA.Z&&zA.Z.locals&&zA.Z.locals;const WA=require(\"vue-multiselect\");const qA={name:\"NcMultiselect\",components:{NcEllipsisedOption:xt,NcListItemIcon:ln,NcLoadingIcon:Xt,VueMultiselect:n.n(WA)()},directives:{tooltip:Oa},mixins:[An],inheritAttrs:!1,props:{value:{default:()=>[]},closeOnSelect:{type:Boolean,default:void 0},multiple:{type:Boolean,default:!1},limit:{type:Number,default:99999},label:{type:String,default:\"\"},trackBy:{type:String,default:\"\"},options:{type:Array,required:!0},userSelect:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},autoLimit:{type:Boolean,default:!0},tagWidth:{type:Number,default:150,validator:t=>t>0}},emits:[\"change\",\"update:value\"],data:()=>({elWidth:0,ariaExpanded:!1}),computed:{maxOptions(){if(this.autoLimit&&this.elWidth>0&&0!==this.tagWidth){const t=Math.floor(this.elWidth/this.tagWidth);return t>0?t:1}return this.limit?this.limit:9999},limitString(){return\"+\".concat(this.value.length-this.maxOptions)},localValue:{get(){return this.trackBy&&this.options&&\"object\"!=typeof this.value&&this.options[this.value]?this.options[this.value]:this.value},set(t){this.$emit(\"update:value\",t),this.$emit(\"change\",t)}},willCloseOnSelect(){return void 0===this.closeOnSelect?!this.multiple:this.closeOnSelect}},watch:{value(){this.updateWidth()}},mounted(){this.updateWidth(),window.addEventListener(\"resize\",this.updateWidth)},beforeDestroy(){window.removeEventListener(\"resize\",this.updateWidth)},methods:{getOptionLabel(t){var e;return String(null===(e=this.$refs.VueMultiselect)||void 0===e?void 0:e.getOptionLabel(t))},formatLimitTitle(t){if(Array.isArray(t)&&t.length>0){let e=t;return\"object\"==typeof t[0]&&(e=t.map((t=>t[this.label]))),e.slice(this.maxOptions).join(\", \")}return\"\"},updateWidth(){this.$el&&this.$el.querySelector(\".multiselect__tags-wrap\")&&(this.elWidth=this.$el.querySelector(\".multiselect__tags-wrap\").offsetWidth-10)}}},QA=qA;var KA=n(6049),VA=n.n(KA),JA=E(QA,(function(){var t=this,e=t._self._c;return e(\"VueMultiselect\",t._g(t._b({ref:\"VueMultiselect\",class:[t.multiple?\"multiselect--multiple\":\"multiselect--single\"],attrs:{options:t.options,limit:t.maxOptions,loading:t.loading,\"aria-expanded\":t.ariaExpanded.toString(),\"close-on-select\":t.willCloseOnSelect,multiple:t.multiple,label:t.label,\"track-by\":t.trackBy,\"tag-placeholder\":\"create\"},on:{close:function(e){t.ariaExpanded=!1},open:function(e){t.ariaExpanded=!0}},scopedSlots:t._u([{key:\"option\",fn:function(n){return[t.userSelect&&!t.$scopedSlots.option?e(\"NcListItemIcon\",t._b({attrs:{title:n.option[t.label],search:n.search}},\"NcListItemIcon\",n.option,!1)):t.$scopedSlots.option?t._t(\"option\",null,null,n):e(\"NcEllipsisedOption\",{attrs:{name:t.getOptionLabel(n.option),search:n.search}})]}},t.multiple?{key:\"limit\",fn:function(){return[e(\"span\",{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:t.formatLimitTitle(t.value),expression:\"formatLimitTitle(value)\",modifiers:{auto:!0}}],staticClass:\"multiselect__limit\"},[t._v(\"\\n\\t\\t\\t\"+t._s(t.limitString)+\"\\n\\t\\t\")])]},proxy:!0}:null,t._l(t.$scopedSlots,(function(e,n){return{key:n,fn:function(e){return[t._t(n,null,null,e)]}}})),{key:\"noResult\",fn:function(){return[t._t(\"noResult\",(function(){return[e(\"span\",[t._v(t._s(t.t(\"No results\")))])]}))]},proxy:!0},{key:\"loading\",fn:function(){return[t.loading?e(\"NcLoadingIcon\"):t._e()]},proxy:!0}],null,!0),model:{value:t.localValue,callback:function(e){t.localValue=e},expression:\"localValue\"}},\"VueMultiselect\",t.$attrs,!1),t.$listeners))}),[],!1,null,null,null);\"function\"==typeof VA()&&VA()(JA);const XA=JA.exports;Ln(XA);const tc=XA;const ec=t=>{let e={};if(1===t.nodeType){if(t.attributes.length>0){e[\"@attributes\"]={};for(let n=0;n<t.attributes.length;n++){const i=t.attributes.item(n);e[\"@attributes\"][i.nodeName]=i.nodeValue}}}else 3===t.nodeType&&(e=t.nodeValue);if(t.hasChildNodes())for(let n=0;n<t.childNodes.length;n++){const i=t.childNodes.item(n),a=i.nodeName;if(void 0===e[a])e[a]=ec(i);else{if(void 0===e[a].push){const t=e[a];e[a]=[],e[a].push(t)}e[a].push(ec(i))}}return e},nc=t=>{const e=ec((t=>{let e=null;try{e=(new DOMParser).parseFromString(t,\"text/xml\")}catch(t){console.error(\"Failed to parse xml document\",t)}return e})(t)),n=e[\"d:multistatus\"][\"d:response\"],i=[];for(const t in n){const e=n[t][\"d:propstat\"];\"HTTP/1.1 200 OK\"===e[\"d:status\"][\"#text\"]&&i.push({id:parseInt(e[\"d:prop\"][\"oc:id\"][\"#text\"]),displayName:e[\"d:prop\"][\"oc:display-name\"][\"#text\"],canAssign:\"true\"===e[\"d:prop\"][\"oc:can-assign\"][\"#text\"],userAssignable:\"true\"===e[\"d:prop\"][\"oc:user-assignable\"][\"#text\"],userVisible:\"true\"===e[\"d:prop\"][\"oc:user-visible\"][\"#text\"]})}return i};const ic={name:\"NcMultiselectTags\",components:{NcMultiselect:tc},mixins:[An],props:{label:{type:String,default:tt(\"Select a tag\")},value:{type:[Number,Array],required:!0},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!0},filter:{type:Function,default:(t,e)=>e<5}},emits:[\"input\"],data:()=>({tags:[]}),computed:{inputValue(){return this.getValueObject()},availableOptions(){return this.filter?this.tags.filter(this.filter):this.tags}},async beforeCreate(){try{const t=await async function(){if(window.NextcloudVueDocs)return Promise.resolve(nc(window.NextcloudVueDocs.tags));const t=await Ne()({method:\"PROPFIND\",url:(0,ce.generateRemoteUrl)(\"dav\")+\"/systemtags/\",data:'<?xml version=\"1.0\"?>\\n\\t\\t\\t\\t\\t<d:propfind xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\\n\\t\\t\\t\\t\\t <d:prop>\\n\\t\\t\\t\\t\\t\\t<oc:id />\\n\\t\\t\\t\\t\\t\\t<oc:display-name />\\n\\t\\t\\t\\t\\t\\t<oc:user-visible />\\n\\t\\t\\t\\t\\t\\t<oc:user-assignable />\\n\\t\\t\\t\\t\\t\\t<oc:can-assign />\\n\\t\\t\\t\\t\\t </d:prop>\\n\\t\\t\\t\\t\\t</d:propfind>'});return nc(t.data)}();this.tags=t}catch(t){console.error(\"Loading systemtags failed\",t)}},methods:{getValueObject(){return 0===this.tags.length?[]:this.multiple?this.value.filter((t=>\"\"!==t)).map((t=>this.tags.find((e=>e.id===t)))):this.tags.find((t=>t.id===this.value))},update(t){this.multiple?this.$emit(\"input\",t.map((t=>t.id))):null===t?this.$emit(\"input\",null):this.$emit(\"input\",t.id)},tagLabel(t){let{displayName:e,userVisible:n,userAssignable:i}=t;return!1===n?tt(\"{tag} (invisible)\",{tag:e}):!1===i?tt(\"{tag} (restricted)\",{tag:e}):e}}};var ac=n(6448),rc=n.n(ac),oc=E(ic,(function(){var t=this,e=t._self._c;return e(\"NcMultiselect\",{attrs:{value:t.inputValue,options:t.availableOptions,placeholder:t.label,\"track-by\":\"id\",\"custom-label\":t.tagLabel,multiple:t.multiple,\"close-on-select\":!t.multiple,\"tag-width\":60,disabled:t.disabled},on:{input:t.update},scopedSlots:t._u([{key:\"noResult\",fn:function(){return[e(\"span\",[t._v(t._s(t.t(\"No results\")))])]},proxy:!0},{key:\"option\",fn:function(e){return[t._v(\"\\n\\t\\t\"+t._s(t.tagLabel(e.option))+\"\\n\\t\")]}}])})}),[],!1,null,null,null);\"function\"==typeof rc()&&rc()(oc);const sc=oc.exports;const lc=require(\"vue-material-design-icons/CheckboxMarkedCircle.vue\");var Ac=n.n(lc);const cc=require(\"vue-material-design-icons/AlertDecagram.vue\");var dc=n.n(cc);const pc=require(\"vue-material-design-icons/Alert.vue\");var uc=n.n(pc);const mc={name:\"NcNoteCard\",props:{type:{type:String,default:\"warning\",validator:t=>[\"success\",\"warning\",\"error\"].includes(t)},showAlert:{type:Boolean,default:!1},heading:{type:String,default:\"\"}},computed:{shouldShowAlert(){return this.showAlert||\"error\"===this.type},icon(){switch(this.type){case\"error\":return dc();case\"success\":return Ac();default:return uc()}},color(){switch(this.type){case\"error\":return\"var(--color-error)\";case\"success\":return\"var(--color-success)\";default:return\"var(--color-warning)\"}}}};var hc=n(3621),gc={};gc.styleTagTransform=b(),gc.setAttributes=h(),gc.insert=u().bind(null,\"head\"),gc.domAPI=d(),gc.insertStyleElement=C();A()(hc.Z,gc);hc.Z&&hc.Z.locals&&hc.Z.locals;var Cc=n(3464),Tc=n.n(Cc),bc=E(mc,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"notecard\",class:\"notecard--\".concat(t.type),attrs:{role:t.shouldShowAlert?\"alert\":\"\"}},[e(t.icon,{tag:\"component\",staticClass:\"notecard__icon\",class:{\"notecard__icon--heading\":t.heading},attrs:{\"fill-color\":t.color}}),t._v(\" \"),e(\"div\",[t.heading?e(\"h2\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.heading)+\"\\n\\t\\t\")]):t._e(),t._v(\" \"),t._t(\"default\")],2)],1)}),[],!1,null,\"141377ba\",null);\"function\"==typeof Tc()&&Tc()(bc);const vc=bc.exports;const fc={name:\"NcProgressBar\",props:{value:{type:Number,default:0,validator:t=>t>=0&&t<=100},size:{type:String,default:\"small\",validator:t=>-1!==[\"small\",\"medium\"].indexOf(t)},error:{type:Boolean,default:!1}},computed:{height(){return\"small\"===this.size?\"4px\":\"6px\"}}};var Ec=n(8235),xc={};xc.styleTagTransform=b(),xc.setAttributes=h(),xc.insert=u().bind(null,\"head\"),xc.domAPI=d(),xc.insertStyleElement=C();A()(Ec.Z,xc);Ec.Z&&Ec.Z.locals&&Ec.Z.locals;var yc=n(8070),Sc=n.n(yc),Dc=E(fc,(function(){var t=this;return(0,t._self._c)(\"progress\",{staticClass:\"progress-bar vue\",class:{\"progress-bar--error\":t.error},style:{\"--progress-bar-height\":t.height},attrs:{max:\"100\"},domProps:{value:t.value}})}),[],!1,null,\"67f460e0\",null);\"function\"==typeof Sc()&&Sc()(Dc);const kc=Dc.exports;const wc={name:\"NcResource\",components:{NcButton:si},directives:{Tooltip:Oa},props:{icon:{type:String,required:!0},title:{type:String,required:!0},subtitle:{type:String,default:null},tooltip:{type:String,default:null},url:{type:String,required:!0}},data(){return{labelTranslated:tt('Open link to \"{resourceTitle}\"',{resourceTitle:this.title})}},methods:{t:tt}};var Nc=n(1466),Fc={};Fc.styleTagTransform=b(),Fc.setAttributes=h(),Fc.insert=u().bind(null,\"head\"),Fc.domAPI=d(),Fc.insertStyleElement=C();A()(Nc.Z,Fc);Nc.Z&&Nc.Z.locals&&Nc.Z.locals;const Rc={name:\"NcRelatedResourcesPanel\",components:{NcResource:E(wc,(function(){var t=this,e=t._self._c;return e(\"li\",{staticClass:\"resource\"},[e(\"NcButton\",{staticClass:\"resource__button\",attrs:{\"aria-label\":t.labelTranslated,type:\"tertiary\",href:t.url},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"div\",{staticClass:\"resource__icon\"},[e(\"img\",{attrs:{src:t.icon}})])]},proxy:!0}])},[t._v(\"\\n\\t\\t\"+t._s(t.title)+\"\\n\\t\")])],1)}),[],!1,null,\"257d6aeb\",null).exports},props:{providerId:{type:String,default:null},itemId:{type:[String,Number],default:null},fileInfo:{type:Object,default:null}},emits:[\"has-error\",\"has-resources\"],data(){var t,e;return{appEnabled:void 0!==(null===(t=OC)||void 0===t||null===(e=t.appswebroots)||void 0===e?void 0:e.related_resources),headerTranslated:tt(\"Related resources\"),loading:!1,error:null,resources:[]}},computed:{isVisible(){var t;return!this.loading&&(null!==(t=this.error)&&void 0!==t?t:this.resources.length>0)},description(){return this.error?tt(\"Error getting related resources. Please contact your system administrator if you have any questions.\"):tt(\"Anything shared with the same group of people will show up here\")},hasResourceInfo(){return null!==this.providerId&&null!==this.itemId||null!==this.fileInfo},isFiles(){var t;return void 0!==(null===(t=this.fileInfo)||void 0===t?void 0:t.id)},url(){let t=null,e=null;return this.isFiles?(t=\"files\",e=this.fileInfo.id):(t=this.providerId,e=this.itemId),(0,ce.generateOcsUrl)(\"/apps/related_resources/related/{providerId}?itemId={itemId}&format=json\",{providerId:t,itemId:e})}},watch:{providerId(){this.fetchRelatedResources()},itemId(){this.fetchRelatedResources()},fileInfo(){this.fetchRelatedResources()},error(t){this.$emit(\"has-error\",Boolean(t))},resources(t){this.$emit(\"has-resources\",t.length>0)}},created(){this.fetchRelatedResources()},methods:{t:tt,async fetchRelatedResources(){if(this.appEnabled&&this.hasResourceInfo){this.loading=!0,this.error=null,this.resources=[];try{var t;const e=await Ne().get(this.url);this.resources=null===(t=e.data.ocs)||void 0===t?void 0:t.data}catch(t){this.error=t,console.error(t)}finally{this.loading=!1}}}}};var Bc=n(3622),_c={};_c.styleTagTransform=b(),_c.setAttributes=h(),_c.insert=u().bind(null,\"head\"),_c.domAPI=d(),_c.insertStyleElement=C();A()(Bc.Z,_c);Bc.Z&&Bc.Z.locals&&Bc.Z.locals;var Oc=n(8385),Zc=n.n(Oc),Mc=E(Rc,(function(){var t=this,e=t._self._c;return t.appEnabled&&t.isVisible?e(\"div\",{staticClass:\"related-resources\"},[e(\"div\",{staticClass:\"related-resources__header\"},[e(\"h5\",[t._v(t._s(t.headerTranslated))]),t._v(\" \"),e(\"p\",[t._v(t._s(t.description))])]),t._v(\" \"),t._l(t.resources,(function(t){return e(\"NcResource\",{key:t.itemId,staticClass:\"related-resources__entry\",attrs:{icon:t.icon,title:t.title,subtitle:t.subtitle,tooltip:t.tooltip,url:t.url}})}))],2):t._e()}),[],!1,null,\"4ef94dc9\",null);\"function\"==typeof Zc()&&Zc()(Mc);const Yc=Mc.exports;const Ic={name:\"NcAutoCompleteResult\",props:{label:{type:String,required:!0},subline:{type:String,default:null},id:{type:String,default:null},icon:{type:String,required:!0},iconUrl:{type:String,default:null},source:{type:String,required:!0},status:{type:[Object,Array],default:()=>({})}},computed:{avatarUrl(){return this.iconUrl?this.iconUrl:this.id&&\"users\"===this.source?this.getAvatarUrl(this.id,44):null},haveStatus(){var t,e,n;return(null===(t=this.status)||void 0===t?void 0:t.icon)||(null===(e=this.status)||void 0===e?void 0:e.status)&&\"offline\"!==(null===(n=this.status)||void 0===n?void 0:n.status)}},methods:{getAvatarUrl:(t,e)=>(0,ce.generateUrl)(\"/avatar/{user}/{size}\",{user:t,size:e})}};var Gc=n(6956),Lc={};Lc.styleTagTransform=b(),Lc.setAttributes=h(),Lc.insert=u().bind(null,\"head\"),Lc.domAPI=d(),Lc.insertStyleElement=C();A()(Gc.Z,Lc);Gc.Z&&Gc.Z.locals&&Gc.Z.locals;const $c=E(Ic,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"autocomplete-result\"},[e(\"div\",{staticClass:\"autocomplete-result__icon\",class:[t.icon,\"autocomplete-result__icon--\".concat(t.avatarUrl?\"with-avatar\":\"\")],style:t.avatarUrl?{backgroundImage:\"url(\".concat(t.avatarUrl,\")\")}:null},[t.haveStatus?e(\"div\",{staticClass:\"autocomplete-result__status\",class:[\"autocomplete-result__status--\".concat(t.status&&t.status.icon?\"icon\":t.status.status)]},[t._v(\"\\n\\t\\t\\t\"+t._s(t.status&&t.status.icon||\"\")+\"\\n\\t\\t\")]):t._e()]),t._v(\" \"),e(\"span\",{staticClass:\"autocomplete-result__content\"},[e(\"span\",{staticClass:\"autocomplete-result__title\"},[t._v(\"\\n\\t\\t\\t\"+t._s(t.label)+\"\\n\\t\\t\")]),t._v(\" \"),t.subline?e(\"span\",{staticClass:\"autocomplete-result__subline\"},[t._v(\"\\n\\t\\t\\t\"+t._s(t.subline)+\"\\n\\t\\t\")]):t._e()])])}),[],!1,null,\"800c95ae\",null).exports;const jc=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;const n=new lA.EmojiIndex(cA());if(t){let i=n.search(\":\".concat(t),e);return i.length<e&&(i=i.concat(n.search(t,e-i.length))),i}return lA.frequently.get(e).map((t=>n.emoji(t)))||[]},Uc=function(t){lA.frequently.add(t)};window._vue_richtext_widgets||(window._vue_richtext_widgets={});window._registerWidget=function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t=>{};window._vue_richtext_widgets[t]?console.error(\"Widget for id \"+t+\" already registered\"):window._vue_richtext_widgets[t]={id:t,callback:e,onDestroy:n}};const Pc={name:\"NcReferenceWidget\",props:{reference:{type:Object,required:!0}},data:()=>({compact:3}),computed:{hasCustomWidget(){return t=this.reference.richObjectType,!!window._vue_richtext_widgets[t];var t},noAccess(){return this.reference&&!this.reference.accessible},descriptionStyle(){if(0===this.compact)return{display:\"none\"};const t=this.compact<4?this.compact:3;return{lineClamp:t,webkitLineClamp:t}},compactLink(){const t=this.reference.openGraphObject.link;return t?t.startsWith(\"https://\")?t.substring(8):t.startsWith(\"http://\")?t.substring(7):t:\"\"}},mounted(){this.renderWidget(),this.observer=new ResizeObserver((t=>{t[0].contentRect.width<450?this.compact=0:t[0].contentRect.width<550?this.compact=1:t[0].contentRect.width<650?this.compact=2:this.compact=3})),this.observer.observe(this.$el)},beforeDestroy(){var t,e;this.observer.disconnect(),t=this.reference.richObjectType,e=this.$el,\"open-graph\"!==t&&window._vue_richtext_widgets[t]&&window._vue_richtext_widgets[t].onDestroy(e)},methods:{renderWidget(){var t;this.$refs.customWidget&&(this.$refs.customWidget.innerHTML=\"\"),\"open-graph\"!==(null==this||null===(t=this.reference)||void 0===t?void 0:t.richObjectType)&&this.$nextTick((()=>{((t,e)=>{let{richObjectType:n,richObject:i,accessible:a}=e;\"open-graph\"!==n&&(window._vue_richtext_widgets[n]?window._vue_richtext_widgets[n].callback(t,{richObjectType:n,richObject:i,accessible:a}):console.error(\"Widget for rich object type \"+n+\" not registered\"))})(this.$refs.customWidget,this.reference)}))}}};var zc=n(1880),Hc={};Hc.styleTagTransform=b(),Hc.setAttributes=h(),Hc.insert=u().bind(null,\"head\"),Hc.domAPI=d(),Hc.insertStyleElement=C();A()(zc.Z,Hc);zc.Z&&zc.Z.locals&&zc.Z.locals;const Wc=E(Pc,(function(){var t=this,e=t._self._c;return e(\"div\",[t.reference&&t.hasCustomWidget?e(\"div\",{staticClass:\"widget-custom\"},[e(\"div\",{ref:\"customWidget\"})]):!t.noAccess&&t.reference&&t.reference.openGraphObject&&!t.hasCustomWidget?e(\"a\",{staticClass:\"widget-default\",attrs:{href:t.reference.openGraphObject.link,rel:\"noopener noreferrer\",target:\"_blank\"}},[t.reference.openGraphObject.thumb?e(\"img\",{staticClass:\"widget-default--image\",attrs:{src:t.reference.openGraphObject.thumb}}):t._e(),t._v(\" \"),e(\"div\",{staticClass:\"widget-default--details\"},[e(\"p\",{staticClass:\"widget-default--title\"},[t._v(t._s(t.reference.openGraphObject.name))]),t._v(\" \"),e(\"p\",{staticClass:\"widget-default--description\",style:t.descriptionStyle},[t._v(t._s(t.reference.openGraphObject.description))]),t._v(\" \"),e(\"p\",{staticClass:\"widget-default--link\"},[t._v(t._s(t.compactLink))])])]):t._e()])}),[],!1,null,\"4be6aca8\",null).exports,qc=/(\\s|^)(https?:\\/\\/)((?:[-A-Z0-9+_]+\\.)+[-A-Z]+(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/gi,Qc=/(\\s|\\(|^)((https?:\\/\\/)((?:[-A-Z0-9+_]+\\.)+[-A-Z0-9]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\\s|\\)|$)/gi,Kc={name:\"NcReferenceList\",components:{NcReferenceWidget:Wc},props:{text:{type:String,default:\"\"},referenceData:{type:Object,default:null},limit:{type:Number,default:1}},data:()=>({references:null,loading:!0}),computed:{isVisible(){return this.loading||this.displayedReferences},values(){return this.referenceData?this.referenceData:this.references?Object.values(this.references):[]},firstReference(){var t;return null!==(t=this.values[0])&&void 0!==t?t:null},displayedReferences(){return this.values.slice(0,this.limit)}},watch:{text:\"fetch\"},mounted(){this.fetch()},methods:{fetch(){this.loading=!0,this.referenceData?this.loading=!1:new RegExp(qc).exec(this.text)?this.resolve().then((t=>{this.references=t.data.ocs.data.references,this.loading=!1})).catch((t=>{console.error(\"Failed to extract references\",t),this.loading=!1})):this.loading=!1},resolve(){const t=new RegExp(qc).exec(this.text.trim());return 1===this.limit&&t?Ne().get((0,ce.generateOcsUrl)(\"references/resolve\",2)+\"?reference=\".concat(encodeURIComponent(t[0]))):Ne().post((0,ce.generateOcsUrl)(\"references/extract\",2),{text:this.text,resolve:!0,limit:this.limit})}}};var Vc=n(122),Jc={};Jc.styleTagTransform=b(),Jc.setAttributes=h(),Jc.insert=u().bind(null,\"head\"),Jc.domAPI=d(),Jc.insertStyleElement=C();A()(Vc.Z,Jc);Vc.Z&&Vc.Z.locals&&Vc.Z.locals;const Xc=E(Kc,(function(){var t=this,e=t._self._c;return t.isVisible?e(\"div\",{staticClass:\"widgets--list\",class:{\"icon-loading\":t.loading}},t._l(t.displayedReferences,(function(t){var n;return e(\"div\",{key:null==t||null===(n=t.openGraphObject)||void 0===n?void 0:n.id},[e(\"NcReferenceWidget\",{attrs:{reference:t}})],1)})),0):t._e()}),[],!1,null,\"36a4d5cc\",null).exports,td=require(\"unist-util-visit\"),ed=require(\"unist-builder\"),nd={name:\"NcLink\",props:{href:{type:String,required:!0}},render(t){return t(\"a\",{attrs:{href:this.href,rel:\"noopener noreferrer\",target:\"_blank\",class:\"rich-text--external-link\"}},[this.href.trim()])}},id=function(t){let{autolink:e,useMarkdown:n}=t;return function(t){n&&e&&(0,td.visit)(t,(t=>\"text\"===t.type),((t,e,n)=>{let i=ad(t.value);return i=i.map((t=>\"string\"==typeof t?(0,ed.u)(\"text\",t):(0,ed.u)(\"link\",{url:t.props.href},[(0,ed.u)(\"text\",t.props.href)]))).filter((t=>t)),n.children.splice(e,1,...i.flat()),[td.SKIP,e+i.flat().length]}))}},ad=t=>{let e=Qc.exec(t);const n=[];let i=0;for(;null!==e;){let a,r=e[2],o=t.substring(i,e.index+e[1].length);\" \"===r[0]&&(o+=r[0],r=r.substring(1).trim());const s=r[r.length-1];(\".\"===s||\",\"===s||\";\"===s||\"(\"===e[0][0]&&\")\"===s)&&(r=r.substring(0,r.length-1),a=s),n.push(o),n.push({component:nd,props:{href:r}}),a&&n.push(a),i=e.index+e[0].length,e=Qc.exec(t)}n.push(t.substring(i));return t===n.map((t=>\"string\"==typeof t?t:t.props.href)).join(\"\")?n:(console.error(\"Failed to reassemble the chunked text: \"+t),t)},rd=function(){return function(t){(0,td.visit)(t,(t=>\"text\"===t.type),(function(t,e,n){const i=t.value.split(/(\\{[a-z\\-_.0-9]+\\})/gi).map(((t,e,n)=>{const i=t.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);if(!i)return(0,ed.u)(\"text\",t);const[,a]=i;return(0,ed.u)(\"element\",{tagName:\"#\".concat(a)})}));n.children.splice(e,1,...i)}))}},od=require(\"unified\"),sd=require(\"remark-parse\");var ld=n.n(sd);const Ad=require(\"remark-breaks\");var cd=n.n(Ad);const dd=require(\"remark-rehype\");var pd=n.n(dd);const ud=require(\"rehype-react\");var md=n.n(ud);const hd=require(\"rehype-external-links\");var gd=n.n(hd);const Cd={name:\"NcRichText\",components:{NcReferenceList:Xc},props:{text:{type:String,default:\"\"},arguments:{type:Object,default:()=>({})},referenceLimit:{type:Number,default:0},references:{type:Object,default:null},markdownCssClasses:{type:Object,default:()=>({a:\"rich-text--external-link\",ol:\"rich-text--ordered-list\",ul:\"rich-text--un-ordered-list\",li:\"rich-text--list-item\",strong:\"rich-text--strong\",em:\"rich-text--italic\",h1:\"rich-text--heading rich-text--heading-1\",h2:\"rich-text--heading rich-text--heading-2\",h3:\"rich-text--heading rich-text--heading-3\",h4:\"rich-text--heading rich-text--heading-4\",h5:\"rich-text--heading rich-text--heading-5\",h6:\"rich-text--heading rich-text--heading-6\",hr:\"rich-text--hr\",table:\"rich-text--table\",pre:\"rich-text--pre\",code:\"rich-text--code\",blockquote:\"rich-text--blockquote\"})},useMarkdown:{type:Boolean,default:!1},autolink:{type:Boolean,default:!0}},methods:{renderPlaintext(t){const e=this,n=this.text.split(/(\\{[a-z\\-_.0-9]+\\})/gi).map((function(n,i,a){const r=n.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);if(!r)return((t,e)=>{let{h:n,context:i}=t;return i.autolink&&(e=ad(e)),Array.isArray(e)?e.map((t=>{if(\"string\"==typeof t)return t;const{component:e,props:i}=t,a=\"NcLink\"===e.name?void 0:\"rich-text--component\";return n(e,{props:i,class:a})})):e})({h:t,context:e},n);const o=r[1],s=e.arguments[o];if(\"object\"==typeof s){const{component:e,props:n}=s;return t(e,{props:n,class:\"rich-text--component\"})}return s?t(\"span\",{class:\"rich-text--fallback\"},s):n}));return t(\"div\",{class:\"rich-text--wrapper\"},[t(\"div\",{},n.flat()),this.referenceLimit>0?t(\"div\",{class:\"rich-text--reference-widget\"},[t(Xc,{props:{text:this.text,referenceData:this.references}})]):null])},renderMarkdown(t){const e=(0,od.unified)().use(ld()).use(id,{autolink:this.autolink,useMarkdown:this.useMarkdown}).use(cd()).use(pd(),{handlers:{component:(t,e)=>t(e,e.component,{value:e.value})}}).use(rd).use(gd(),{target:\"_blank\",rel:[\"noopener noreferrer\"]}).use(md(),{createElement:(e,n,i)=>{var a;if(i=null===(a=i)||void 0===a?void 0:a.map((t=>\"string\"==typeof t?t.replace(/&lt;/gim,\"<\"):t)),!e.startsWith(\"#\"))return t(e,n,i);const r=this.arguments[e.slice(1)];return r?r.component?t(r.component,{attrs:n,props:r.props,class:\"rich-text--component\"},i):t(\"span\",n,[r]):t(\"span\",{attrs:n,class:\"rich-text--fallback\"},[\"{\".concat(e.slice(1),\"}\")])},prefix:!1}).processSync(this.text.replace(/</gim,\"&lt;\").replace(/&gt;/gim,\">\")).result;return t(\"div\",{class:\"rich-text--wrapper rich-text--wrapper-markdown\"},[e,this.referenceLimit>0?t(\"div\",{class:\"rich-text--reference-widget\"},[t(Xc,{props:{text:this.text,referenceData:this.references}})]):null])}},render(t){return this.useMarkdown?this.renderMarkdown(t):this.renderPlaintext(t)}},Td=Cd;var bd=n(535),vd={};vd.styleTagTransform=b(),vd.setAttributes=h(),vd.insert=u().bind(null,\"head\"),vd.domAPI=d(),vd.insertStyleElement=C();A()(bd.Z,vd);bd.Z&&bd.Z.locals&&bd.Z.locals;var fd=n(3407),Ed=n.n(fd),xd=E(Td,undefined,undefined,!1,null,\"1c15f071\",null);\"function\"==typeof Ed()&&Ed()(xd);const yd=xd.exports;window._vue_richtext_custom_picker_elements||(window._vue_richtext_custom_picker_elements={});const Sd=t=>!!window._vue_richtext_custom_picker_elements[t];window._registerCustomPickerElement=function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t=>{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"large\";window._vue_richtext_custom_picker_elements[t]?console.error(\"Custom reference picker element for id \"+t+\" already registered\"):window._vue_richtext_custom_picker_elements[t]={id:t,callback:e,onDestroy:n,size:i}};const Dd={name:\"NcCustomPickerElement\",props:{provider:{type:Object,required:!0}},emits:[\"cancel\",\"submit\"],data(){return{isRegistered:Sd(this.provider.id),renderResult:null}},mounted(){this.isRegistered&&this.renderElement()},beforeDestroy(){var t,e,n;this.isRegistered&&(t=this.provider.id,e=this.$el,n=this.renderResult,window._vue_richtext_custom_picker_elements[t]&&window._vue_richtext_custom_picker_elements[t].onDestroy(e,n))},methods:{renderElement(){this.$refs.domElement&&(this.$refs.domElement.innerHTML=\"\");const t=((t,e)=>{let{providerId:n,accessible:i}=e;if(window._vue_richtext_custom_picker_elements[n])return window._vue_richtext_custom_picker_elements[n].callback(t,{providerId:n,accessible:i});console.error(\"Custom reference picker element for reference provider ID \"+n+\" not registered\")})(this.$refs.domElement,{providerId:this.provider.id,accessible:!1});Promise.resolve(t).then((t=>{var e,n;this.renderResult=t,null!==(e=this.renderResult.object)&&void 0!==e&&e._isVue&&null!==(n=this.renderResult.object)&&void 0!==n&&n.$on&&(this.renderResult.object.$on(\"submit\",this.onSubmit),this.renderResult.object.$on(\"cancel\",this.onCancel)),this.renderResult.element.addEventListener(\"submit\",(t=>{this.onSubmit(t.detail)})),this.renderResult.element.addEventListener(\"cancel\",this.onCancel)}))},onSubmit(t){this.$emit(\"submit\",t)},onCancel(){this.$emit(\"cancel\")}}};var kd=n(9425),wd={};wd.styleTagTransform=b(),wd.setAttributes=h(),wd.insert=u().bind(null,\"head\"),wd.domAPI=d(),wd.insertStyleElement=C();A()(kd.Z,wd);kd.Z&&kd.Z.locals&&kd.Z.locals;const Nd=E(Dd,(function(){return(0,this._self._c)(\"div\",{ref:\"domElement\"})}),[],!1,null,\"60e96d80\",null).exports;const Fd=\"any-link\",Rd={id:Fd,title:tt(\"Any link\"),icon_url:(0,ce.imagePath)(\"core\",\"filetypes/link.svg\")};function Bd(t){return t===Fd?Rd:_d().find((e=>e.id===t))}function _d(){return window._vue_richtext_reference_providers.filter((t=>{const e=!!t.search_providers_ids&&t.search_providers_ids.length>0||Sd(t.id);return e||console.debug(\"[smart picker]\",t.id,\"reference provider is discoverable but does not have any related search provider or custom picker component registered\"),e}))}function Od(t){const e=window._vue_richtext_reference_provider_timestamps;return t.sort(((t,e)=>t.order===e.order?0:t.order>e.order?1:-1)).sort(((t,n)=>{const i=e[t.id],a=e[n.id];return i===a?0:void 0===a?-1:void 0===i?1:i>a?-1:1}))}function Zd(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const n=_d(),i=t.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"),a=new RegExp(i,\"i\"),r=Od(n),o=r.filter((t=>t.title.match(a))),s=e?o.slice(0,e):o;return\"\"!==t&&0!==s.length||s.push(Rd),s}window._vue_richtext_reference_providers||(window._vue_richtext_reference_providers=(0,fi.loadState)(\"core\",\"reference-provider-list\",[])),window._vue_richtext_reference_provider_timestamps||(window._vue_richtext_reference_provider_timestamps=(0,fi.loadState)(\"core\",\"reference-provider-timestamps\",{}));let Md=0;function Yd(t,e){return function(){const n=this,i=arguments;clearTimeout(Md),Md=setTimeout((function(){t.apply(n,i)}),e||0)}}function Id(t){try{return Boolean(new URL(t))}catch(t){return!1}}const Gd=require(\"vue-material-design-icons/LinkVariant.vue\");var Ld=n.n(Gd);const $d={name:\"NcProviderList\",components:{NcMultiselect:tc,NcHighlight:bt,NcEmptyContent:ms,LinkVariantIcon:Ld()},emits:[\"select-provider\",\"submit\"],data:()=>({selectedProvider:null,query:\"\",multiselectPlaceholder:tt(\"Select provider\")}),computed:{options(){const t=[];return\"\"!==this.query&&Id(this.query)&&t.push({id:this.query,title:this.query,isLink:!0}),t.push(...Zd(this.query)),t}},methods:{focus(){this.$nextTick((()=>{var t,e;null===(t=this.$refs[\"provider-select\"])||void 0===t||null===(e=t.$el)||void 0===e||e.focus()}))},onProviderSelected(t){null!==t&&(t.isLink?this.$emit(\"submit\",t.title):this.$emit(\"select-provider\",t),this.selectedProvider=null)}}};var jd=n(8883),Ud={};Ud.styleTagTransform=b(),Ud.setAttributes=h(),Ud.insert=u().bind(null,\"head\"),Ud.domAPI=d(),Ud.insertStyleElement=C();A()(jd.Z,Ud);jd.Z&&jd.Z.locals&&jd.Z.locals;const Pd=E($d,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"provider-list\"},[e(\"NcMultiselect\",{ref:\"provider-select\",staticClass:\"provider-list--select\",attrs:{\"track-by\":\"id\",label:\"title\",placeholder:t.multiselectPlaceholder,options:t.options,\"internal-search\":!1,\"clear-on-select\":!0,\"preserve-search\":!0,\"option-height\":44},on:{\"search-change\":function(e){t.query=e},input:t.onProviderSelected},scopedSlots:t._u([{key:\"option\",fn:function(n){let{option:i}=n;return[i.isLink?e(\"div\",{staticClass:\"provider\"},[e(\"LinkVariantIcon\",{staticClass:\"link-icon\",attrs:{size:20}}),t._v(\" \"),e(\"span\",[t._v(t._s(i.title))])],1):e(\"div\",{staticClass:\"provider\"},[e(\"img\",{staticClass:\"provider-icon\",attrs:{src:i.icon_url}}),t._v(\" \"),e(\"NcHighlight\",{staticClass:\"option-text\",attrs:{search:t.query,text:i.title}})],1)]}}]),model:{value:t.selectedProvider,callback:function(e){t.selectedProvider=e},expression:\"selectedProvider\"}}),t._v(\" \"),e(\"NcEmptyContent\",{staticClass:\"provider-list--empty-content\",scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"LinkVariantIcon\")]},proxy:!0}])})],1)}),[],!1,null,\"50f3a10c\",null).exports;const zd={name:\"NcRawLinkInput\",components:{LinkVariantIcon:Ld(),NcEmptyContent:ms,NcLoadingIcon:Xt,NcReferenceWidget:Wc,NcTextField:Zi},props:{provider:{type:Object,required:!0}},emits:[\"submit\"],data:()=>({inputValue:\"\",loading:!1,reference:null,abortController:null,inputPlaceholder:tt(\"Enter link\")}),computed:{isLinkValid(){return Id(this.inputValue)}},methods:{focus(){var t;null===(t=this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0])||void 0===t||t.focus()},onSubmit(t){const e=t.target.value;this.isLinkValid&&this.$emit(\"submit\",e)},onClear(){this.inputValue=\"\",this.reference=null},onInput(){this.reference=null,this.abortController&&this.abortController.abort(),this.isLinkValid&&Yd((()=>{this.updateReference()}),500)()},updateReference(){this.loading=!0,this.abortController=new AbortController,Ne().get((0,ce.generateOcsUrl)(\"references/resolve\",2)+\"?reference=\"+encodeURIComponent(this.inputValue),{signal:this.abortController.signal}).then((t=>{this.reference=t.data.ocs.data.references[this.inputValue]})).catch((t=>{console.error(t)})).then((()=>{this.loading=!1}))}}};var Hd=n(6068),Wd={};Wd.styleTagTransform=b(),Wd.setAttributes=h(),Wd.insert=u().bind(null,\"head\"),Wd.domAPI=d(),Wd.insertStyleElement=C();A()(Hd.Z,Wd);Hd.Z&&Hd.Z.locals&&Hd.Z.locals;const qd=E(zd,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"raw-link\"},[e(\"div\",{staticClass:\"input-wrapper\"},[e(\"NcTextField\",{ref:\"url-input\",attrs:{value:t.inputValue,\"show-trailing-button\":\"\"!==t.inputValue,label:t.inputPlaceholder},on:{\"update:value\":[function(e){t.inputValue=e},t.onInput],\"trailing-button-click\":t.onClear},nativeOn:{keyup:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")?null:t.onSubmit.apply(null,arguments)}}},[t.loading?e(\"NcLoadingIcon\",{attrs:{size:16}}):e(\"LinkVariantIcon\",{attrs:{size:16}})],1)],1),t._v(\" \"),null!==t.reference?e(\"NcReferenceWidget\",{staticClass:\"reference-widget\",attrs:{reference:t.reference}}):e(\"NcEmptyContent\",{staticClass:\"raw-link--empty-content\",scopedSlots:t._u([{key:\"icon\",fn:function(){return[t.provider.icon_url?e(\"img\",{staticClass:\"provider-icon\",attrs:{src:t.provider.icon_url}}):e(\"LinkVariantIcon\")]},proxy:!0}])})],1)}),[],!1,null,\"2e61b91c\",null).exports;const Qd={name:\"NcSearchResult\",components:{NcHighlight:bt},props:{entry:{type:Object,required:!0},query:{type:String,required:!0}}};var Kd=n(9052),Vd={};Vd.styleTagTransform=b(),Vd.setAttributes=h(),Vd.insert=u().bind(null,\"head\"),Vd.domAPI=d(),Vd.insertStyleElement=C();A()(Kd.Z,Vd);Kd.Z&&Kd.Z.locals&&Kd.Z.locals;const Jd=E(Qd,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"result\"},[t.entry.icon?e(\"div\",{staticClass:\"result--icon-class\",class:{[t.entry.icon]:!0,rounded:t.entry.rounded}}):e(\"img\",{staticClass:\"result--image\",class:{rounded:t.entry.rounded},attrs:{src:t.entry.thumbnailUrl}}),t._v(\" \"),e(\"div\",{staticClass:\"result--content\"},[e(\"span\",{staticClass:\"result--content--title\"},[e(\"NcHighlight\",{attrs:{search:t.query,text:t.entry.title}})],1),t._v(\" \"),e(\"span\",{staticClass:\"result--content--subline\"},[e(\"NcHighlight\",{attrs:{search:t.query,text:t.entry.subline}})],1)])])}),[],!1,null,\"7297c50a\",null).exports,Xd=require(\"vue-material-design-icons/Magnify.vue\");var tp=n.n(Xd);const ep={name:\"NcSearch\",components:{LinkVariantIcon:Ld(),DotsHorizontalIcon:_e(),MagnifyIcon:tp(),NcEmptyContent:ms,NcMultiselect:tc,NcSearchResult:Jd},props:{provider:{type:Object,required:!0},showEmptyContent:{type:Boolean,default:!0},searchPlaceholder:{type:String,default:null}},emits:[\"submit\"],data:()=>({searchQuery:\"\",selectedResult:null,resultsBySearchProvider:{},searching:!1,searchingMoreOf:null,abortController:null}),computed:{mySearchPlaceholder(){return this.searchPlaceholder||tt(\"Search\")},searchProviderIds(){return this.provider.search_providers_ids},options(){if(\"\"===this.searchQuery)return[];const t=[];return Id(this.searchQuery)&&t.push(this.rawLinkEntry),t.push(...this.formattedSearchResults),t},rawLinkEntry(){return{resourceUrl:this.searchQuery,isRawLink:!0}},formattedSearchResults(){const t=[];return this.searchProviderIds.forEach((e=>{this.resultsBySearchProvider[e].entries.length>0&&((this.searchProviderIds.length>1||this.resultsBySearchProvider[e].entries.length>1)&&t.push({name:this.resultsBySearchProvider[e].name,isCustomGroupTitle:!0,providerId:e}),t.push(...this.resultsBySearchProvider[e].entries),this.resultsBySearchProvider[e].isPaginated&&t.push({name:this.resultsBySearchProvider[e].name,isMore:!0,providerId:e,isLoading:this.searchingMoreOf===e}))})),t}},mounted(){this.resetResults()},beforeDestroy(){this.cancelSearchRequests()},methods:{t:tt,resetResults(){const t={};this.searchProviderIds.forEach((e=>{t[e]={entries:[]}})),this.resultsBySearchProvider=t},focus(){var t,e;null===(t=this.$refs[\"search-select\"])||void 0===t||null===(e=t.$el)||void 0===e||e.focus()},cancelSearchRequests(){this.abortController&&this.abortController.abort()},onSearchInput(t){this.searchQuery=t,Yd((()=>{this.updateSearch()}),500)()},onSelectResultSelected(t){null!==t&&(t.resourceUrl?(this.cancelSearchRequests(),this.$emit(\"submit\",t.resourceUrl)):t.isMore&&this.searchMoreOf(t.providerId)),this.selectedResult=null},searchMoreOf(t){this.searchingMoreOf=t,this.cancelSearchRequests(),this.searchProviders(t)},updateSearch(){this.cancelSearchRequests(),this.resetResults(),\"\"!==this.searchQuery?this.searchProviders():this.searching=!1},searchProviders(){var t,e;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.abortController=new AbortController,this.searching=!0;const i=null===n?[...this.searchProviderIds].map((t=>this.searchOneProvider(t))):[this.searchOneProvider(n,null!==(t=null===(e=this.resultsBySearchProvider[n])||void 0===e?void 0:e.cursor)&&void 0!==t?t:null)];return Promise.allSettled(i).then((t=>{!!t.find((t=>\"rejected\"===t.status&&(\"CanceledError\"===t.reason.name||\"ERR_CANCELED\"===t.reason.code)))||(this.searching=!1,this.searchingMoreOf=null)}))},searchOneProvider(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const n=null===e?(0,ce.generateOcsUrl)(\"search/providers/{providerId}/search?term={term}&limit={limit}\",{providerId:t,term:this.searchQuery,limit:5}):(0,ce.generateOcsUrl)(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\",{providerId:t,term:this.searchQuery,limit:5,cursor:e});return Ne().get(n,{signal:this.abortController.signal}).then((e=>{const n=e.data.ocs.data;this.resultsBySearchProvider[t].name=n.name,this.resultsBySearchProvider[t].cursor=n.cursor,this.resultsBySearchProvider[t].isPaginated=n.isPaginated,this.resultsBySearchProvider[t].entries.push(...n.entries)}))}}},np=ep;var ip=n(2873),ap={};ap.styleTagTransform=b(),ap.setAttributes=h(),ap.insert=u().bind(null,\"head\"),ap.domAPI=d(),ap.insertStyleElement=C();A()(ip.Z,ap);ip.Z&&ip.Z.locals&&ip.Z.locals;const rp=E(np,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"smart-picker-search\",class:{\"with-empty-content\":t.showEmptyContent}},[e(\"NcMultiselect\",{ref:\"search-select\",staticClass:\"smart-picker-search--select\",attrs:{\"track-by\":\"resourceUrl\",placeholder:t.mySearchPlaceholder,options:t.options,\"internal-search\":!1,\"clear-on-select\":!1,\"close-on-select\":!1,\"preserve-search\":!0,loading:t.searching,multiple:!1,\"option-height\":60},on:{\"search-change\":t.onSearchInput,input:t.onSelectResultSelected},scopedSlots:t._u([{key:\"option\",fn:function(n){let{option:i}=n;return[i.isRawLink?e(\"div\",{staticClass:\"custom-option\"},[e(\"LinkVariantIcon\",{staticClass:\"option-simple-icon\",attrs:{size:20}}),t._v(\" \"),e(\"span\",{staticClass:\"option-text\"},[t._v(\"\\n\\t\\t\\t\\t\\t\"+t._s(t.t(\"Raw link {options}\",{options:i.resourceUrl}))+\"\\n\\t\\t\\t\\t\")])],1):i.resourceUrl?e(\"NcSearchResult\",{staticClass:\"search-result\",attrs:{entry:i,query:t.searchQuery}}):i.isCustomGroupTitle?e(\"span\",{staticClass:\"custom-option group-title\"},[t.provider.icon_url?e(\"img\",{staticClass:\"provider-icon group-title-icon\",attrs:{src:t.provider.icon_url}}):t._e(),t._v(\" \"),e(\"span\",{staticClass:\"option-text\"},[e(\"strong\",[t._v(t._s(i.name))])])]):i.isMore?e(\"span\",{class:{\"custom-option\":!0}},[i.isLoading?e(\"span\",{staticClass:\"option-simple-icon icon-loading-small\"}):e(\"DotsHorizontalIcon\",{staticClass:\"option-simple-icon\",attrs:{size:20}}),t._v(\" \"),e(\"span\",{staticClass:\"option-text\"},[t._v(\"\\n\\t\\t\\t\\t\\t\"+t._s(t.t('Load more \"{options}\"\"',{options:i.name}))+\"\\n\\t\\t\\t\\t\")])],1):t._e()]}},{key:\"noOptions\",fn:function(){return[e(\"MagnifyIcon\",{staticClass:\"option-simple-icon\",attrs:{size:20}}),t._v(\"\\n\\t\\t\\t\"+t._s(t.t(\"Start typing to search\"))+\"\\n\\t\\t\")]},proxy:!0},{key:\"noResult\",fn:function(){return[e(\"MagnifyIcon\",{staticClass:\"option-simple-icon\",attrs:{size:20}}),t._v(\"\\n\\t\\t\\t\"+t._s(t.t(\"Start typing to search\"))+\"\\n\\t\\t\")]},proxy:!0}]),model:{value:t.selectedResult,callback:function(e){t.selectedResult=e},expression:\"selectedResult\"}}),t._v(\" \"),t.showEmptyContent?e(\"NcEmptyContent\",{staticClass:\"smart-picker-search--empty-content\",scopedSlots:t._u([{key:\"icon\",fn:function(){return[t.provider.icon_url?e(\"img\",{staticClass:\"provider-icon\",attrs:{src:t.provider.icon_url}}):e(\"LinkVariantIcon\")]},proxy:!0}],null,!1,4245470124)}):t._e()],1)}),[],!1,null,\"26e3248c\",null).exports,op={providerList:1,standardLinkInput:2,searchInput:3,customElement:4},sp={name:\"NcReferencePicker\",components:{NcCustomPickerElement:Nd,NcProviderList:Pd,NcRawLinkInput:qd,NcSearch:rp},props:{initialProvider:{type:Object,default:()=>null},width:{type:Number,default:null},focusOnCreate:{type:Boolean,default:!0}},emits:[\"cancel\",\"cancel-raw-link\",\"cancel-search\",\"provider-selected\",\"submit\"],data(){return{MODES:op,selectedProvider:this.initialProvider}},computed:{mode(){return null===this.selectedProvider?op.providerList:Sd(this.selectedProvider.id)?op.customElement:this.selectedProvider.search_providers_ids?op.searchInput:op.standardLinkInput},pickerWrapperStyle(){return{width:this.width?this.width+\"px\":void 0}}},mounted(){this.focusOnCreate&&(this.initialProvider?setTimeout((()=>{var t;null===(t=this.$refs[\"url-input\"])||void 0===t||t.focus()}),300):this.$nextTick((()=>{var t;null===(t=this.$refs[\"provider-list\"])||void 0===t||t.focus()})))},methods:{onEscapePressed(){null!==this.selectedProvider?this.deselectProvider():this.cancelProviderSelection()},onProviderSelected(t){this.selectedProvider=t,this.$emit(\"provider-selected\",t),this.$nextTick((()=>{var t;null===(t=this.$refs[\"url-input\"])||void 0===t||t.focus()}))},cancelCustomElement(){this.deselectProvider()},cancelSearch(){var t;this.$emit(\"cancel-search\",null===(t=this.selectedProvider)||void 0===t?void 0:t.title),this.deselectProvider()},cancelRawLinkInput(){var t;this.$emit(\"cancel-raw-link\",null===(t=this.selectedProvider)||void 0===t?void 0:t.title),this.deselectProvider()},cancelProviderSelection(){this.$emit(\"cancel\")},submitLink(t){null!==this.selectedProvider&&function(t){const e=Math.floor(Date.now()/1e3),n={timestamp:e},i=(0,ce.generateOcsUrl)(\"references/provider/{providerId}\",{providerId:t});Ne().put(i,n).then((n=>{window._vue_richtext_reference_provider_timestamps[t]=e}))}(this.selectedProvider.id),this.$emit(\"submit\",t),this.deselectProvider()},deselectProvider(){this.selectedProvider=null,this.$emit(\"provider-selected\",null),setTimeout((()=>{var t;null===(t=this.$refs[\"provider-list\"])||void 0===t||t.focus()}),300)}}};var lp=n(34),Ap={};Ap.styleTagTransform=b(),Ap.setAttributes=h(),Ap.insert=u().bind(null,\"head\"),Ap.domAPI=d(),Ap.insertStyleElement=C();A()(lp.Z,Ap);lp.Z&&lp.Z.locals&&lp.Z.locals;const cp={name:\"NcReferencePickerModal\",components:{NcReferencePicker:E(sp,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"reference-picker\",style:t.pickerWrapperStyle,attrs:{tabindex:\"-1\"},on:{keydown:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"esc\",27,e.key,[\"Esc\",\"Escape\"])?null:(e.stopPropagation(),e.preventDefault(),t.onEscapePressed.apply(null,arguments))}}},[t.mode===t.MODES.providerList?e(\"NcProviderList\",{ref:\"provider-list\",on:{\"select-provider\":t.onProviderSelected,submit:t.submitLink,cancel:t.cancelProviderSelection}}):t.mode===t.MODES.standardLinkInput?e(\"NcRawLinkInput\",{ref:\"url-input\",attrs:{provider:t.selectedProvider},on:{submit:t.submitLink,cancel:t.cancelRawLinkInput}}):t.mode===t.MODES.searchInput?e(\"NcSearch\",{ref:\"url-input\",attrs:{provider:t.selectedProvider},on:{cancel:t.cancelSearch,submit:t.submitLink}}):t.mode===t.MODES.customElement?e(\"div\",{staticClass:\"custom-element-wrapper\"},[e(\"NcCustomPickerElement\",{attrs:{provider:t.selectedProvider},on:{submit:t.submitLink,cancel:t.cancelCustomElement}})],1):t._e()],1)}),[],!1,null,\"9b2f661a\",null).exports,NcModal:Ho,NcButton:si,ArrowLeftIcon:yl(),CloseIcon:ut()},props:{initialProvider:{type:Object,default:()=>null},focusOnCreate:{type:Boolean,default:!0},isInsideViewer:{type:Boolean,default:!1}},emits:[\"cancel\",\"submit\"],data(){return{show:!0,selectedProvider:this.initialProvider,backButtonTitle:tt(\"Back to provider selection\"),closeButtonTitle:tt(\"Close\"),closeButtonLabel:tt(\"Close Smart Picker\")}},computed:{isProviderSelected(){return null!==this.selectedProvider},showBackButton(){return null===this.initialProvider&&this.isProviderSelected},modalSize(){var t;return this.isProviderSelected&&Sd(this.selectedProvider.id)?null!==(t=(t=>{var e;const n=null===(e=window._vue_richtext_custom_picker_elements[t])||void 0===e?void 0:e.size;return[\"small\",\"normal\",\"large\",\"full\"].includes(n)?n:null})(this.selectedProvider.id))&&void 0!==t?t:\"large\":\"normal\"},showModalTitle(){return!this.isProviderSelected||!Sd(this.selectedProvider.id)},modalTitle(){return this.isProviderSelected?this.selectedProvider.title:tt(\"Smart Picker\")}},mounted(){if(this.isInsideViewer){const t=this.$refs.modal_content;(0,Oe.emit)(\"viewer:trapElements:changed\",t)}},methods:{onCancel(){this.show=!1,this.$emit(\"cancel\")},onSubmit(t){this.show=!1,this.$emit(\"submit\",t)},onProviderSelect(t){this.selectedProvider=t,null===t&&null!==this.initialProvider&&this.onCancel()},onBackClicked(){this.$refs.referencePicker.deselectProvider()}}};var dp=n(698),pp={};pp.styleTagTransform=b(),pp.setAttributes=h(),pp.insert=u().bind(null,\"head\"),pp.domAPI=d(),pp.insertStyleElement=C();A()(dp.Z,pp);dp.Z&&dp.Z.locals&&dp.Z.locals;var up=n(6508),mp={};mp.styleTagTransform=b(),mp.setAttributes=h(),mp.insert=u().bind(null,\"head\"),mp.domAPI=d(),mp.insertStyleElement=C();A()(up.Z,mp);up.Z&&up.Z.locals&&up.Z.locals;const hp=E(cp,(function(){var t=this,e=t._self._c;return t.show?e(\"NcModal\",{staticClass:\"reference-picker-modal\",attrs:{size:t.modalSize,\"can-close\":!1},on:{close:t.onCancel}},[e(\"div\",{ref:\"modal_content\",staticClass:\"reference-picker-modal--content\"},[t.showBackButton?e(\"NcButton\",{staticClass:\"back-button\",attrs:{\"aria-label\":t.backButtonTitle,title:t.backButtonTitle},on:{click:t.onBackClicked},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"ArrowLeftIcon\")]},proxy:!0}],null,!1,3001860362)}):t._e(),t._v(\" \"),e(\"NcButton\",{staticClass:\"close-button\",attrs:{\"aria-label\":t.closeButtonLabel,title:t.closeButtonTitle},on:{click:t.onCancel},scopedSlots:t._u([{key:\"icon\",fn:function(){return[e(\"CloseIcon\")]},proxy:!0}],null,!1,2491825086)}),t._v(\" \"),t.showModalTitle?e(\"h2\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.modalTitle)+\"\\n\\t\\t\")]):t._e(),t._v(\" \"),e(\"NcReferencePicker\",{ref:\"referencePicker\",attrs:{\"initial-provider\":t.initialProvider,\"focus-on-create\":t.focusOnCreate},on:{\"provider-selected\":t.onProviderSelect,submit:t.onSubmit,cancel:t.onCancel}})],1)]):t._e()}),[],!1,null,\"1f66021a\",null).exports;const gp=yd,Cp=require(\"tributejs/dist/tribute.esm.js\");var Tp=n.n(Cp);const bp=require(\"string-length\");var vp=n.n(bp);const fp={name:\"NcRichContenteditable\",directives:{tooltip:Oa},mixins:[De],props:{value:{type:String,default:\"\",required:!0},placeholder:{type:String,default:tt(\"Write a message …\")},autoComplete:{type:Function,default:()=>[]},menuContainer:{type:Element,default:()=>document.body},multiline:{type:Boolean,default:!1},contenteditable:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},maxlength:{type:Number,default:null},emojiAutocomplete:{type:Boolean,default:!0},linkAutocomplete:{type:Boolean,default:!0}},emits:[\"submit\",\"paste\",\"update:value\"],data(){return{textSmiles:[],tribute:null,autocompleteOptions:{allowSpaces:!0,fillAttr:\"id\",lookup:t=>\"\".concat(t.id,\" \").concat(t.label),menuContainer:this.menuContainer,menuItemTemplate:t=>this.renderComponentHtml(t.original,$c),noMatchTemplate:()=>'<span class=\"hidden\"></span>',selectTemplate:t=>{var e;return this.genSelectTemplate(null==t||null===(e=t.original)||void 0===e?void 0:e.id)},values:this.debouncedAutoComplete},emojiOptions:{trigger:\":\",lookup:(t,e)=>e,menuContainer:this.menuContainer,menuItemTemplate:t=>this.textSmiles.includes(t.original)?t.original:'<span class=\"tribute-container-emoji__item__emoji\">'.concat(t.original.native,\"</span> :\").concat(t.original.short_name),noMatchTemplate:()=>tt(\"No emoji found\"),selectTemplate:t=>this.textSmiles.includes(t.original)?t.original:(Uc(t.original),t.original.native),values:(t,e)=>{const n=jc(t);this.textSmiles.includes(\":\"+t)&&n.unshift(\":\"+t),e(n)},containerClass:\"tribute-container-emoji\",itemClass:\"tribute-container-emoji__item\"},linkOptions:{trigger:\"/\",lookup:(t,e)=>e,menuContainer:this.menuContainer,menuItemTemplate:t=>'<img class=\"tribute-container-link__item__icon\" src=\"'.concat(t.original.icon_url,'\"> <span class=\"tribute-container-link__item__label\">').concat(t.original.title,\"</span>\"),noMatchTemplate:()=>tt(\"No link provider found\"),selectTemplate:this.getLink,values:(t,e)=>e(Zd(t)),containerClass:\"tribute-container-link\",itemClass:\"tribute-container-link__item\"},localValue:this.value,isComposing:!1}},computed:{isEmptyValue(){return!this.localValue||this.localValue&&\"\"===this.localValue.trim()},isFF:()=>!!navigator.userAgent.match(/firefox/i),isOverMaxlength(){return!(this.isEmptyValue||!this.maxlength)&&vp()(this.localValue)>this.maxlength},tooltipString(){return this.isOverMaxlength?{content:tt(\"Message limit of {count} characters reached\",{count:this.maxlength}),shown:!0,trigger:\"manual\"}:null},canEdit(){return this.contenteditable&&!this.disabled},listeners(){const t={...this.$listeners};return delete t.paste,t}},watch:{value(){const t=this.$refs.contenteditable.innerHTML;this.value.trim()!==this.parseContent(t).trim()&&this.updateContent(this.value)}},mounted(){this.textSmiles=[],[\"d\",\"D\",\"p\",\"P\",\"s\",\"S\",\"x\",\"X\",\")\",\"(\",\"|\",\"/\"].forEach((t=>{this.textSmiles.push(\":\"+t),this.textSmiles.push(\":-\"+t)})),this.autocompleteTribute=new(Tp())(this.autocompleteOptions),this.autocompleteTribute.attach(this.$el),this.emojiAutocomplete&&(this.emojiTribute=new(Tp())(this.emojiOptions),this.emojiTribute.attach(this.$el)),this.linkAutocomplete&&(this.linkTribute=new(Tp())(this.linkOptions),this.linkTribute.attach(this.$el)),this.updateContent(this.value),this.$refs.contenteditable.contentEditable=this.canEdit},beforeDestroy(){this.autocompleteTribute&&this.autocompleteTribute.detach(this.$el),this.emojiTribute&&this.emojiTribute.detach(this.$el),this.linkTribute&&this.linkTribute.detach(this.$el)},methods:{focus(){this.$refs.contenteditable.focus()},getLink(t){return async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return await new Promise(((i,a)=>{var r;const o=document.createElement(\"div\");o.id=\"referencePickerModal\",document.body.append(o);const s=null===t?null:null!==(r=Bd(t))&&void 0!==r?r:null,l=new(e().extend(hp))({propsData:{initialProvider:s,isInsideViewer:n}}).$mount(o);l.$on(\"cancel\",(()=>{l.$destroy(),a(new Error(\"User cancellation\"))})),l.$on(\"submit\",(t=>{l.$destroy(),i(t)}))}))}(t.original.id).then((t=>{const e=document.getElementById(\"tmp-link-result-node\"),n=document.createTextNode(t);e.replaceWith(n),this.setCursorAfter(n),this.updateValue(this.$refs.contenteditable.innerHTML)})).catch((t=>{console.debug(\"Smart picker promise rejected:\",t);const e=document.getElementById(\"tmp-link-result-node\");this.setCursorAfter(e),e.remove()})),'<span id=\"tmp-link-result-node\"></span>'},setCursorAfter(t){const e=document.createRange();e.setEndAfter(t),e.collapse();const n=window.getSelection();n.removeAllRanges(),n.addRange(e)},onInput(t){this.updateValue(t.target.innerHTML)},onPaste(t){if(!this.canEdit)return;t.preventDefault();const e=t.clipboardData;if(this.$emit(\"paste\",t),0!==e.files.length||!Object.values(e.items).find((t=>null==t?void 0:t.type.startsWith(\"text\"))))return;const n=e.getData(\"text\"),i=window.getSelection();if(!i.rangeCount)return void this.updateValue(n);const a=i.getRangeAt(0);i.deleteFromDocument(),a.insertNode(document.createTextNode(n));const r=document.createRange();r.setStart(t.target,a.endOffset),r.collapse(!0),i.removeAllRanges(),i.addRange(r),this.updateValue(this.$refs.contenteditable.innerHTML)},updateValue(t){const e=this.parseContent(t);this.localValue=e,this.$emit(\"update:value\",e)},updateContent(t){const e=this.renderContent(t);this.$refs.contenteditable.innerHTML=e,this.localValue=t},onDelete(t){if(!this.isFF||!window.getSelection)return;if(!this.canEdit)return;const e=window.getSelection(),n=t.target;if(!e.isCollapsed||!e.rangeCount)return;const i=e.getRangeAt(e.rangeCount-1);if(3===i.commonAncestorContainer.nodeType&&i.startOffset>0)return;const a=document.createRange();if(e.anchorNode!==n)a.selectNodeContents(n),a.setEndBefore(e.anchorNode);else{if(!(e.anchorOffset>0))return;a.setEnd(n,e.anchorOffset)}a.setStart(n,a.endOffset-1);const r=a.cloneContents().lastChild;r&&\"false\"===r.contentEditable&&(a.deleteContents(),t.preventDefault())},onEnter(t){this.multiline||this.isOverMaxlength||this.autocompleteTribute.isActive||this.emojiTribute.isActive||this.linkTribute.isActive||this.isComposing||(t.preventDefault(),t.stopPropagation(),this.$emit(\"submit\",t))},onCtrlEnter(t){this.isOverMaxlength||this.$emit(\"submit\",t)},debouncedAutoComplete:vi()((async function(t,e){this.autoComplete(t,e)}),100),onKeyUp(t){t.stopImmediatePropagation()}}};var Ep=n(9773),xp={};xp.styleTagTransform=b(),xp.setAttributes=h(),xp.insert=u().bind(null,\"head\"),xp.domAPI=d(),xp.insertStyleElement=C();A()(Ep.Z,xp);Ep.Z&&Ep.Z.locals&&Ep.Z.locals;var yp=n(2929),Sp={};Sp.styleTagTransform=b(),Sp.setAttributes=h(),Sp.insert=u().bind(null,\"head\"),Sp.domAPI=d(),Sp.insertStyleElement=C();A()(yp.Z,Sp);yp.Z&&yp.Z.locals&&yp.Z.locals;var Dp=n(2272),kp=n.n(Dp),wp=E(fp,(function(){var t=this;return(0,t._self._c)(\"div\",t._g({directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:t.tooltipString,expression:\"tooltipString\"}],ref:\"contenteditable\",staticClass:\"rich-contenteditable__input\",class:{\"rich-contenteditable__input--empty\":t.isEmptyValue,\"rich-contenteditable__input--multiline\":t.multiline,\"rich-contenteditable__input--overflow\":t.isOverMaxlength,\"rich-contenteditable__input--disabled\":t.disabled},attrs:{contenteditable:t.canEdit,placeholder:t.placeholder,\"aria-placeholder\":t.placeholder,\"aria-multiline\":\"true\",role:\"textbox\"},on:{input:t.onInput,compositionstart:function(e){t.isComposing=!0},compositionend:function(e){t.isComposing=!1},keydown:[function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"delete\",[8,46],e.key,[\"Backspace\",\"Delete\",\"Del\"])?null:t.onDelete.apply(null,arguments)},function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:t.onEnter.apply(null,arguments)},function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")?null:e.ctrlKey?e.shiftKey||e.altKey||e.metaKey?null:(e.stopPropagation(),e.preventDefault(),t.onCtrlEnter.apply(null,arguments)):null}],paste:t.onPaste,\"!keyup\":function(e){return e.stopPropagation(),e.preventDefault(),t.onKeyUp.apply(null,arguments)}}},t.listeners))}),[],!1,null,\"7dd318b8\",null);\"function\"==typeof kp()&&kp()(wp);const Np=wp.exports;const Fp=(0,t.defineComponent)({name:\"NcSavingIndicatorIcon\",props:{size:{type:Number,default:20},title:{type:String,default:\"\"},saving:{type:Boolean,default:!1,required:!1},error:{type:Boolean,default:!1,required:!1}},emits:[\"click\"],computed:{indicatorColor(){return this.error?\"var(--color-error)\":this.saving?\"var(--color-primary-element)\":\"none\"}}});var Rp=n(9454),Bp=n.n(Rp),_p=E(Fp,(function(){var t=this,e=t._self._c;t._self._setupProxy;return e(\"span\",{staticClass:\"material-design-icon\",attrs:{\"aria-label\":t.title,role:\"img\"},on:{click:function(e){return t.$emit(\"click\",e)}}},[e(\"svg\",{staticClass:\"material-design-icon__svg\",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:\"0 0 24 24\"}},[e(\"path\",{attrs:{fill:t.indicatorColor,d:\"m19 15a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4z\"}}),t._v(\" \"),e(\"path\",{attrs:{fill:\"currentColor\",d:\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"}},[t.title?e(\"title\",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null);\"function\"==typeof Bp()&&Bp()(_p);const Op=_p.exports;const Zp=t=>{let e={};if(1===t.nodeType){if(t.attributes.length>0){e[\"@attributes\"]={};for(let n=0;n<t.attributes.length;n++){const i=t.attributes.item(n);e[\"@attributes\"][i.nodeName]=i.nodeValue}}}else 3===t.nodeType&&(e=t.nodeValue);if(t.hasChildNodes())for(let n=0;n<t.childNodes.length;n++){const i=t.childNodes.item(n),a=i.nodeName;if(void 0===e[a])e[a]=Zp(i);else{if(void 0===e[a].push){const t=e[a];e[a]=[],e[a].push(t)}e[a].push(Zp(i))}}return e},Mp=t=>{const e=Zp((t=>{let e=null;try{e=(new DOMParser).parseFromString(t,\"text/xml\")}catch(t){console.error(\"Failed to parse xml document\",t)}return e})(t)),n=e[\"d:multistatus\"][\"d:response\"],i=[];for(const t in n){const e=n[t][\"d:propstat\"];\"HTTP/1.1 200 OK\"===e[\"d:status\"][\"#text\"]&&i.push({id:parseInt(e[\"d:prop\"][\"oc:id\"][\"#text\"]),displayName:e[\"d:prop\"][\"oc:display-name\"][\"#text\"],canAssign:\"true\"===e[\"d:prop\"][\"oc:can-assign\"][\"#text\"],userAssignable:\"true\"===e[\"d:prop\"][\"oc:user-assignable\"][\"#text\"],userVisible:\"true\"===e[\"d:prop\"][\"oc:user-visible\"][\"#text\"]})}return i},Yp={name:\"NcSelectTags\",components:{NcEllipsisedOption:xt,NcSelect:Cn},props:{...Cn.props,fetchTags:{type:Boolean,default:!0},getOptionLabel:{type:Function,default:t=>{const{displayName:e,userVisible:n,userAssignable:i}=t;return!1===n?tt(\"{tag} (invisible)\",{tag:e}):!1===i?tt(\"{tag} (restricted)\",{tag:e}):e}},limit:{type:Number,default:5},multiple:{type:Boolean,default:!0},optionsFilter:{type:Function,default:null},passthru:{type:Boolean,default:!1},placeholder:{type:String,default:tt(\"Select a tag\")},value:{type:[Number,Array],default:null},\" \":{}},emits:[\"input\",\" \"],data:()=>({search:\"\",availableTags:[]}),computed:{availableOptions(){return this.optionsFilter?this.tags.filter(this.optionsFilter):this.tags},localValue(){return 0===this.tags.length?[]:this.multiple?this.value.filter((t=>\"\"!==t)).map((t=>this.tags.find((e=>e.id===t)))):this.tags.find((t=>t.id===this.value))},propsToForward(){const{fetchTags:t,optionsFilter:e,passthru:n,...i}=this.$props;return i},tags(){return this.fetchTags?this.availableTags:this.options}},async created(){if(this.fetchTags)try{const t=await async function(){if(window.NextcloudVueDocs)return Promise.resolve(Mp(window.NextcloudVueDocs.tags));const t=await Ne()({method:\"PROPFIND\",url:(0,ce.generateRemoteUrl)(\"dav\")+\"/systemtags/\",data:'<?xml version=\"1.0\"?>\\n\\t\\t\\t\\t\\t<d:propfind xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\\n\\t\\t\\t\\t\\t <d:prop>\\n\\t\\t\\t\\t\\t\\t<oc:id />\\n\\t\\t\\t\\t\\t\\t<oc:display-name />\\n\\t\\t\\t\\t\\t\\t<oc:user-visible />\\n\\t\\t\\t\\t\\t\\t<oc:user-assignable />\\n\\t\\t\\t\\t\\t\\t<oc:can-assign />\\n\\t\\t\\t\\t\\t </d:prop>\\n\\t\\t\\t\\t\\t</d:propfind>'});return Mp(t.data)}();this.availableTags=t}catch(t){console.error(\"Loading systemtags failed\",t)}},methods:{handleInput(t){this.multiple?this.$emit(\"input\",t.map((t=>t.id))):null===t?this.$emit(\"input\",null):this.$emit(\"input\",t.id)}}};var Ip=n(4076),Gp=n.n(Ip),Lp=E(Yp,(function(){var t=this,e=t._self._c;return e(\"NcSelect\",t._g(t._b({attrs:{options:t.availableOptions,\"close-on-select\":!t.multiple,value:t.passthru?t.value:t.localValue},on:{search:e=>t.search=e},scopedSlots:t._u([{key:\"option\",fn:function(n){return[e(\"NcEllipsisedOption\",{attrs:{name:t.getOptionLabel(n),search:t.search}})]}},{key:\"selected-option\",fn:function(n){return[e(\"NcEllipsisedOption\",{attrs:{name:t.getOptionLabel(n),search:t.search}})]}},t._l(t.$scopedSlots,(function(e,n){return{key:n,fn:function(e){return[t._t(n,null,null,e)]}}}))],null,!0)},\"NcSelect\",t.propsToForward,!1),{...t.$listeners,input:t.passthru?t.$listeners.input:t.handleInput}))}),[],!1,null,null,null);\"function\"==typeof Gp()&&Gp()(Lp);const $p=Lp.exports;const jp=require(\"vue-material-design-icons/HelpCircle.vue\");const Up={name:\"NcSettingsSection\",components:{HelpCircle:n.n(jp)()},props:{title:{type:String,required:!0},description:{type:String,default:\"\"},docUrl:{type:String,default:\"\"},limitWidth:{type:Boolean,default:!0}},data(){return{docTitleTranslated:tt(\"External documentation for {title}\",{title:this.title})}},computed:{hasDescription(){return this.description.length>0},hasDocUrl(){return this.docUrl.length>0}}};var Pp=n(9957),zp={};zp.styleTagTransform=b(),zp.setAttributes=h(),zp.insert=u().bind(null,\"head\"),zp.domAPI=d(),zp.insertStyleElement=C();A()(Pp.Z,zp);Pp.Z&&Pp.Z.locals&&Pp.Z.locals;var Hp=n(3849),Wp=n.n(Hp),qp=E(Up,(function(){var t=this,e=t._self._c;return e(\"div\",{staticClass:\"settings-section\",class:{\"settings-section--limit-width\":t.limitWidth}},[e(\"h2\",{staticClass:\"settings-section__title\"},[t._v(\"\\n\\t\\t\"+t._s(t.title)+\"\\n\\t\\t\"),t.hasDocUrl?e(\"a\",{staticClass:\"settings-section__info\",attrs:{href:t.docUrl,role:\"note\",\"aria-label\":t.docTitleTranslated,title:t.docTitleTranslated,target:\"_blank\",rel:\"noreferrer nofollow\"}},[e(\"HelpCircle\",{attrs:{size:20}})],1):t._e()]),t._v(\" \"),t.hasDescription?e(\"p\",{staticClass:\"settings-section__desc\"},[t._v(\"\\n\\t\\t\"+t._s(t.description)+\"\\n\\t\")]):t._e(),t._v(\" \"),t._t(\"default\")],2)}),[],!1,null,\"3896af2a\",null);\"function\"==typeof Wp()&&Wp()(qp);const Qp=qp.exports;const Kp=E({name:\"NcUserBubbleDiv\"},(function(){return(0,this._self._c)(\"div\",[this._t(\"trigger\")],2)}),[],!1,null,null,null).exports,Vp={name:\"NcUserBubble\",components:{NcAvatar:ze,NcPopover:Ot,NcUserBubbleDiv:Kp},props:{avatarImage:{type:String,default:void 0},user:{type:String,default:void 0},displayName:{type:String,required:!0},showUserStatus:{type:Boolean,default:!1},url:{type:String,default:void 0,validator:t=>{try{return!!(t=new URL(t))}catch(t){return!1}}},open:{type:Boolean,default:!1},primary:{type:Boolean,default:!1},size:{type:Number,default:20},margin:{type:Number,default:2}},emits:[\"click\",\"update:open\"],computed:{isPopoverComponent(){return this.popoverEmpty?\"NcUserBubbleDiv\":\"NcPopover\"},isAvatarUrl(){if(!this.avatarImage)return!1;try{return!!new URL(this.avatarImage)}catch(t){return!1}},isCustomAvatar(){return!!this.avatarImage},hasUrl(){return this.url&&\"\"!==this.url.trim()},isLinkComponent(){return this.hasUrl?\"a\":\"div\"},popoverEmpty(){return!(\"default\"in this.$slots)},styles(){return{content:{height:this.size+\"px\",lineHeight:this.size+\"px\",borderRadius:this.size/2+\"px\"},avatar:{marginLeft:this.margin+\"px\"}}}},methods:{onOpenChange(t){this.$emit(\"update:open\",t)},onClick(t){this.$emit(\"click\",t)}}};var Jp=n(505),Xp={};Xp.styleTagTransform=b(),Xp.setAttributes=h(),Xp.insert=u().bind(null,\"head\"),Xp.domAPI=d(),Xp.insertStyleElement=C();A()(Jp.Z,Xp);Jp.Z&&Jp.Z.locals&&Jp.Z.locals;var tu=n(3578),eu=n.n(tu),nu=E(Vp,(function(){var t=this,e=t._self._c;return e(t.isPopoverComponent,{tag:\"component\",staticClass:\"user-bubble__wrapper\",attrs:{trigger:\"hover focus\",shown:t.open},on:{\"update:open\":t.onOpenChange},scopedSlots:t._u([{key:\"trigger\",fn:function(){return[e(t.isLinkComponent,{tag:\"component\",staticClass:\"user-bubble__content\",class:t.primary?\"user-bubble__content--primary\":\"\",style:t.styles.content,attrs:{href:t.hasUrl?t.url:null},on:{click:t.onClick}},[e(\"NcAvatar\",t._b({staticClass:\"user-bubble__avatar\",style:t.styles.avatar,attrs:{url:t.isCustomAvatar&&t.isAvatarUrl?t.avatarImage:void 0,\"icon-class\":t.isCustomAvatar&&!t.isAvatarUrl?t.avatarImage:void 0,user:t.user,\"display-name\":t.displayName,size:t.size-2*t.margin,\"disable-tooltip\":!0,\"disable-menu\":!0}},\"NcAvatar\",t.$props,!1)),t._v(\" \"),e(\"span\",{staticClass:\"user-bubble__title\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.displayName||t.user)+\"\\n\\t\\t\\t\")]),t._v(\" \"),t.$slots.title?e(\"span\",{staticClass:\"user-bubble__secondary\"},[t._t(\"title\")],2):t._e()],1)]},proxy:!0}],null,!0)},[t._v(\" \"),t._t(\"default\")],2)}),[],!1,null,\"4c7cf49f\",null);\"function\"==typeof eu()&&eu()(nu);const iu=nu.exports,au=t=>\"click\"===t.type||\"keydown\"===t.type&&\"Enter\"===t.key})();var a=i.TO,r=i.zR,o=i.Js,s=i.xQ,l=i.uy,A=i.Bt,c=i.Iw,d=i.ih,p=i.Iz,u=i.xU,m=i.rr,h=i.L1,g=i.L_,C=i.O3,T=i.Mb,b=i.ZJ,v=i.Yx,f=i.yS,E=i.ZL,x=i._I,y=i.eq,S=i.tn,D=i.hX,k=i.zQ,w=i.AR,N=i.NI,F=i.MX,R=i.V$,B=i.Xu,_=i.j1,O=i.Mv,Z=i.Xn,M=i.$U,Y=i.fg,I=i.P2,G=i.rw,L=i.m,$=i.qF,j=i.JN,U=i.YJ,P=i._2,z=i.kC,H=i.P4,W=i.Xo,q=i.SL,Q=i.I6,K=i.ar,V=i.nR,J=i.FK,X=i.hx,tt=i.Ic,et=i.lb,nt=i.lQ,it=i.Jc,at=i.Z2,rt=i.qH,ot=i.qf,st=i.pS,lt=i.Fh,At=i.Rs,ct=i.Tz,dt=i.wQ,pt=i.Xj,ut=i.rE,mt=i.id,ht=i.QG,gt=i.iR,Ct=i.gE,Tt=i.h3,bt=i.cY,vt=i.uq,ft=i.u,Et=i.BW,xt=i.Ry,yt=i.Kn,St=i.gP,Dt=i.rm,kt=i.tq,wt=i.bf,Nt=i.iQ,Ft=i.s9;export{a as Focus,r as Linkify,o as NcActionButton,s as NcActionButtonGroup,l as NcActionCaption,A as NcActionCheckbox,c as NcActionInput,d as NcActionLink,p as NcActionRadio,u as NcActionRouter,m as NcActionSeparator,h as NcActionText,g as NcActionTextEditable,C as NcActions,T as NcAppContent,b as NcAppContentDetails,v as NcAppContentList,f as NcAppNavigation,E as NcAppNavigationCaption,x as NcAppNavigationCounter,y as NcAppNavigationIconBullet,S as NcAppNavigationItem,D as NcAppNavigationNew,k as NcAppNavigationNewItem,w as NcAppNavigationSettings,N as NcAppNavigationSpacer,F as NcAppSettingsDialog,R as NcAppSettingsSection,B as NcAppSidebar,_ as NcAppSidebarTab,O as NcAutoCompleteResult,Z as NcAvatar,M as NcBreadcrumb,Y as NcBreadcrumbs,I as NcButton,G as NcCheckboxRadioSwitch,L as NcColorPicker,$ as NcContent,j as NcCounterBubble,U as NcDashboardWidget,P as NcDashboardWidgetItem,z as NcDateTimePickerNative,H as NcDatetimePicker,W as NcEmojiPicker,q as NcEmptyContent,Q as NcGuestContent,K as NcHeaderMenu,V as NcHighlight,J as NcIconSvgWrapper,X as NcListItem,tt as NcListItemIcon,et as NcLoadingIcon,nt as NcMentionBubble,it as NcModal,at as NcMultiselect,rt as NcMultiselectTags,ot as NcNoteCard,st as NcPasswordField,lt as NcPopover,At as NcPopoverMenu,ct as NcProgressBar,dt as NcRelatedResourcesPanel,pt as NcRichContenteditable,ut as NcRichText,mt as NcSavingIndicatorIcon,ht as NcSelect,gt as NcSelectTags,Ct as NcSettingsSection,Tt as NcTextField,bt as NcTimezonePicker,vt as NcUserBubble,ft as Tooltip,Et as clickOutsideOptions,xt as emojiAddRecent,yt as emojiSearch,St as isA11yActivation,Dt as isFullscreen,kt as isMobile,wt as richEditor,Nt as userStatus,Ft as usernameToColor};\n//# sourceMappingURL=index.module.js.map","(function(){\"use strict\";try{if(typeof document<\"u\"){var t=document.createElement(\"style\");t.appendChild(document.createTextNode(\".fade-enter-active[data-v-6d9f3f05],.fade-leave-active[data-v-6d9f3f05]{transition:opacity .3s ease}.fade-enter[data-v-6d9f3f05],.fade-leave-to[data-v-6d9f3f05]{opacity:0}.linked-icons[data-v-6d9f3f05]{display:flex}.linked-icons img[data-v-6d9f3f05]{padding:12px;height:44px;display:block;background-repeat:no-repeat;background-position:center;opacity:.7}.linked-icons img[data-v-6d9f3f05]:hover{opacity:1}.popovermenu[data-v-6d9f3f05]{display:none}.popovermenu.open[data-v-6d9f3f05]{display:block}li.collection-list-item[data-v-6d9f3f05]{flex-wrap:wrap;height:auto;cursor:pointer;margin-bottom:0!important}li.collection-list-item .collection-avatar[data-v-6d9f3f05]{margin-top:6px}li.collection-list-item form[data-v-6d9f3f05],li.collection-list-item .collection-item-name[data-v-6d9f3f05]{flex-basis:10%;flex-grow:1;display:flex}li.collection-list-item .collection-item-name[data-v-6d9f3f05]{padding:12px 9px}li.collection-list-item input[type=text][data-v-6d9f3f05]{margin-top:4px;flex-grow:1}li.collection-list-item .error[data-v-6d9f3f05],li.collection-list-item .resource-list-details[data-v-6d9f3f05]{flex-basis:100%;width:100%}li.collection-list-item .resource-list-details li[data-v-6d9f3f05]{display:flex;margin-left:44px;border-radius:3px;cursor:pointer}li.collection-list-item .resource-list-details li[data-v-6d9f3f05]:hover{background-color:var(--color-background-dark)}li.collection-list-item .resource-list-details li a[data-v-6d9f3f05]{flex-grow:1;padding:3px;max-width:calc(100% - 30px);display:flex}li.collection-list-item .resource-list-details span[data-v-6d9f3f05]{display:inline-block;vertical-align:top;margin-right:10px}li.collection-list-item .resource-list-details span.resource-name[data-v-6d9f3f05]{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top;white-space:nowrap;flex-grow:1;padding:4px}li.collection-list-item .resource-list-details img[data-v-6d9f3f05]{width:24px;height:24px}li.collection-list-item .resource-list-details .icon-close[data-v-6d9f3f05]{opacity:.7}li.collection-list-item .resource-list-details .icon-close[data-v-6d9f3f05]:hover,li.collection-list-item .resource-list-details .icon-close[data-v-6d9f3f05]:focus{opacity:1}.shouldshake[data-v-6d9f3f05]{animation:shake-6d9f3f05 .6s 1 linear}@keyframes shake-6d9f3f05{0%{transform:translate(15px)}20%{transform:translate(-15px)}40%{transform:translate(7px)}60%{transform:translate(-7px)}80%{transform:translate(3px)}to{transform:translate(0)}}.collection-list *[data-v-14902e5b]{box-sizing:border-box}.collection-list>li[data-v-14902e5b]{display:flex;align-items:start}.collection-list>li>.avatar[data-v-14902e5b]{margin-top:5px}#collection-select-container[data-v-14902e5b]{display:flex;flex-direction:column;margin-top:-5px}.multiselect[data-v-14902e5b]{z-index:2;width:100%;margin-left:3px;background-color:transparent}.multiselect[data-v-14902e5b]:not(.multiselect--active) .multiselect__tags{border:none!important}.multiselect[data-v-14902e5b]:not(.multiselect--active) .multiselect__tags input::placeholder{color:var(--color-main-text)}.multiselect[data-v-14902e5b] .multiselect__input{background-color:transparent}.multiselect span.avatar[data-v-14902e5b]{display:block;padding:16px;opacity:.7;background-repeat:no-repeat;background-position:center}.multiselect span.avatar[data-v-14902e5b]:hover{opacity:1}.multiselect.multiselect--active+p.hint[data-v-14902e5b]{opacity:0}p.hint[data-v-14902e5b]{z-index:1;margin-top:-16px;padding:8px;color:var(--color-text-maxcontrast);line-height:normal}div.avatar[data-v-14902e5b]{width:32px;height:32px;margin:30px 0 0;padding:8px;background-color:var(--color-background-dark)}.icon-projects[data-v-14902e5b]{display:block;padding:8px;background-repeat:no-repeat;background-position:center}.option__wrapper[data-v-14902e5b]{display:flex}.option__wrapper .avatar[data-v-14902e5b]{display:block;background-color:var(--color-background-darker)!important}.option__wrapper .option__title[data-v-14902e5b]{padding:4px}.fade-enter-active[data-v-14902e5b],.fade-leave-active[data-v-14902e5b]{transition:opacity .5s}.fade-enter[data-v-14902e5b],.fade-leave-to[data-v-14902e5b]{opacity:0}\")),document.head.appendChild(t)}}catch(a){console.error(\"vite-plugin-css-injected-by-js\",a)}})();\nimport R, { set as X } from \"vue\";\nimport { NcAvatar as F, NcActions as z, NcActionButton as q, NcMultiselect as J } from \"@nextcloud/vue\";\nimport K from \"@nextcloud/axios\";\nimport { generateOcsUrl as C } from \"@nextcloud/router\";\nfunction k(n) {\n var e = typeof n;\n return n != null && (e == \"object\" || e == \"function\");\n}\nvar Q = typeof global == \"object\" && global && global.Object === Object && global;\nconst Y = Q;\nvar Z = typeof self == \"object\" && self && self.Object === Object && self, ee = Y || Z || Function(\"return this\")();\nconst M = ee;\nvar te = function() {\n return M.Date.now();\n};\nconst j = te;\nvar ne = /\\s/;\nfunction oe(n) {\n for (var e = n.length; e-- && ne.test(n.charAt(e)); )\n ;\n return e;\n}\nvar re = /^\\s+/;\nfunction ie(n) {\n return n && n.slice(0, oe(n) + 1).replace(re, \"\");\n}\nvar se = M.Symbol;\nconst N = se;\nvar P = Object.prototype, le = P.hasOwnProperty, ce = P.toString, T = N ? N.toStringTag : void 0;\nfunction ae(n) {\n var e = le.call(n, T), o = n[T];\n try {\n n[T] = void 0;\n var r = !0;\n } catch {\n }\n var i = ce.call(n);\n return r && (e ? n[T] = o : delete n[T]), i;\n}\nvar ue = Object.prototype, de = ue.toString;\nfunction fe(n) {\n return de.call(n);\n}\nvar pe = \"[object Null]\", he = \"[object Undefined]\", L = N ? N.toStringTag : void 0;\nfunction me(n) {\n return n == null ? n === void 0 ? he : pe : L && L in Object(n) ? ae(n) : fe(n);\n}\nfunction _e(n) {\n return n != null && typeof n == \"object\";\n}\nvar Ce = \"[object Symbol]\";\nfunction ve(n) {\n return typeof n == \"symbol\" || _e(n) && me(n) == Ce;\n}\nvar x = 0 / 0, ye = /^[-+]0x[0-9a-f]+$/i, ge = /^0b[01]+$/i, be = /^0o[0-7]+$/i, Te = parseInt;\nfunction B(n) {\n if (typeof n == \"number\")\n return n;\n if (ve(n))\n return x;\n if (k(n)) {\n var e = typeof n.valueOf == \"function\" ? n.valueOf() : n;\n n = k(e) ? e + \"\" : e;\n }\n if (typeof n != \"string\")\n return n === 0 ? n : +n;\n n = ie(n);\n var o = ge.test(n);\n return o || be.test(n) ? Te(n.slice(2), o ? 2 : 8) : ye.test(n) ? x : +n;\n}\nvar Ie = \"Expected a function\", Oe = Math.max, we = Math.min;\nfunction Re(n, e, o) {\n var r, i, d, p, c, s, a = 0, I = !1, h = !1, u = !0;\n if (typeof n != \"function\")\n throw new TypeError(Ie);\n e = B(e) || 0, k(o) && (I = !!o.leading, h = \"maxWait\" in o, d = h ? Oe(B(o.maxWait) || 0, e) : d, u = \"trailing\" in o ? !!o.trailing : u);\n function g(l) {\n var m = r, b = i;\n return r = i = void 0, a = l, p = n.apply(b, m), p;\n }\n function O(l) {\n return a = l, c = setTimeout(w, e), I ? g(l) : p;\n }\n function H(l) {\n var m = l - s, b = l - a, A = e - m;\n return h ? we(A, d - b) : A;\n }\n function $(l) {\n var m = l - s, b = l - a;\n return s === void 0 || m >= e || m < 0 || h && b >= d;\n }\n function w() {\n var l = j();\n if ($(l))\n return E(l);\n c = setTimeout(w, H(l));\n }\n function E(l) {\n return c = void 0, u && r ? g(l) : (r = i = void 0, p);\n }\n function V() {\n c !== void 0 && clearTimeout(c), a = 0, r = s = i = c = void 0;\n }\n function G() {\n return c === void 0 ? p : E(j());\n }\n function S() {\n var l = j(), m = $(l);\n if (r = arguments, i = this, s = l, m) {\n if (c === void 0)\n return O(s);\n if (h)\n return clearTimeout(c), c = setTimeout(w, e), g(s);\n }\n return c === void 0 && (c = setTimeout(w, e)), p;\n }\n return S.cancel = V, S.flush = G, S;\n}\n/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Ne {\n constructor() {\n this.http = K;\n }\n listCollection(e) {\n return this.http.get(C(\"collaboration/resources/collections/{collectionId}\", { collectionId: e }));\n }\n renameCollection(e, o) {\n return this.http.put(C(\"collaboration/resources/collections/{collectionId}\", { collectionId: e }), {\n collectionName: o\n }).then((r) => r.data.ocs.data);\n }\n getCollectionsByResource(e, o) {\n return this.http.get(C(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType: e, resourceId: o })).then((r) => r.data.ocs.data);\n }\n createCollection(e, o, r) {\n return this.http.post(C(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType: e, resourceId: o }), {\n name: r\n }).then((i) => i.data.ocs.data);\n }\n addResource(e, o, r) {\n return r = \"\" + r, this.http.post(C(\"collaboration/resources/collections/{collectionId}\", { collectionId: e }), {\n resourceType: o,\n resourceId: r\n }).then((i) => i.data.ocs.data);\n }\n removeResource(e, o, r) {\n return this.http.delete(C(\"collaboration/resources/collections/{collectionId}\", { collectionId: e }), { params: { resourceType: o, resourceId: r } }).then((i) => i.data.ocs.data);\n }\n search(e) {\n return this.http.get(C(\"collaboration/resources/collections/search/{query}\", { query: e })).then((o) => o.data.ocs.data);\n }\n}\nconst v = new Ne();\n/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst _ = R.observable({\n collections: []\n}), y = {\n addCollections(n) {\n R.set(_, \"collections\", n);\n },\n addCollection(n) {\n _.collections.push(n);\n },\n removeCollection(n) {\n R.set(_, \"collections\", _.collections.filter((e) => e.id !== n));\n },\n updateCollection(n) {\n const e = _.collections.findIndex((o) => o.id === n.id);\n e !== -1 ? R.set(_.collections, e, n) : _.collections.push(n);\n }\n}, f = {\n fetchCollectionsByResource({ resourceType: n, resourceId: e }) {\n return v.getCollectionsByResource(n, e).then((o) => (y.addCollections(o), o));\n },\n createCollection({ baseResourceType: n, baseResourceId: e, resourceType: o, resourceId: r, name: i }) {\n return v.createCollection(n, e, i).then((d) => {\n y.addCollection(d), f.addResourceToCollection({\n collectionId: d.id,\n resourceType: o,\n resourceId: r\n });\n });\n },\n renameCollection({ collectionId: n, name: e }) {\n return v.renameCollection(n, e).then((o) => (y.updateCollection(o), o));\n },\n addResourceToCollection({ collectionId: n, resourceType: e, resourceId: o }) {\n return v.addResource(n, e, o).then((r) => (y.updateCollection(r), r));\n },\n removeResource({ collectionId: n, resourceType: e, resourceId: o }) {\n return v.removeResource(n, e, o).then((r) => {\n r.resources.length > 0 ? y.updateCollection(r) : y.removeCollection(r);\n });\n },\n search(n) {\n return v.search(n);\n }\n};\nfunction W(n, e, o, r, i, d, p, c) {\n var s = typeof n == \"function\" ? n.options : n;\n e && (s.render = e, s.staticRenderFns = o, s._compiled = !0), r && (s.functional = !0), d && (s._scopeId = \"data-v-\" + d);\n var a;\n if (p ? (a = function(u) {\n u = u || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !u && typeof __VUE_SSR_CONTEXT__ < \"u\" && (u = __VUE_SSR_CONTEXT__), i && i.call(this, u), u && u._registeredComponents && u._registeredComponents.add(p);\n }, s._ssrRegister = a) : i && (a = c ? function() {\n i.call(\n this,\n (s.functional ? this.parent : this).$root.$options.shadowRoot\n );\n } : i), a)\n if (s.functional) {\n s._injectStyles = a;\n var I = s.render;\n s.render = function(g, O) {\n return a.call(O), I(g, O);\n };\n } else {\n var h = s.beforeCreate;\n s.beforeCreate = h ? [].concat(h, a) : [a];\n }\n return {\n exports: n,\n options: s\n };\n}\nconst Se = {\n name: \"CollectionListItem\",\n components: {\n NcAvatar: F,\n NcActions: z,\n NcActionButton: q\n },\n props: {\n collection: {\n type: Object,\n default: null\n }\n },\n data() {\n return {\n detailsOpen: !1,\n newName: null,\n error: {}\n };\n },\n computed: {\n getIcon() {\n return (n) => [n.iconClass];\n },\n typeClass() {\n return (n) => \"resource-type-\" + n.type;\n },\n limitedResources() {\n return (n) => n.resources ? n.resources.slice(0, 2) : [];\n },\n iconUrl() {\n return (n) => n.mimetype ? OC.MimeType.getIconUrl(n.mimetype) : n.iconUrl ? n.iconUrl : \"\";\n }\n },\n methods: {\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = !0;\n },\n hideDetails() {\n this.detailsOpen = !1;\n },\n removeResource(n, e) {\n f.removeResource({\n collectionId: n.id,\n resourceType: e.type,\n resourceId: e.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName === \"\") {\n this.newName = null;\n return;\n }\n f.renameCollection({\n collectionId: this.collection.id,\n name: this.newName\n }).then((n) => {\n this.newName = null;\n }).catch((n) => {\n this.$set(this.error, \"rename\", t(\"core\", \"Failed to rename the project\")), console.error(n), setTimeout(() => {\n X(this.error, \"rename\", null);\n }, 3e3);\n });\n }\n }\n};\nvar je = function() {\n var e = this, o = e._self._c;\n return o(\"li\", { staticClass: \"collection-list-item\" }, [o(\"NcAvatar\", { staticClass: \"collection-avatar\", attrs: { \"display-name\": e.collection.name, \"allow-placeholder\": !0 } }), e.newName === null ? o(\"span\", { staticClass: \"collection-item-name\", attrs: { title: \"\" }, on: { click: e.showDetails } }, [e._v(e._s(e.collection.name))]) : o(\"form\", { class: { shouldshake: e.error.rename }, on: { submit: function(r) {\n return r.preventDefault(), e.renameCollection.apply(null, arguments);\n } } }, [o(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: e.newName, expression: \"newName\" }], attrs: { type: \"text\", autocomplete: \"off\", autocapitalize: \"off\" }, domProps: { value: e.newName }, on: { input: function(r) {\n r.target.composing || (e.newName = r.target.value);\n } } }), o(\"input\", { staticClass: \"icon-confirm\", attrs: { type: \"submit\", value: \"\" } })]), !e.detailsOpen && e.newName === null ? o(\"div\", { staticClass: \"linked-icons\" }, e._l(e.limitedResources(e.collection), function(r) {\n return o(\"a\", { key: r.type + \"|\" + r.id, class: e.typeClass(r), attrs: { title: r.name, href: r.link } }, [o(\"img\", { attrs: { src: e.iconUrl(r) } })]);\n }), 0) : e._e(), e.newName === null ? o(\"span\", { staticClass: \"sharingOptionsGroup\" }, [o(\"NcActions\", [o(\"NcActionButton\", { attrs: { icon: \"icon-info\" }, on: { click: function(r) {\n return r.preventDefault(), e.toggleDetails.apply(null, arguments);\n } } }, [e._v(\" \" + e._s(e.detailsOpen ? e.t(\"core\", \"Hide details\") : e.t(\"core\", \"Show details\")) + \" \")]), o(\"NcActionButton\", { attrs: { icon: \"icon-rename\" }, on: { click: function(r) {\n return r.preventDefault(), e.openRename.apply(null, arguments);\n } } }, [e._v(\" \" + e._s(e.t(\"core\", \"Rename project\")) + \" \")])], 1)], 1) : e._e(), o(\"transition\", { attrs: { name: \"fade\" } }, [e.error.rename ? o(\"div\", { staticClass: \"error\" }, [e._v(\" \" + e._s(e.error.rename) + \" \")]) : e._e()]), o(\"transition\", { attrs: { name: \"fade\" } }, [e.detailsOpen ? o(\"ul\", { staticClass: \"resource-list-details\" }, e._l(e.collection.resources, function(r) {\n return o(\"li\", { key: r.type + \"|\" + r.id, class: e.typeClass(r) }, [o(\"a\", { attrs: { href: r.link } }, [o(\"img\", { attrs: { src: e.iconUrl(r) } }), o(\"span\", { staticClass: \"resource-name\" }, [e._v(e._s(r.name || \"\"))])]), o(\"span\", { staticClass: \"icon-close\", on: { click: function(i) {\n return e.removeResource(e.collection, r);\n } } })]);\n }), 0) : e._e()])], 1);\n}, ke = [], $e = /* @__PURE__ */ W(\n Se,\n je,\n ke,\n !1,\n null,\n \"6d9f3f05\",\n null,\n null\n);\nconst Ee = $e.exports;\nconst D = 0, U = 1, Ae = 2, Le = Re(\n function(n) {\n n !== \"\" && f.search(n).then((e) => {\n this.searchCollections = e;\n }).catch((e) => {\n console.error(\"Failed to search for collections\", e);\n });\n },\n 500,\n {}\n), xe = {\n name: \"CollectionList\",\n components: {\n CollectionListItem: Ee,\n NcAvatar: F,\n NcMultiselect: J\n },\n props: {\n /**\n * Resource type identifier\n */\n type: {\n type: String,\n default: null\n },\n /**\n * Unique id of the resource\n */\n id: {\n type: String,\n default: null\n },\n /**\n * Name of the resource\n */\n name: {\n type: String,\n default: \"\"\n },\n isActive: {\n type: Boolean,\n default: !0\n }\n },\n data() {\n return {\n selectIsOpen: !1,\n generatingCodes: !1,\n codes: void 0,\n value: null,\n model: {},\n searchCollections: [],\n error: null,\n state: _\n };\n },\n computed: {\n collections() {\n return this.state.collections.filter((n) => typeof n.resources.find((e) => e && e.id === \"\" + this.id && e.type === this.type) < \"u\");\n },\n placeholder() {\n return t(\"core\", \"Add to a project\");\n },\n options() {\n const n = [];\n window.OCP.Collaboration.getTypes().sort().forEach((e) => {\n n.push({\n method: D,\n type: e,\n title: window.OCP.Collaboration.getLabel(e),\n class: window.OCP.Collaboration.getIcon(e),\n action: () => window.OCP.Collaboration.trigger(e)\n });\n });\n for (const e in this.searchCollections)\n this.collections.findIndex((o) => o.id === this.searchCollections[e].id) === -1 && n.push({\n method: U,\n title: this.searchCollections[e].name,\n collectionId: this.searchCollections[e].id\n });\n return this.searchCollections.length === 0 && n.push({\n method: Ae,\n title: t(\"core\", \"Type to search for existing projects\")\n }), n;\n }\n },\n watch: {\n type() {\n this.isActive && f.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n },\n id() {\n this.isActive && f.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n },\n isActive(n) {\n n && f.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n },\n mounted() {\n f.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n },\n methods: {\n select(n, e) {\n n.method === D && n.action().then((o) => {\n f.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: n.type,\n resourceId: o,\n name: this.name\n }).catch((r) => {\n this.setError(t(\"core\", \"Failed to create a project\"), r);\n });\n }).catch((o) => {\n console.error(\"No resource selected\", o);\n }), n.method === U && f.addResourceToCollection({\n collectionId: n.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((o) => {\n this.setError(t(\"core\", \"Failed to add the item to the project\"), o);\n });\n },\n search(n) {\n Le.bind(this)(n);\n },\n showSelect() {\n this.selectIsOpen = !0, this.$refs.select.$el.focus();\n },\n hideSelect() {\n this.selectIsOpen = !1;\n },\n isVueComponent(n) {\n return n._isVue;\n },\n setError(n, e) {\n console.error(n, e), this.error = n, setTimeout(() => {\n this.error = null;\n }, 5e3);\n }\n }\n};\nvar Be = function() {\n var e = this, o = e._self._c;\n return e.collections && e.type && e.id ? o(\"ul\", { staticClass: \"collection-list\", attrs: { id: \"collection-list\" } }, [o(\"li\", { on: { click: e.showSelect } }, [e._m(0), o(\"div\", { attrs: { id: \"collection-select-container\" } }, [o(\"NcMultiselect\", { ref: \"select\", attrs: { options: e.options, placeholder: e.placeholder, \"tag-placeholder\": \"Create a new project\", label: \"title\", \"track-by\": \"title\", \"reset-after\": !0, limit: 5 }, on: { select: e.select, \"search-change\": e.search }, scopedSlots: e._u([{ key: \"singleLabel\", fn: function(r) {\n return [o(\"span\", { staticClass: \"option__desc\" }, [o(\"span\", { staticClass: \"option__title\" }, [e._v(e._s(r.option.title))])])];\n } }, { key: \"option\", fn: function(r) {\n return [o(\"span\", { staticClass: \"option__wrapper\" }, [r.option.class ? o(\"span\", { staticClass: \"avatar\", class: r.option.class }) : r.option.method !== 2 ? o(\"NcAvatar\", { attrs: { \"display-name\": r.option.title, \"allow-placeholder\": !0 } }) : e._e(), o(\"span\", { staticClass: \"option__title\" }, [e._v(e._s(r.option.title))])], 1)];\n } }], null, !1, 3858171110), model: { value: e.value, callback: function(r) {\n e.value = r;\n }, expression: \"value\" } }, [o(\"p\", { staticClass: \"hint\" }, [e._v(\" \" + e._s(e.t(\"core\", \"Connect items to a project to make them easier to find\")) + \" \")])])], 1)]), o(\"transition\", { attrs: { name: \"fade\" } }, [e.error ? o(\"li\", { staticClass: \"error\" }, [e._v(\" \" + e._s(e.error) + \" \")]) : e._e()]), e._l(e.collections, function(r) {\n return o(\"CollectionListItem\", { key: r.id, attrs: { collection: r } });\n })], 2) : e._e();\n}, De = [function() {\n var n = this, e = n._self._c;\n return e(\"div\", { staticClass: \"avatar\" }, [e(\"span\", { staticClass: \"icon-projects\" })]);\n}], Ue = /* @__PURE__ */ W(\n xe,\n Be,\n De,\n !1,\n null,\n \"14902e5b\",\n null,\n null\n);\nconst He = Ue.exports;\nexport {\n He as CollectionList,\n Ee as CollectionListItem\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author Arthur Schiwon <blizzz@arthur-schiwon.de>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { loadState } from '@nextcloud/initial-state'\nimport { getCapabilities } from '@nextcloud/capabilities'\n\nexport default class Config {\n\n\tconstructor() {\n\t\tthis._shareConfig = loadState('files_sharing', 'shareConfig', {})\n\t}\n\n\t/**\n\t * Is public upload allowed on link shares ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget isPublicUploadEnabled() {\n\t\treturn this._shareConfig.allowPublicUploads\n\t}\n\n\t/**\n\t * Are link share allowed ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget isShareWithLinkAllowed() {\n\t\treturn document.getElementById('allowShareWithLink')\n\t\t\t&& document.getElementById('allowShareWithLink').value === 'yes'\n\t}\n\n\t/**\n\t * Get the federated sharing documentation link\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget federatedShareDocLink() {\n\t\treturn OC.appConfig.core.federatedCloudShareDoc\n\t}\n\n\t/**\n\t * Get the default link share expiration date\n\t *\n\t * @return {Date|null}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget defaultExpirationDate() {\n\t\tif (this.isDefaultExpireDateEnabled) {\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate))\n\t\t}\n\t\treturn null\n\t}\n\n\t/**\n\t * Get the default internal expiration date\n\t *\n\t * @return {Date|null}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget defaultInternalExpirationDate() {\n\t\tif (this.isDefaultInternalExpireDateEnabled) {\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate))\n\t\t}\n\t\treturn null\n\t}\n\n\t/**\n\t * Get the default remote expiration date\n\t *\n\t * @return {Date|null}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget defaultRemoteExpirationDateString() {\n\t\tif (this.isDefaultRemoteExpireDateEnabled) {\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate))\n\t\t}\n\t\treturn null\n\t}\n\n\t/**\n\t * Are link shares password-enforced ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget enforcePasswordForPublicLink() {\n\t\treturn OC.appConfig.core.enforcePasswordForPublicLink === true\n\t}\n\n\t/**\n\t * Is password asked by default on link shares ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget enableLinkPasswordByDefault() {\n\t\treturn OC.appConfig.core.enableLinkPasswordByDefault === true\n\t}\n\n\t/**\n\t * Is link shares expiration enforced ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget isDefaultExpireDateEnforced() {\n\t\treturn OC.appConfig.core.defaultExpireDateEnforced === true\n\t}\n\n\t/**\n\t * Is there a default expiration date for new link shares ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget isDefaultExpireDateEnabled() {\n\t\treturn OC.appConfig.core.defaultExpireDateEnabled === true\n\t}\n\n\t/**\n\t * Is internal shares expiration enforced ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget isDefaultInternalExpireDateEnforced() {\n\t\treturn OC.appConfig.core.defaultInternalExpireDateEnforced === true\n\t}\n\n\t/**\n\t * Is remote shares expiration enforced ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget isDefaultRemoteExpireDateEnforced() {\n\t\treturn OC.appConfig.core.defaultRemoteExpireDateEnforced === true\n\t}\n\n\t/**\n\t * Is there a default expiration date for new internal shares ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget isDefaultInternalExpireDateEnabled() {\n\t\treturn OC.appConfig.core.defaultInternalExpireDateEnabled === true\n\t}\n\n\t/**\n\t * Is there a default expiration date for new remote shares ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget isDefaultRemoteExpireDateEnabled() {\n\t\treturn OC.appConfig.core.defaultRemoteExpireDateEnabled === true\n\t}\n\n\t/**\n\t * Are users on this server allowed to send shares to other servers ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget isRemoteShareAllowed() {\n\t\treturn OC.appConfig.core.remoteShareAllowed === true\n\t}\n\n\t/**\n\t * Is sharing my mail (link share) enabled ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget isMailShareAllowed() {\n\t\tconst capabilities = getCapabilities()\n\t\t// eslint-disable-next-line camelcase\n\t\treturn capabilities?.files_sharing?.sharebymail !== undefined\n\t\t\t// eslint-disable-next-line camelcase\n\t\t\t&& capabilities?.files_sharing?.public?.enabled === true\n\t}\n\n\t/**\n\t * Get the default days to link shares expiration\n\t *\n\t * @return {number}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget defaultExpireDate() {\n\t\treturn OC.appConfig.core.defaultExpireDate\n\t}\n\n\t/**\n\t * Get the default days to internal shares expiration\n\t *\n\t * @return {number}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget defaultInternalExpireDate() {\n\t\treturn OC.appConfig.core.defaultInternalExpireDate\n\t}\n\n\t/**\n\t * Get the default days to remote shares expiration\n\t *\n\t * @return {number}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget defaultRemoteExpireDate() {\n\t\treturn OC.appConfig.core.defaultRemoteExpireDate\n\t}\n\n\t/**\n\t * Is resharing allowed ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget isResharingAllowed() {\n\t\treturn OC.appConfig.core.resharingAllowed === true\n\t}\n\n\t/**\n\t * Is password enforced for mail shares ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget isPasswordForMailSharesRequired() {\n\t\treturn (getCapabilities().files_sharing.sharebymail === undefined) ? false : getCapabilities().files_sharing.sharebymail.password.enforced\n\t}\n\n\t/**\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget shouldAlwaysShowUnique() {\n\t\treturn (getCapabilities().files_sharing?.sharee?.always_show_unique === true)\n\t}\n\n\t/**\n\t * Is sharing with groups allowed ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget allowGroupSharing() {\n\t\treturn OC.appConfig.core.allowGroupSharing === true\n\t}\n\n\t/**\n\t * Get the maximum results of a share search\n\t *\n\t * @return {number}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget maxAutocompleteResults() {\n\t\treturn parseInt(OC.config['sharing.maxAutocompleteResults'], 10) || 25\n\t}\n\n\t/**\n\t * Get the minimal string length\n\t * to initiate a share search\n\t *\n\t * @return {number}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget minSearchStringLength() {\n\t\treturn parseInt(OC.config['sharing.minSearchStringLength'], 10) || 0\n\t}\n\n\t/**\n\t * Get the password policy config\n\t *\n\t * @return {object}\n\t * @readonly\n\t * @memberof Config\n\t */\n\tget passwordPolicy() {\n\t\tconst capabilities = getCapabilities()\n\t\treturn capabilities.password_policy ? capabilities.password_policy : {}\n\t}\n\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author Daniel Calviño Sánchez <danxuliu@gmail.com>\n * @author Gary Kim <gary@garykim.dev>\n * @author Georg Ehrke <oc.list@georgehrke.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default class Share {\n\n\t_share\n\n\t/**\n\t * Create the share object\n\t *\n\t * @param {object} ocsData ocs request response\n\t */\n\tconstructor(ocsData) {\n\t\tif (ocsData.ocs && ocsData.ocs.data && ocsData.ocs.data[0]) {\n\t\t\tocsData = ocsData.ocs.data[0]\n\t\t}\n\n\t\t// convert int into boolean\n\t\tocsData.hide_download = !!ocsData.hide_download\n\t\tocsData.mail_send = !!ocsData.mail_send\n\n\t\tif (ocsData.attributes) {\n\t\t\ttry {\n\t\t\t\tocsData.attributes = JSON.parse(ocsData.attributes)\n\t\t\t} catch (e) {\n\t\t\t\tconsole.warn('Could not parse share attributes returned by server: \"' + ocsData.attributes + '\"')\n\t\t\t}\n\t\t}\n\t\tocsData.attributes = ocsData.attributes ?? []\n\n\t\t// store state\n\t\tthis._share = ocsData\n\t}\n\n\t/**\n\t * Get the share state\n\t * ! used for reactivity purpose\n\t * Do not remove. It allow vuejs to\n\t * inject its watchers into the #share\n\t * state and make the whole class reactive\n\t *\n\t * @return {object} the share raw state\n\t * @readonly\n\t * @memberof Sidebar\n\t */\n\tget state() {\n\t\treturn this._share\n\t}\n\n\t/**\n\t * get the share id\n\t *\n\t * @return {number}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget id() {\n\t\treturn this._share.id\n\t}\n\n\t/**\n\t * Get the share type\n\t *\n\t * @return {number}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget type() {\n\t\treturn this._share.share_type\n\t}\n\n\t/**\n\t * Get the share permissions\n\t * See OC.PERMISSION_* variables\n\t *\n\t * @return {number}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget permissions() {\n\t\treturn this._share.permissions\n\t}\n\n\t/**\n\t * Get the share attributes\n\t *\n\t * @return {Array}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget attributes() {\n\t\treturn this._share.attributes\n\t}\n\n\t/**\n\t * Set the share permissions\n\t * See OC.PERMISSION_* variables\n\t *\n\t * @param {number} permissions valid permission, See OC.PERMISSION_* variables\n\t * @memberof Share\n\t */\n\tset permissions(permissions) {\n\t\tthis._share.permissions = permissions\n\t}\n\n\t// SHARE OWNER --------------------------------------------------\n\t/**\n\t * Get the share owner uid\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget owner() {\n\t\treturn this._share.uid_owner\n\t}\n\n\t/**\n\t * Get the share owner's display name\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget ownerDisplayName() {\n\t\treturn this._share.displayname_owner\n\t}\n\n\t// SHARED WITH --------------------------------------------------\n\t/**\n\t * Get the share with entity uid\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget shareWith() {\n\t\treturn this._share.share_with\n\t}\n\n\t/**\n\t * Get the share with entity display name\n\t * fallback to its uid if none\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget shareWithDisplayName() {\n\t\treturn this._share.share_with_displayname\n\t\t\t|| this._share.share_with\n\t}\n\n\t/**\n\t * Unique display name in case of multiple\n\t * duplicates results with the same name.\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget shareWithDisplayNameUnique() {\n\t\treturn this._share.share_with_displayname_unique\n\t\t\t|| this._share.share_with\n\t}\n\n\t/**\n\t * Get the share with entity link\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget shareWithLink() {\n\t\treturn this._share.share_with_link\n\t}\n\n\t/**\n\t * Get the share with avatar if any\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget shareWithAvatar() {\n\t\treturn this._share.share_with_avatar\n\t}\n\n\t// SHARED FILE OR FOLDER OWNER ----------------------------------\n\t/**\n\t * Get the shared item owner uid\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget uidFileOwner() {\n\t\treturn this._share.uid_file_owner\n\t}\n\n\t/**\n\t * Get the shared item display name\n\t * fallback to its uid if none\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget displaynameFileOwner() {\n\t\treturn this._share.displayname_file_owner\n\t\t\t|| this._share.uid_file_owner\n\t}\n\n\t// TIME DATA ----------------------------------------------------\n\t/**\n\t * Get the share creation timestamp\n\t *\n\t * @return {number}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget createdTime() {\n\t\treturn this._share.stime\n\t}\n\n\t/**\n\t * Get the expiration date\n\t *\n\t * @return {string} date with YYYY-MM-DD format\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget expireDate() {\n\t\treturn this._share.expiration\n\t}\n\n\t/**\n\t * Set the expiration date\n\t *\n\t * @param {string} date the share expiration date with YYYY-MM-DD format\n\t * @memberof Share\n\t */\n\tset expireDate(date) {\n\t\tthis._share.expiration = date\n\t}\n\n\t// EXTRA DATA ---------------------------------------------------\n\t/**\n\t * Get the public share token\n\t *\n\t * @return {string} the token\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget token() {\n\t\treturn this._share.token\n\t}\n\n\t/**\n\t * Get the share note if any\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget note() {\n\t\treturn this._share.note\n\t}\n\n\t/**\n\t * Set the share note if any\n\t *\n\t * @param {string} note the note\n\t * @memberof Share\n\t */\n\tset note(note) {\n\t\tthis._share.note = note\n\t}\n\n\t/**\n\t * Get the share label if any\n\t * Should only exist on link shares\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget label() {\n\t\treturn this._share.label\n\t}\n\n\t/**\n\t * Set the share label if any\n\t * Should only be set on link shares\n\t *\n\t * @param {string} label the label\n\t * @memberof Share\n\t */\n\tset label(label) {\n\t\tthis._share.label = label\n\t}\n\n\t/**\n\t * Have a mail been sent\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget mailSend() {\n\t\treturn this._share.mail_send === true\n\t}\n\n\t/**\n\t * Hide the download button on public page\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget hideDownload() {\n\t\treturn this._share.hide_download === true\n\t}\n\n\t/**\n\t * Hide the download button on public page\n\t *\n\t * @param {boolean} state hide the button ?\n\t * @memberof Share\n\t */\n\tset hideDownload(state) {\n\t\tthis._share.hide_download = state === true\n\t}\n\n\t/**\n\t * Password protection of the share\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget password() {\n\t\treturn this._share.password\n\t}\n\n\t/**\n\t * Password protection of the share\n\t *\n\t * @param {string} password the share password\n\t * @memberof Share\n\t */\n\tset password(password) {\n\t\tthis._share.password = password\n\t}\n\n\t/**\n\t * Password expiration time\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget passwordExpirationTime() {\n\t\treturn this._share.password_expiration_time\n\t}\n\n\t/**\n\t * Password expiration time\n\t *\n\t * @param {string} password expiration time\n\t * @memberof Share\n\t */\n\tset passwordExpirationTime(passwordExpirationTime) {\n\t\tthis._share.password_expiration_time = passwordExpirationTime\n\t}\n\n\t/**\n\t * Password protection by Talk of the share\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget sendPasswordByTalk() {\n\t\treturn this._share.send_password_by_talk\n\t}\n\n\t/**\n\t * Password protection by Talk of the share\n\t *\n\t * @param {boolean} sendPasswordByTalk whether to send the password by Talk\n\t * or not\n\t * @memberof Share\n\t */\n\tset sendPasswordByTalk(sendPasswordByTalk) {\n\t\tthis._share.send_password_by_talk = sendPasswordByTalk\n\t}\n\n\t// SHARED ITEM DATA ---------------------------------------------\n\t/**\n\t * Get the shared item absolute full path\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget path() {\n\t\treturn this._share.path\n\t}\n\n\t/**\n\t * Return the item type: file or folder\n\t *\n\t * @return {string} 'folder' or 'file'\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget itemType() {\n\t\treturn this._share.item_type\n\t}\n\n\t/**\n\t * Get the shared item mimetype\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget mimetype() {\n\t\treturn this._share.mimetype\n\t}\n\n\t/**\n\t * Get the shared item id\n\t *\n\t * @return {number}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget fileSource() {\n\t\treturn this._share.file_source\n\t}\n\n\t/**\n\t * Get the target path on the receiving end\n\t * e.g the file /xxx/aaa will be shared in\n\t * the receiving root as /aaa, the fileTarget is /aaa\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget fileTarget() {\n\t\treturn this._share.file_target\n\t}\n\n\t/**\n\t * Get the parent folder id if any\n\t *\n\t * @return {number}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget fileParent() {\n\t\treturn this._share.file_parent\n\t}\n\n\t// PERMISSIONS Shortcuts\n\n\t/**\n\t * Does this share have READ permissions\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget hasReadPermission() {\n\t\treturn !!((this.permissions & OC.PERMISSION_READ))\n\t}\n\n\t/**\n\t * Does this share have CREATE permissions\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget hasCreatePermission() {\n\t\treturn !!((this.permissions & OC.PERMISSION_CREATE))\n\t}\n\n\t/**\n\t * Does this share have DELETE permissions\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget hasDeletePermission() {\n\t\treturn !!((this.permissions & OC.PERMISSION_DELETE))\n\t}\n\n\t/**\n\t * Does this share have UPDATE permissions\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget hasUpdatePermission() {\n\t\treturn !!((this.permissions & OC.PERMISSION_UPDATE))\n\t}\n\n\t/**\n\t * Does this share have SHARE permissions\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget hasSharePermission() {\n\t\treturn !!((this.permissions & OC.PERMISSION_SHARE))\n\t}\n\n\t/**\n\t * Does this share have download permissions\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget hasDownloadPermission() {\n\t\tfor (const i in this._share.attributes) {\n\t\t\tconst attr = this._share.attributes[i]\n\t\t\tif (attr.scope === 'permissions' && attr.key === 'download') {\n\t\t\t\treturn attr.enabled\n\t\t\t}\n\t\t}\n\n\t\treturn true\n\t}\n\n\tset hasDownloadPermission(enabled) {\n\t\tthis.setAttribute('permissions', 'download', !!enabled)\n\t}\n\n\tsetAttribute(scope, key, enabled) {\n\t\tconst attrUpdate = {\n\t\t\tscope,\n\t\t\tkey,\n\t\t\tenabled,\n\t\t}\n\n\t\t// try and replace existing\n\t\tfor (const i in this._share.attributes) {\n\t\t\tconst attr = this._share.attributes[i]\n\t\t\tif (attr.scope === attrUpdate.scope && attr.key === attrUpdate.key) {\n\t\t\t\tthis._share.attributes.splice(i, 1, attrUpdate)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tthis._share.attributes.push(attrUpdate)\n\t}\n\n\t// PERMISSIONS Shortcuts for the CURRENT USER\n\t// ! the permissions above are the share settings,\n\t// ! meaning the permissions for the recipient\n\t/**\n\t * Can the current user EDIT this share ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget canEdit() {\n\t\treturn this._share.can_edit === true\n\t}\n\n\t/**\n\t * Can the current user DELETE this share ?\n\t *\n\t * @return {boolean}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget canDelete() {\n\t\treturn this._share.can_delete === true\n\t}\n\n\t/**\n\t * Top level accessible shared folder fileid for the current user\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget viaFileid() {\n\t\treturn this._share.via_fileid\n\t}\n\n\t/**\n\t * Top level accessible shared folder path for the current user\n\t *\n\t * @return {string}\n\t * @readonly\n\t * @memberof Share\n\t */\n\tget viaPath() {\n\t\treturn this._share.via_path\n\t}\n\n\t// TODO: SORT THOSE PROPERTIES\n\n\tget parent() {\n\t\treturn this._share.parent\n\t}\n\n\tget storageId() {\n\t\treturn this._share.storage_id\n\t}\n\n\tget storage() {\n\t\treturn this._share.storage\n\t}\n\n\tget itemSource() {\n\t\treturn this._share.item_source\n\t}\n\n\tget status() {\n\t\treturn this._share.status\n\t}\n\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { Type as ShareTypes } from '@nextcloud/sharing'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tSHARE_TYPES: ShareTypes,\n\t\t}\n\t},\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',[_c('SharingEntrySimple',{ref:\"shareEntrySimple\",staticClass:\"sharing-entry__internal\",attrs:{\"title\":_vm.t('files_sharing', 'Internal link'),\"subtitle\":_vm.internalLinkSubtitle},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-external icon-external-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"title\":_vm.copyLinkTooltip,\"aria-label\":_vm.copyLinkTooltip,\"icon\":_vm.copied && _vm.copySuccess ? 'icon-checkmark-color' : 'icon-clippy'},on:{\"click\":_vm.copyLink}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li class=\"sharing-entry\">\n\t\t<slot name=\"avatar\" />\n\t\t<div class=\"sharing-entry__desc\">\n\t\t\t<span class=\"sharing-entry__title\">{{ title }}</span>\n\t\t\t<p v-if=\"subtitle\">\n\t\t\t\t{{ subtitle }}\n\t\t\t</p>\n\t\t</div>\n\t\t<NcActions v-if=\"$slots['default']\"\n\t\t\tref=\"actionsComponent\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:aria-expanded=\"ariaExpandedValue\">\n\t\t\t<slot />\n\t\t</NcActions>\n\t</li>\n</template>\n\n<script>\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\n\nexport default {\n\tname: 'SharingEntrySimple',\n\n\tcomponents: {\n\t\tNcActions,\n\t},\n\n\tprops: {\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\trequired: true,\n\t\t},\n\t\tsubtitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tariaExpanded: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tariaExpandedValue() {\n\t\t\tif (this.ariaExpanded === null) {\n\t\t\t\treturn this.ariaExpanded\n\t\t\t}\n\t\t\treturn this.ariaExpanded ? 'true' : 'false'\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\t&__desc {\n\t\tpadding: 8px;\n\t\tpadding-left: 10px;\n\t\tline-height: 1.2em;\n\t\tposition: relative;\n\t\tflex: 1 1;\n\t\tmin-width: 0;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__title {\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tmax-width: inherit;\n\t}\n\t&__actions {\n\t\tmargin-left: auto !important;\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=1852ea78&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=1852ea78&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntrySimple.vue?vue&type=template&id=1852ea78&scoped=true\"\nimport script from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntrySimple.vue?vue&type=style&index=0&id=1852ea78&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1852ea78\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_vm._t(\"avatar\"),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.$slots['default'])?_c('NcActions',{ref:\"actionsComponent\",staticClass:\"sharing-entry__actions\",attrs:{\"menu-align\":\"right\",\"aria-expanded\":_vm.ariaExpandedValue}},[_vm._t(\"default\")],2):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<ul>\n\t\t<SharingEntrySimple ref=\"shareEntrySimple\"\n\t\t\tclass=\"sharing-entry__internal\"\n\t\t\t:title=\"t('files_sharing', 'Internal link')\"\n\t\t\t:subtitle=\"internalLinkSubtitle\">\n\t\t\t<template #avatar>\n\t\t\t\t<div class=\"avatar-external icon-external-white\" />\n\t\t\t</template>\n\n\t\t\t<NcActionButton :title=\"copyLinkTooltip\"\n\t\t\t\t:aria-label=\"copyLinkTooltip\"\n\t\t\t\t:icon=\"copied && copySuccess ? 'icon-checkmark-color' : 'icon-clippy'\"\n\t\t\t\t@click=\"copyLink\" />\n\t\t</SharingEntrySimple>\n\t</ul>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { showSuccess } from '@nextcloud/dialogs'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport SharingEntrySimple from './SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingEntryInternal',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tSharingEntrySimple,\n\t},\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcopied: false,\n\t\t\tcopySuccess: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Get the internal link to this file id\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tinternalLink() {\n\t\t\treturn window.location.protocol + '//' + window.location.host + generateUrl('/f/') + this.fileInfo.id\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcopyLinkTooltip() {\n\t\t\tif (this.copied) {\n\t\t\t\tif (this.copySuccess) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\treturn t('files_sharing', 'Cannot copy, please copy the link manually')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Copy internal link to clipboard')\n\t\t},\n\n\t\tinternalLinkSubtitle() {\n\t\t\tif (this.fileInfo.type === 'dir') {\n\t\t\t\treturn t('files_sharing', 'Only works for users with access to this folder')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Only works for users with access to this file')\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync copyLink() {\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(this.internalLink)\n\t\t\t\tshowSuccess(t('files_sharing', 'Link copied'))\n\t\t\t\tthis.$refs.shareEntrySimple.$refs.actionsComponent.$el.focus()\n\t\t\t\tthis.copySuccess = true\n\t\t\t\tthis.copied = true\n\t\t\t} catch (error) {\n\t\t\t\tthis.copySuccess = false\n\t\t\t\tthis.copied = true\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.copySuccess = false\n\t\t\t\t\tthis.copied = false\n\t\t\t\t}, 4000)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry__internal {\n\t.avatar-external {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=69227eb0&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=69227eb0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInternal.vue?vue&type=template&id=69227eb0&scoped=true\"\nimport script from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInternal.vue?vue&type=style&index=0&id=69227eb0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69227eb0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharing-search\"},[_c('label',{attrs:{\"for\":\"sharing-search-input\"}},[_vm._v(_vm._s(_vm.t('files_sharing', 'Search for share recipients')))]),_vm._v(\" \"),_c('NcSelect',{ref:\"select\",staticClass:\"sharing-search__input\",attrs:{\"input-id\":\"sharing-search-input\",\"disabled\":!_vm.canReshare,\"loading\":_vm.loading,\"filterable\":false,\"placeholder\":_vm.inputPlaceholder,\"clear-search-on-blur\":() => false,\"user-select\":true,\"options\":_vm.options},on:{\"search\":_vm.asyncFind,\"option:selected\":_vm.openSharingDetails},scopedSlots:_vm._u([{key:\"no-options\",fn:function({ search }){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(search ? _vm.noResultText : _vm.t('files_sharing', 'No recommendations. Start typing.'))+\"\\n\\t\\t\")]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport Config from '../services/ConfigService.js'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\n\nconst config = new Config()\n// note: some chars removed on purpose to make them human friendly when read out\nconst passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789'\n\n/**\n * Generate a valid policy password or\n * request a valid password if password_policy\n * is enabled\n *\n * @return {string} a valid password\n */\nexport default async function() {\n\t// password policy is enabled, let's request a pass\n\tif (config.passwordPolicy.api && config.passwordPolicy.api.generate) {\n\t\ttry {\n\t\t\tconst request = await axios.get(config.passwordPolicy.api.generate)\n\t\t\tif (request.data.ocs.data.password) {\n\t\t\t\tshowSuccess(t('files_sharing', 'Password created successfully'))\n\t\t\t\treturn request.data.ocs.data.password\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.info('Error generating password from password_policy', error)\n\t\t\tshowError(t('files_sharing', 'Error generating password from password policy'))\n\t\t}\n\t}\n\n\tconst array = new Uint8Array(10)\n\tconst ratio = passwordSet.length / 255\n\tself.crypto.getRandomValues(array)\n\tlet password = ''\n\tfor (let i = 0; i < array.length; i++) {\n\t\tpassword += passwordSet.charAt(array[i] * ratio)\n\t}\n\treturn password\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author Joas Schilling <coding@schilljs.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n// TODO: remove when ie not supported\nimport 'url-search-params-polyfill'\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\nimport Share from '../models/Share.js'\nimport { emit } from '@nextcloud/event-bus'\n\nconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\nexport default {\n\tmethods: {\n\t\t/**\n\t\t * Create a new share\n\t\t *\n\t\t * @param {object} data destructuring object\n\t\t * @param {string} data.path path to the file/folder which should be shared\n\t\t * @param {number} data.shareType 0 = user; 1 = group; 3 = public link; 6 = federated cloud share\n\t\t * @param {string} data.shareWith user/group id with which the file should be shared (optional for shareType > 1)\n\t\t * @param {boolean} [data.publicUpload] allow public upload to a public shared folder\n\t\t * @param {string} [data.password] password to protect public link Share with\n\t\t * @param {number} [data.permissions] 1 = read; 2 = update; 4 = create; 8 = delete; 16 = share; 31 = all (default: 31, for public shares: 1)\n\t\t * @param {boolean} [data.sendPasswordByTalk] send the password via a talk conversation\n\t\t * @param {string} [data.expireDate] expire the shareautomatically after\n\t\t * @param {string} [data.label] custom label\n\t\t * @param {string} [data.attributes] Share attributes encoded as json\n\t\t * @param data.note\n\t\t * @return {Share} the new share\n\t\t * @throws {Error}\n\t\t */\n\t\tasync createShare({ path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes }) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.post(shareUrl, { path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\tconst share = new Share(request.data.ocs.data)\n\t\t\t\temit('files_sharing:share:created', { share })\n\t\t\t\treturn share\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error while creating share', error)\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error creating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error creating the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @throws {Error}\n\t\t */\n\t\tasync deleteShare(id) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.delete(shareUrl + `/${id}`)\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\temit('files_sharing:share:deleted', { id })\n\t\t\t\treturn true\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error while deleting share', error)\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error deleting the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error deleting the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @param {object} properties key-value object of the properties to update\n\t\t */\n\t\tasync updateShare(id, properties) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.put(shareUrl + `/${id}`, properties)\n\t\t\t\temit('files_sharing:share:updated', { id })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t} else {\n\t\t\t\t\treturn request.data.ocs.data\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error while updating share', error)\n\t\t\t\tif (error.response.status !== 400) {\n\t\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\t\terrorMessage ? t('files_sharing', 'Error updating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error updating the share'),\n\t\t\t\t\t\t{ type: 'error' },\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst message = error.response.data.ocs.meta.message\n\t\t\t\tthrow new Error(message)\n\t\t\t}\n\t\t},\n\t},\n}\n","import Share from '../models/Share.js'\n\nexport default {\n\tmethods: {\n\t\tasync openSharingDetails(shareRequestObject) {\n\t\t\tlet share = {}\n\t\t\t// handle externalResults from OCA.Sharing.ShareSearch\n\t\t\t// TODO : Better name/interface for handler required\n\t\t\t// For example `externalAppCreateShareHook` with proper documentation\n\t\t\tif (shareRequestObject.handler) {\n\t\t\t\tif (this.suggestions) {\n\t\t\t\t\tshareRequestObject.suggestions = this.suggestions\n\t\t\t\t\tshareRequestObject.fileInfo = this.fileInfo\n\t\t\t\t\tshareRequestObject.query = this.query\n\t\t\t\t}\n\t\t\t\tshare = await shareRequestObject.handler(shareRequestObject)\n\t\t\t\tshare = new Share(share)\n\t\t\t} else {\n\t\t\t\tshare = this.mapShareRequestToShareObject(shareRequestObject)\n\t\t\t}\n\n\t\t\tconst shareDetails = {\n\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\tshare,\n\t\t\t}\n\n\t\t\tthis.$emit('open-sharing-details', shareDetails)\n\t\t},\n\t\topenShareDetailsForCustomSettings(share) {\n\t\t\tshare.setCustomPermissions = true\n\t\t\tthis.openSharingDetails(share)\n\t\t},\n\t\tmapShareRequestToShareObject(shareRequestObject) {\n\n\t\t\tif (shareRequestObject.id) {\n\t\t\t\treturn shareRequestObject\n\t\t\t}\n\n\t\t\tconst share = {\n\t\t\t\tattributes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\tkey: 'download',\n\t\t\t\t\t\tscope: 'permissions',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tshare_type: shareRequestObject.shareType,\n\t\t\t\tshare_with: shareRequestObject.shareWith,\n\t\t\t\tis_no_user: shareRequestObject.isNoUser,\n\t\t\t\tuser: shareRequestObject.shareWith,\n\t\t\t\tshare_with_displayname: shareRequestObject.displayName,\n\t\t\t\tsubtitle: shareRequestObject.subtitle,\n\t\t\t\tpermissions: shareRequestObject.permissions,\n\t\t\t\texpiration: '',\n\t\t\t}\n\n\t\t\treturn new Share(share)\n\t\t},\n\t},\n}\n","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div class=\"sharing-search\">\n\t\t<label for=\"sharing-search-input\">{{ t('files_sharing', 'Search for share recipients') }}</label>\n\t\t<NcSelect ref=\"select\"\n\t\t\tv-model=\"value\"\n\t\t\tinput-id=\"sharing-search-input\"\n\t\t\tclass=\"sharing-search__input\"\n\t\t\t:disabled=\"!canReshare\"\n\t\t\t:loading=\"loading\"\n\t\t\t:filterable=\"false\"\n\t\t\t:placeholder=\"inputPlaceholder\"\n\t\t\t:clear-search-on-blur=\"() => false\"\n\t\t\t:user-select=\"true\"\n\t\t\t:options=\"options\"\n\t\t\t@search=\"asyncFind\"\n\t\t\t@option:selected=\"openSharingDetails\">\n\t\t\t<template #no-options=\"{ search }\">\n\t\t\t\t{{ search ? noResultText : t('files_sharing', 'No recommendations. Start typing.') }}\n\t\t\t</template>\n\t\t</NcSelect>\n\t</div>\n</template>\n\n<script>\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport axios from '@nextcloud/axios'\nimport debounce from 'debounce'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\n\nimport Config from '../services/ConfigService.js'\nimport GeneratePassword from '../utils/GeneratePassword.js'\nimport Share from '../models/Share.js'\nimport ShareRequests from '../mixins/ShareRequests.js'\nimport ShareTypes from '../mixins/ShareTypes.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\n\nexport default {\n\tname: 'SharingInput',\n\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\n\tmixins: [ShareTypes, ShareRequests, ShareDetails],\n\n\tprops: {\n\t\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tlinkShares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\treshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tloading: false,\n\t\t\tquery: '',\n\t\t\trecommendations: [],\n\t\t\tShareSearch: OCA.Sharing.ShareSearch.state,\n\t\t\tsuggestions: [],\n\t\t\tvalue: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Implement ShareSearch\n\t\t * allows external appas to inject new\n\t\t * results into the autocomplete dropdown\n\t\t * Used for the guests app\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalResults() {\n\t\t\treturn this.ShareSearch.results\n\t\t},\n\t\tinputPlaceholder() {\n\t\t\tconst allowRemoteSharing = this.config.isRemoteShareAllowed\n\n\t\t\tif (!this.canReshare) {\n\t\t\t\treturn t('files_sharing', 'Resharing is not allowed')\n\t\t\t}\n\t\t\t// We can always search with email addresses for users too\n\t\t\tif (!allowRemoteSharing) {\n\t\t\t\treturn t('files_sharing', 'Name or email …')\n\t\t\t}\n\n\t\t\treturn t('files_sharing', 'Name, email, or Federated Cloud ID …')\n\t\t},\n\n\t\tisValidQuery() {\n\t\t\treturn this.query && this.query.trim() !== '' && this.query.length > this.config.minSearchStringLength\n\t\t},\n\n\t\toptions() {\n\t\t\tif (this.isValidQuery) {\n\t\t\t\treturn this.suggestions\n\t\t\t}\n\t\t\treturn this.recommendations\n\t\t},\n\n\t\tnoResultText() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn t('files_sharing', 'Searching …')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'No elements found.')\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.getRecommendations()\n\t},\n\n\tmethods: {\n\t\tasync asyncFind(query) {\n\t\t\t// save current query to check if we display\n\t\t\t// recommendations or search results\n\t\t\tthis.query = query.trim()\n\t\t\tif (this.isValidQuery) {\n\t\t\t\t// start loading now to have proper ux feedback\n\t\t\t\t// during the debounce\n\t\t\t\tthis.loading = true\n\t\t\t\tawait this.debounceGetSuggestions(query)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get suggestions\n\t\t *\n\t\t * @param {string} search the search query\n\t\t * @param {boolean} [lookup] search on lookup server\n\t\t */\n\t\tasync getSuggestions(search, lookup = false) {\n\t\t\tthis.loading = true\n\n\t\t\tif (getCapabilities().files_sharing.sharee.query_lookup_default === true) {\n\t\t\t\tlookup = true\n\t\t\t}\n\n\t\t\tconst shareType = [\n\t\t\t\tthis.SHARE_TYPES.SHARE_TYPE_USER,\n\t\t\t\tthis.SHARE_TYPES.SHARE_TYPE_GROUP,\n\t\t\t\tthis.SHARE_TYPES.SHARE_TYPE_REMOTE,\n\t\t\t\tthis.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP,\n\t\t\t\tthis.SHARE_TYPES.SHARE_TYPE_CIRCLE,\n\t\t\t\tthis.SHARE_TYPES.SHARE_TYPE_ROOM,\n\t\t\t\tthis.SHARE_TYPES.SHARE_TYPE_GUEST,\n\t\t\t\tthis.SHARE_TYPES.SHARE_TYPE_DECK,\n\t\t\t\tthis.SHARE_TYPES.SHARE_TYPE_SCIENCEMESH,\n\t\t\t]\n\n\t\t\tif (getCapabilities().files_sharing.public.enabled === true) {\n\t\t\t\tshareType.push(this.SHARE_TYPES.SHARE_TYPE_EMAIL)\n\t\t\t}\n\n\t\t\tlet request = null\n\t\t\ttry {\n\t\t\t\trequest = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees'), {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat: 'json',\n\t\t\t\t\t\titemType: this.fileInfo.type === 'dir' ? 'folder' : 'file',\n\t\t\t\t\t\tsearch,\n\t\t\t\t\t\tlookup,\n\t\t\t\t\t\tperPage: this.config.maxAutocompleteResults,\n\t\t\t\t\t\tshareType,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error fetching suggestions', error)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst data = request.data.ocs.data\n\t\t\tconst exact = request.data.ocs.data.exact\n\t\t\tdata.exact = [] // removing exact from general results\n\n\t\t\t// flatten array of arrays\n\t\t\tconst rawExactSuggestions = Object.values(exact).reduce((arr, elem) => arr.concat(elem), [])\n\t\t\tconst rawSuggestions = Object.values(data).reduce((arr, elem) => arr.concat(elem), [])\n\n\t\t\t// remove invalid data and format to user-select layout\n\t\t\tconst exactSuggestions = this.filterOutExistingShares(rawExactSuggestions)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t// sort by type so we can get user&groups first...\n\t\t\t\t.sort((a, b) => a.shareType - b.shareType)\n\t\t\tconst suggestions = this.filterOutExistingShares(rawSuggestions)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t// sort by type so we can get user&groups first...\n\t\t\t\t.sort((a, b) => a.shareType - b.shareType)\n\n\t\t\t// lookup clickable entry\n\t\t\t// show if enabled and not already requested\n\t\t\tconst lookupEntry = []\n\t\t\tif (data.lookupEnabled && !lookup) {\n\t\t\t\tlookupEntry.push({\n\t\t\t\t\tid: 'global-lookup',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tdisplayName: t('files_sharing', 'Search globally'),\n\t\t\t\t\tlookup: true,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// if there is a condition specified, filter it\n\t\t\tconst externalResults = this.externalResults.filter(result => !result.condition || result.condition(this))\n\n\t\t\tconst allSuggestions = exactSuggestions.concat(suggestions).concat(externalResults).concat(lookupEntry)\n\n\t\t\t// Count occurrences of display names in order to provide a distinguishable description if needed\n\t\t\tconst nameCounts = allSuggestions.reduce((nameCounts, result) => {\n\t\t\t\tif (!result.displayName) {\n\t\t\t\t\treturn nameCounts\n\t\t\t\t}\n\t\t\t\tif (!nameCounts[result.displayName]) {\n\t\t\t\t\tnameCounts[result.displayName] = 0\n\t\t\t\t}\n\t\t\t\tnameCounts[result.displayName]++\n\t\t\t\treturn nameCounts\n\t\t\t}, {})\n\n\t\t\tthis.suggestions = allSuggestions.map(item => {\n\t\t\t\t// Make sure that items with duplicate displayName get the shareWith applied as a description\n\t\t\t\tif (nameCounts[item.displayName] > 1 && !item.desc) {\n\t\t\t\t\treturn { ...item, desc: item.shareWithDisplayNameUnique }\n\t\t\t\t}\n\t\t\t\treturn item\n\t\t\t})\n\n\t\t\tthis.loading = false\n\t\t\tconsole.info('suggestions', this.suggestions)\n\t\t},\n\n\t\t/**\n\t\t * Debounce getSuggestions\n\t\t *\n\t\t * @param {...*} args the arguments\n\t\t */\n\t\tdebounceGetSuggestions: debounce(function(...args) {\n\t\t\tthis.getSuggestions(...args)\n\t\t}, 300),\n\n\t\t/**\n\t\t * Get the sharing recommendations\n\t\t */\n\t\tasync getRecommendations() {\n\t\t\tthis.loading = true\n\n\t\t\tlet request = null\n\t\t\ttry {\n\t\t\t\trequest = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees_recommended'), {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat: 'json',\n\t\t\t\t\t\titemType: this.fileInfo.type,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error fetching recommendations', error)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Add external results from the OCA.Sharing.ShareSearch api\n\t\t\tconst externalResults = this.externalResults.filter(result => !result.condition || result.condition(this))\n\n\t\t\t// flatten array of arrays\n\t\t\tconst rawRecommendations = Object.values(request.data.ocs.data.exact)\n\t\t\t\t.reduce((arr, elem) => arr.concat(elem), [])\n\n\t\t\t// remove invalid data and format to user-select layout\n\t\t\tthis.recommendations = this.filterOutExistingShares(rawRecommendations)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t.concat(externalResults)\n\n\t\t\tthis.loading = false\n\t\t\tconsole.info('recommendations', this.recommendations)\n\t\t},\n\n\t\t/**\n\t\t * Filter out existing shares from\n\t\t * the provided shares search results\n\t\t *\n\t\t * @param {object[]} shares the array of shares object\n\t\t * @return {object[]}\n\t\t */\n\t\tfilterOutExistingShares(shares) {\n\t\t\treturn shares.reduce((arr, share) => {\n\t\t\t\t// only check proper objects\n\t\t\t\tif (typeof share !== 'object') {\n\t\t\t\t\treturn arr\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tif (share.value.shareType === this.SHARE_TYPES.SHARE_TYPE_USER) {\n\t\t\t\t\t\t// filter out current user\n\t\t\t\t\t\tif (share.value.shareWith === getCurrentUser().uid) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// filter out the owner of the share\n\t\t\t\t\t\tif (this.reshare && share.value.shareWith === this.reshare.owner) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// filter out existing mail shares\n\t\t\t\t\tif (share.value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\tconst emails = this.linkShares.map(elem => elem.shareWith)\n\t\t\t\t\t\tif (emails.indexOf(share.value.shareWith.trim()) !== -1) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t} else { // filter out existing shares\n\t\t\t\t\t\t// creating an object of uid => type\n\t\t\t\t\t\tconst sharesObj = this.shares.reduce((obj, elem) => {\n\t\t\t\t\t\t\tobj[elem.shareWith] = elem.type\n\t\t\t\t\t\t\treturn obj\n\t\t\t\t\t\t}, {})\n\n\t\t\t\t\t\t// if shareWith is the same and the share type too, ignore it\n\t\t\t\t\t\tconst key = share.value.shareWith.trim()\n\t\t\t\t\t\tif (key in sharesObj\n\t\t\t\t\t\t\t&& sharesObj[key] === share.value.shareType) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// ALL GOOD\n\t\t\t\t\t// let's add the suggestion\n\t\t\t\t\tarr.push(share)\n\t\t\t\t} catch {\n\t\t\t\t\treturn arr\n\t\t\t\t}\n\t\t\t\treturn arr\n\t\t\t}, [])\n\t\t},\n\n\t\t/**\n\t\t * Get the icon based on the share type\n\t\t *\n\t\t * @param {number} type the share type\n\t\t * @return {string} the icon class\n\t\t */\n\t\tshareTypeToIcon(type) {\n\t\t\tswitch (type) {\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_GUEST:\n\t\t\t\t// default is a user, other icons are here to differentiate\n\t\t\t\t// themselves from it, so let's not display the user icon\n\t\t\t\t// case this.SHARE_TYPES.SHARE_TYPE_REMOTE:\n\t\t\t\t// case this.SHARE_TYPES.SHARE_TYPE_USER:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Guest'),\n\t\t\t\t}\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP:\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_GROUP:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-group',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Group'),\n\t\t\t\t}\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_EMAIL:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-mail',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Email'),\n\t\t\t\t}\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_CIRCLE:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-circle',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Circle'),\n\t\t\t\t}\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_ROOM:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-room',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Talk conversation'),\n\t\t\t\t}\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_DECK:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-deck',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Deck board'),\n\t\t\t\t}\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_SCIENCEMESH:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-sciencemesh',\n\t\t\t\t\ticonTitle: t('files_sharing', 'ScienceMesh'),\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn {}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Format shares for the multiselect options\n\t\t *\n\t\t * @param {object} result select entry item\n\t\t * @return {object}\n\t\t */\n\t\tformatForMultiselect(result) {\n\t\t\tlet subtitle\n\t\t\tif (result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_USER && this.config.shouldAlwaysShowUnique) {\n\t\t\t\tsubtitle = result.shareWithDisplayNameUnique ?? ''\n\t\t\t} else if ((result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_REMOTE\n\t\t\t\t\t|| result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP\n\t\t\t) && result.value.server) {\n\t\t\t\tsubtitle = t('files_sharing', 'on {server}', { server: result.value.server })\n\t\t\t} else if (result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {\n\t\t\t\tsubtitle = result.value.shareWith\n\t\t\t} else {\n\t\t\t\tsubtitle = result.shareWithDescription ?? ''\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tshareWith: result.value.shareWith,\n\t\t\t\tshareType: result.value.shareType,\n\t\t\t\tuser: result.uuid || result.value.shareWith,\n\t\t\t\tisNoUser: result.value.shareType !== this.SHARE_TYPES.SHARE_TYPE_USER,\n\t\t\t\tdisplayName: result.name || result.label,\n\t\t\t\tsubtitle,\n\t\t\t\tshareWithDisplayNameUnique: result.shareWithDisplayNameUnique || '',\n\t\t\t\t...this.shareTypeToIcon(result.value.shareType),\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process the new share request\n\t\t *\n\t\t * @param {object} value the multiselect option\n\t\t */\n\t\tasync addShare(value) {\n\t\t\t// Clear the displayed selection\n\t\t\tthis.value = null\n\n\t\t\tif (value.lookup) {\n\t\t\t\tawait this.getSuggestions(this.query, true)\n\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\t// open the dropdown again\n\t\t\t\t\tthis.$refs.select.$children[0].open = true\n\t\t\t\t})\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\t// handle externalResults from OCA.Sharing.ShareSearch\n\t\t\tif (value.handler) {\n\t\t\t\tconst share = await value.handler(this)\n\t\t\t\tthis.$emit('add:share', new Share(share))\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\tthis.loading = true\n\t\t\tconsole.debug('Adding a new share from the input for', value)\n\t\t\ttry {\n\t\t\t\tlet password = null\n\n\t\t\t\tif (this.config.enforcePasswordForPublicLink\n\t\t\t\t\t&& value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {\n\t\t\t\t\tpassword = await GeneratePassword()\n\t\t\t\t}\n\n\t\t\t\tconst path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t\t\tconst share = await this.createShare({\n\t\t\t\t\tpath,\n\t\t\t\t\tshareType: value.shareType,\n\t\t\t\t\tshareWith: value.shareWith,\n\t\t\t\t\tpassword,\n\t\t\t\t\tpermissions: this.fileInfo.sharePermissions & getCapabilities().files_sharing.default_permissions,\n\t\t\t\t\tattributes: JSON.stringify(this.fileInfo.shareAttributes),\n\t\t\t\t})\n\n\t\t\t\t// If we had a password, we need to show it to the user as it was generated\n\t\t\t\tif (password) {\n\t\t\t\t\tshare.newPassword = password\n\t\t\t\t\t// Wait for the newly added share\n\t\t\t\t\tconst component = await new Promise(resolve => {\n\t\t\t\t\t\tthis.$emit('add:share', share, resolve)\n\t\t\t\t\t})\n\n\t\t\t\t\t// open the menu on the\n\t\t\t\t\t// freshly created share component\n\t\t\t\t\tcomponent.open = true\n\t\t\t\t} else {\n\t\t\t\t\t// Else we just add it normally\n\t\t\t\t\tthis.$emit('add:share', share)\n\t\t\t\t}\n\n\t\t\t\tawait this.getRecommendations()\n\t\t\t} catch (error) {\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\t// open the dropdown again on error\n\t\t\t\t\tthis.$refs.select.$children[0].open = true\n\t\t\t\t})\n\t\t\t\tthis.query = value.shareWith\n\t\t\t\tconsole.error('Error while adding new share', error)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n.sharing-search {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: 4px;\n\n\tlabel[for=\"sharing-search-input\"] {\n\t\tmargin-bottom: 2px;\n\t}\n\n\t&__input {\n\t\twidth: 100%;\n\t\tmargin: 10px 0;\n\t}\n}\n\n.vs__dropdown-menu {\n\t// properly style the lookup entry\n\tspan[lookup] {\n\t\t.avatardiv {\n\t\t\tbackground-image: var(--icon-search-white);\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tbackground-color: var(--color-text-maxcontrast) !important;\n\t\t\t.avatardiv__initials-wrapper {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=46881615&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=46881615&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInput.vue?vue&type=template&id=46881615\"\nimport script from \"./SharingInput.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInput.vue?vue&type=style&index=0&id=46881615&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{attrs:{\"id\":\"sharing-inherited-shares\"}},[_c('SharingEntrySimple',{staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.mainTitle,\"subtitle\":_vm.subTitle,\"aria-expanded\":_vm.showInheritedShares},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-shared icon-more-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":_vm.showInheritedSharesIcon,\"aria-label\":_vm.toggleTooltip,\"title\":_vm.toggleTooltip},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleInheritedShares.apply(null, arguments)}}})],1),_vm._v(\" \"),_vm._l((_vm.shares),function(share){return _c('SharingEntryInherited',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share},on:{\"remove:share\":_vm.removeShare}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 Louis Chmn <louis@chmn.me>\n *\n * @author Louis Chmn <louis@chmn.me>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport const ATOMIC_PERMISSIONS = {\n\tNONE: 0,\n\tREAD: 1,\n\tUPDATE: 2,\n\tCREATE: 4,\n\tDELETE: 8,\n\tSHARE: 16,\n}\n\nexport const BUNDLED_PERMISSIONS = {\n\tREAD_ONLY: ATOMIC_PERMISSIONS.READ,\n\tUPLOAD_AND_UPDATE: ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.DELETE,\n\tFILE_DROP: ATOMIC_PERMISSIONS.CREATE,\n\tALL: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.DELETE | ATOMIC_PERMISSIONS.SHARE,\n\tALL_FILE: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.SHARE,\n}\n\n/**\n * Return whether a given permissions set contains some permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToCheck - the permissions to check.\n * @return {boolean}\n */\nexport function hasPermissions(initialPermissionSet, permissionsToCheck) {\n\treturn initialPermissionSet !== ATOMIC_PERMISSIONS.NONE && (initialPermissionSet & permissionsToCheck) === permissionsToCheck\n}\n\n/**\n * Return whether a given permissions set is valid.\n *\n * @param {number} permissionsSet - the permissions set.\n *\n * @return {boolean}\n */\nexport function permissionsSetIsValid(permissionsSet) {\n\t// Must have at least READ or CREATE permission.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && !hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.CREATE)) {\n\t\treturn false\n\t}\n\n\t// Must have READ permission if have UPDATE or DELETE.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && (\n\t\thasPermissions(permissionsSet, ATOMIC_PERMISSIONS.UPDATE) || hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.DELETE)\n\t)) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n/**\n * Add some permissions to an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToAdd - the permissions to add.\n *\n * @return {number}\n */\nexport function addPermissions(initialPermissionSet, permissionsToAdd) {\n\treturn initialPermissionSet | permissionsToAdd\n}\n\n/**\n * Remove some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToSubtract - the permissions to remove.\n *\n * @return {number}\n */\nexport function subtractPermissions(initialPermissionSet, permissionsToSubtract) {\n\treturn initialPermissionSet & ~permissionsToSubtract\n}\n\n/**\n * Toggle some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {number}\n */\nexport function togglePermissions(initialPermissionSet, permissionsToToggle) {\n\tif (hasPermissions(initialPermissionSet, permissionsToToggle)) {\n\t\treturn subtractPermissions(initialPermissionSet, permissionsToToggle)\n\t} else {\n\t\treturn addPermissions(initialPermissionSet, permissionsToToggle)\n\t}\n}\n\n/**\n * Return whether some given permissions can be toggled from a permission set.\n *\n * @param {number} permissionSet - the initial permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {boolean}\n */\nexport function canTogglePermissions(permissionSet, permissionsToToggle) {\n\treturn permissionsSetIsValid(togglePermissions(permissionSet, permissionsToToggle))\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author Daniel Calviño Sánchez <danxuliu@gmail.com>\n * @author Gary Kim <gary@garykim.dev>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n * @author Vincent Petry <vincent@nextcloud.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { getCurrentUser } from '@nextcloud/auth'\n// eslint-disable-next-line import/no-unresolved, n/no-missing-import\nimport PQueue from 'p-queue'\nimport debounce from 'debounce'\n\nimport Share from '../models/Share.js'\nimport SharesRequests from './ShareRequests.js'\nimport ShareTypes from './ShareTypes.js'\nimport Config from '../services/ConfigService.js'\n\nimport {\n\tBUNDLED_PERMISSIONS,\n} from '../lib/SharePermissionsToolBox.js'\n\nexport default {\n\tmixins: [SharesRequests, ShareTypes],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { },\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\n\t\t\t// errors helpers\n\t\t\terrors: {},\n\n\t\t\t// component status toggles\n\t\t\tloading: false,\n\t\t\tsaving: false,\n\t\t\topen: false,\n\n\t\t\t// concurrency management queue\n\t\t\t// we want one queue per share\n\t\t\tupdateQueue: new PQueue({ concurrency: 1 }),\n\n\t\t\t/**\n\t\t\t * ! This allow vue to make the Share class state reactive\n\t\t\t * ! do not remove it ot you'll lose all reactivity here\n\t\t\t */\n\t\t\treactiveState: this.share?.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\n\t\t/**\n\t\t * Does the current share have a note\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasNote: {\n\t\t\tget() {\n\t\t\t\treturn this.share.note !== ''\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.note = enabled\n\t\t\t\t\t? null // enabled but user did not changed the content yet\n\t\t\t\t\t: '' // empty = no note = disabled\n\t\t\t},\n\t\t},\n\n\t\tdateTomorrow() {\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\n\t\t// Datepicker language\n\t\tlang() {\n\t\t\tconst weekdaysShort = window.dayNamesShort\n\t\t\t\t? window.dayNamesShort // provided by nextcloud\n\t\t\t\t: ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']\n\t\t\tconst monthsShort = window.monthNamesShort\n\t\t\t\t? window.monthNamesShort // provided by nextcloud\n\t\t\t\t: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']\n\t\t\tconst firstDayOfWeek = window.firstDay ? window.firstDay : 0\n\n\t\t\treturn {\n\t\t\t\tformatLocale: {\n\t\t\t\t\tfirstDayOfWeek,\n\t\t\t\t\tmonthsShort,\n\t\t\t\t\tweekdaysMin: weekdaysShort,\n\t\t\t\t\tweekdaysShort,\n\t\t\t\t},\n\t\t\t\tmonthFormat: 'MMM',\n\t\t\t}\n\t\t},\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\tisPublicShare() {\n\t\t\tconst shareType = this.share.shareType ?? this.share.type\n\t\t\treturn [this.SHARE_TYPES.SHARE_TYPE_LINK, this.SHARE_TYPES.SHARE_TYPE_EMAIL].includes(shareType)\n\t\t},\n\t\tisShareOwner() {\n\t\t\treturn this.share && this.share.owner === getCurrentUser().uid\n\t\t},\n\t\tisExpiryDateEnforced() {\n\t\t\tif (this.isPublicShare) {\n\t\t\t\treturn this.config.isDefaultExpireDateEnforced\n\t\t\t}\n\t\t\tif (this.isRemoteShare) {\n\t\t\t return this.config.isDefaultRemoteExpireDateEnforced\n\t\t\t}\n\t\t\treturn this.config.isDefaultInternalExpireDateEnforced\n\t\t},\n\t\thasCustomPermissions() {\n\t\t\tconst bundledPermissions = [\n\t\t\t\tBUNDLED_PERMISSIONS.ALL,\n\t\t\t\tBUNDLED_PERMISSIONS.READ_ONLY,\n\t\t\t\tBUNDLED_PERMISSIONS.FILE_DROP,\n\t\t\t]\n\t\t\treturn !bundledPermissions.includes(this.share.permissions)\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Check if a share is valid before\n\t\t * firing the request\n\t\t *\n\t\t * @param {Share} share the share to check\n\t\t * @return {boolean}\n\t\t */\n\t\tcheckShare(share) {\n\t\t\tif (share.password) {\n\t\t\t\tif (typeof share.password !== 'string' || share.password.trim() === '') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.expirationDate) {\n\t\t\t\tconst date = share.expirationDate\n\t\t\t\tif (!date.isValid()) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * @param {string} date a date with YYYY-MM-DD format\n\t\t * @return {Date} date\n\t\t */\n\t\tparseDateString(date) {\n\t\t\tif (!date) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst regex = /([0-9]{4}-[0-9]{2}-[0-9]{2})/i\n\t\t\treturn new Date(date.match(regex)?.pop())\n\t\t},\n\n\t\t/**\n\t\t * @param {Date} date\n\t\t * @return {string} date a date with YYYY-MM-DD format\n\t\t */\n\t\tformatDateToString(date) {\n\t\t\t// Force utc time. Drop time information to be timezone-less\n\t\t\tconst utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n\t\t\t// Format to YYYY-MM-DD\n\t\t\treturn utcDate.toISOString().split('T')[0]\n\t\t},\n\n\t\t/**\n\t\t * Save given value to expireDate and trigger queueUpdate\n\t\t *\n\t\t * @param {Date} date\n\t\t */\n\t\tonExpirationChange(date) {\n\t\t\tthis.share.expireDate = this.formatDateToString(new Date(date))\n\t\t},\n\n\t\t/**\n\t\t * Uncheck expire date\n\t\t * We need this method because @update:checked\n\t\t * is ran simultaneously as @uncheck, so\n\t\t * so we cannot ensure data is up-to-date\n\t\t */\n\t\tonExpirationDisable() {\n\t\t\tthis.share.expireDate = ''\n\t\t},\n\n\t\t/**\n\t\t * Note changed, let's save it to a different key\n\t\t *\n\t\t * @param {string} note the share note\n\t\t */\n\t\tonNoteChange(note) {\n\t\t\tthis.$set(this.share, 'newNote', note.trim())\n\t\t},\n\n\t\t/**\n\t\t * When the note change, we trim, save and dispatch\n\t\t *\n\t\t */\n\t\tonNoteSubmit() {\n\t\t\tif (this.share.newNote) {\n\t\t\t\tthis.share.note = this.share.newNote\n\t\t\t\tthis.$delete(this.share, 'newNote')\n\t\t\t\tthis.queueUpdate('note')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete share button handler\n\t\t */\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.open = false\n\t\t\t\tawait this.deleteShare(this.share.id)\n\t\t\t\tconsole.debug('Share deleted', this.share.id)\n\t\t\t\tconst message = this.share.itemType === 'file'\n\t\t\t\t\t? t('files_sharing', 'File \"{path}\" has been unshared', { path: this.share.path })\n\t\t\t\t\t: t('files_sharing', 'Folder \"{path}\" has been unshared', { path: this.share.path })\n\t\t\t\tshowSuccess(message)\n\t\t\t\tthis.$emit('remove:share', this.share)\n\t\t\t} catch (error) {\n\t\t\t\t// re-open menu if error\n\t\t\t\tthis.open = true\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Send an update of the share to the queue\n\t\t *\n\t\t * @param {Array<string>} propertyNames the properties to sync\n\t\t */\n\t\tqueueUpdate(...propertyNames) {\n\t\t\tif (propertyNames.length === 0) {\n\t\t\t\t// Nothing to update\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.share.id) {\n\t\t\t\tconst properties = {}\n\t\t\t\t// force value to string because that is what our\n\t\t\t\t// share api controller accepts\n\t\t\t\tpropertyNames.forEach(name => {\n\t\t\t\t\tif ((typeof this.share[name]) === 'object') {\n\t\t\t\t\t\tproperties[name] = JSON.stringify(this.share[name])\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties[name] = this.share[name].toString()\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\tthis.updateQueue.add(async () => {\n\t\t\t\t\tthis.saving = true\n\t\t\t\t\tthis.errors = {}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst updatedShare = await this.updateShare(this.share.id, properties)\n\n\t\t\t\t\t\tif (propertyNames.indexOf('password') >= 0) {\n\t\t\t\t\t\t\t// reset password state after sync\n\t\t\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\n\t\t\t\t\t\t\t// updates password expiration time after sync\n\t\t\t\t\t\t\tthis.share.passwordExpirationTime = updatedShare.password_expiration_time\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// clear any previous errors\n\t\t\t\t\t\tthis.$delete(this.errors, propertyNames[0])\n\t\t\t\t\t\tshowSuccess(t('files_sharing', 'Share {propertyName} saved', { propertyName: propertyNames[0] }))\n\t\t\t\t\t} catch ({ message }) {\n\t\t\t\t\t\tif (message && message !== '') {\n\t\t\t\t\t\t\tthis.onSyncError(propertyNames[0], message)\n\t\t\t\t\t\t\tshowError(t('files_sharing', message))\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.saving = false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// This share does not exists on the server yet\n\t\t\tconsole.debug('Updated local share', this.share)\n\t\t},\n\n\t\t/**\n\t\t * Manage sync errors\n\t\t *\n\t\t * @param {string} property the errored property, e.g. 'password'\n\t\t * @param {string} message the error message\n\t\t */\n\t\tonSyncError(property, message) {\n\t\t\t// re-open menu if closed\n\t\t\tthis.open = true\n\t\t\tswitch (property) {\n\t\t\tcase 'password':\n\t\t\tcase 'pending':\n\t\t\tcase 'expireDate':\n\t\t\tcase 'label':\n\t\t\tcase 'note': {\n\t\t\t\t// show error\n\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\tlet propertyEl = this.$refs[property]\n\t\t\t\tif (propertyEl) {\n\t\t\t\t\tif (propertyEl.$el) {\n\t\t\t\t\t\tpropertyEl = propertyEl.$el\n\t\t\t\t\t}\n\t\t\t\t\t// focus if there is a focusable action element\n\t\t\t\t\tconst focusable = propertyEl.querySelector('.focusable')\n\t\t\t\t\tif (focusable) {\n\t\t\t\t\t\tfocusable.focus()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'sendPasswordByTalk': {\n\t\t\t\t// show error\n\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t// Restore previous state\n\t\t\t\tthis.share.sendPasswordByTalk = !this.share.sendPasswordByTalk\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Debounce queueUpdate to avoid requests spamming\n\t\t * more importantly for text data\n\t\t *\n\t\t * @param {string} property the property to sync\n\t\t */\n\t\tdebounceQueueUpdate: debounce(function(property) {\n\t\t\tthis.queueUpdate(property)\n\t\t}, 500),\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<SharingEntrySimple :key=\"share.id\"\n\t\tclass=\"sharing-entry__inherited\"\n\t\t:title=\"share.shareWithDisplayName\">\n\t\t<template #avatar>\n\t\t\t<NcAvatar :user=\"share.shareWith\"\n\t\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t\tclass=\"sharing-entry__avatar\" />\n\t\t</template>\n\t\t<NcActionText icon=\"icon-user\">\n\t\t\t{{ t('files_sharing', 'Added by {initiator}', { initiator: share.ownerDisplayName }) }}\n\t\t</NcActionText>\n\t\t<NcActionLink v-if=\"share.viaPath && share.viaFileid\"\n\t\t\ticon=\"icon-folder\"\n\t\t\t:href=\"viaFileTargetUrl\">\n\t\t\t{{ t('files_sharing', 'Via “{folder}”', {folder: viaFolderName} ) }}\n\t\t</NcActionLink>\n\t\t<NcActionButton v-if=\"share.canDelete\"\n\t\t\ticon=\"icon-close\"\n\t\t\t@click.prevent=\"onDelete\">\n\t\t\t{{ t('files_sharing', 'Unshare') }}\n\t\t</NcActionButton>\n\t</SharingEntrySimple>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { basename } from '@nextcloud/paths'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js'\nimport NcActionText from '@nextcloud/vue/dist/Components/NcActionText.js'\n\n// eslint-disable-next-line no-unused-vars\nimport Share from '../models/Share.js'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingEntryInherited',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tNcActionLink,\n\t\tNcActionText,\n\t\tNcAvatar,\n\t\tSharingEntrySimple,\n\t},\n\n\tmixins: [SharesMixin],\n\n\tprops: {\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tviaFileTargetUrl() {\n\t\t\treturn generateUrl('/f/{fileid}', {\n\t\t\t\tfileid: this.share.viaFileid,\n\t\t\t})\n\t\t},\n\n\t\tviaFolderName() {\n\t\t\treturn basename(this.share.viaPath)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__desc {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\tpadding: 8px;\n\t\tpadding-left: 10px;\n\t\tline-height: 1.2em;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__actions {\n\t\tmargin-left: auto;\n\t}\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=283ca89e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=283ca89e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInherited.vue?vue&type=template&id=283ca89e&scoped=true\"\nimport script from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInherited.vue?vue&type=style&index=0&id=283ca89e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"283ca89e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SharingEntrySimple',{key:_vm.share.id,staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.share.shareWithDisplayName},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName}})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionText',{attrs:{\"icon\":\"icon-user\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Added by {initiator}', { initiator: _vm.share.ownerDisplayName }))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.share.viaPath && _vm.share.viaFileid)?_c('NcActionLink',{attrs:{\"icon\":\"icon-folder\",\"href\":_vm.viaFileTargetUrl}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Via “{folder}”', {folder: _vm.viaFolderName} ))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"icon\":\"icon-close\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<ul id=\"sharing-inherited-shares\">\n\t\t<!-- Main collapsible entry -->\n\t\t<SharingEntrySimple class=\"sharing-entry__inherited\"\n\t\t\t:title=\"mainTitle\"\n\t\t\t:subtitle=\"subTitle\"\n\t\t\t:aria-expanded=\"showInheritedShares\">\n\t\t\t<template #avatar>\n\t\t\t\t<div class=\"avatar-shared icon-more-white\" />\n\t\t\t</template>\n\t\t\t<NcActionButton :icon=\"showInheritedSharesIcon\"\n\t\t\t\t:aria-label=\"toggleTooltip\"\n\t\t\t\t:title=\"toggleTooltip\"\n\t\t\t\t@click.prevent.stop=\"toggleInheritedShares\" />\n\t\t</SharingEntrySimple>\n\n\t\t<!-- Inherited shares list -->\n\t\t<SharingEntryInherited v-for=\"share in shares\"\n\t\t\t:key=\"share.id\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t:share=\"share\"\n\t\t\t@remove:share=\"removeShare\" />\n\t</ul>\n</template>\n\n<script>\nimport { generateOcsUrl } from '@nextcloud/router'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport axios from '@nextcloud/axios'\n\nimport Share from '../models/Share.js'\nimport SharingEntryInherited from '../components/SharingEntryInherited.vue'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingInherited',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tSharingEntryInherited,\n\t\tSharingEntrySimple,\n\t},\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloaded: false,\n\t\t\tloading: false,\n\t\t\tshowInheritedShares: false,\n\t\t\tshares: [],\n\t\t}\n\t},\n\tcomputed: {\n\t\tshowInheritedSharesIcon() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn 'icon-loading-small'\n\t\t\t}\n\t\t\tif (this.showInheritedShares) {\n\t\t\t\treturn 'icon-triangle-n'\n\t\t\t}\n\t\t\treturn 'icon-triangle-s'\n\t\t},\n\t\tmainTitle() {\n\t\t\treturn t('files_sharing', 'Others with access')\n\t\t},\n\t\tsubTitle() {\n\t\t\treturn (this.showInheritedShares && this.shares.length === 0)\n\t\t\t\t? t('files_sharing', 'No other users with access found')\n\t\t\t\t: ''\n\t\t},\n\t\ttoggleTooltip() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t\t\t? t('files_sharing', 'Toggle list of others with access to this directory')\n\t\t\t\t: t('files_sharing', 'Toggle list of others with access to this file')\n\t\t},\n\t\tfullPath() {\n\t\t\tconst path = `${this.fileInfo.path}/${this.fileInfo.name}`\n\t\t\treturn path.replace('//', '/')\n\t\t},\n\t},\n\twatch: {\n\t\tfileInfo() {\n\t\t\tthis.resetState()\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Toggle the list view and fetch/reset the state\n\t\t */\n\t\ttoggleInheritedShares() {\n\t\t\tthis.showInheritedShares = !this.showInheritedShares\n\t\t\tif (this.showInheritedShares) {\n\t\t\t\tthis.fetchInheritedShares()\n\t\t\t} else {\n\t\t\t\tthis.resetState()\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Fetch the Inherited Shares array\n\t\t */\n\t\tasync fetchInheritedShares() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst url = generateOcsUrl('apps/files_sharing/api/v1/shares/inherited?format=json&path={path}', { path: this.fullPath })\n\t\t\t\tconst shares = await axios.get(url)\n\t\t\t\tthis.shares = shares.data.ocs.data\n\t\t\t\t\t.map(share => new Share(share))\n\t\t\t\t\t.sort((a, b) => b.createdTime - a.createdTime)\n\t\t\t\tconsole.info(this.shares)\n\t\t\t\tthis.loaded = true\n\t\t\t} catch (error) {\n\t\t\t\tOC.Notification.showTemporary(t('files_sharing', 'Unable to fetch inherited shares'), { type: 'error' })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Reset current component state\n\t\t */\n\t\tresetState() {\n\t\t\tthis.loaded = false\n\t\t\tthis.loading = false\n\t\t\tthis.showInheritedShares = false\n\t\t\tthis.shares = []\n\t\t},\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\tconst index = this.shares.findIndex(item => item === share)\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.splice(index, 1)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry__inherited {\n\t.avatar-shared {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=05b67dc8&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=05b67dc8&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInherited.vue?vue&type=template&id=05b67dc8&scoped=true\"\nimport script from \"./SharingInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInherited.vue?vue&type=style&index=0&id=05b67dc8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"05b67dc8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.canLinkShare)?_c('ul',{staticClass:\"sharing-link-list\"},[(!_vm.hasLinkShares && _vm.canReshare)?_c('SharingEntryLink',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo},on:{\"add:share\":_vm.addShare}}):_vm._e(),_vm._v(\" \"),(_vm.hasShares)?_vm._l((_vm.shares),function(share,index){return _c('SharingEntryLink',{key:share.id,attrs:{\"index\":_vm.shares.length > 1 ? index + 1 : null,\"can-reshare\":_vm.canReshare,\"share\":_vm.shares[index],\"file-info\":_vm.fileInfo},on:{\"update:share\":[function($event){return _vm.$set(_vm.shares, index, $event)},function($event){return _vm.awaitForShare(...arguments)}],\"add:share\":function($event){return _vm.addShare(...arguments)},\"remove:share\":_vm.removeShare,\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}):_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon tune-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TuneIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Tune.vue?vue&type=template&id=7a5ea180\"\nimport script from \"./Tune.vue?vue&type=script&lang=js\"\nexport * from \"./Tune.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tune-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon triangle-small-down-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M8 9H16L12 16\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TriangleSmallDownIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./TriangleSmallDown.vue?vue&type=template&id=031da428\"\nimport script from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\nexport * from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon triangle-small-down-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8 9H16L12 16\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div ref=\"quickShareDropdownContainer\"\n\t\t:class=\"{ 'active': showDropdown, 'share-select': true }\">\n\t\t<span :id=\"dropdownId\"\n\t\t\tclass=\"trigger-text\"\n\t\t\t:aria-expanded=\"showDropdown\"\n\t\t\t:aria-haspopup=\"true\"\n\t\t\taria-label=\"Quick share options dropdown\"\n\t\t\t@click=\"toggleDropdown\">\n\t\t\t{{ selectedOption }}\n\t\t\t<DropdownIcon :size=\"15\" />\n\t\t</span>\n\t\t<div v-if=\"showDropdown\"\n\t\t\tref=\"quickShareDropdown\"\n\t\t\tclass=\"share-select-dropdown\"\n\t\t\t:aria-labelledby=\"dropdownId\"\n\t\t\ttabindex=\"0\"\n\t\t\t@keydown.down=\"handleArrowDown\"\n\t\t\t@keydown.up=\"handleArrowUp\"\n\t\t\t@keydown.esc=\"closeDropdown\">\n\t\t\t<button v-for=\"option in options\"\n\t\t\t\t:key=\"option\"\n\t\t\t\t:class=\"{ 'dropdown-item': true, 'selected': option === selectedOption }\"\n\t\t\t\t:aria-selected=\"option === selectedOption\"\n\t\t\t\t@click=\"selectOption(option)\">\n\t\t\t\t{{ option }}\n\t\t\t</button>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport DropdownIcon from 'vue-material-design-icons/TriangleSmallDown.vue'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport ShareTypes from '../mixins/ShareTypes.js'\n\nimport {\n\tBUNDLED_PERMISSIONS,\n\tATOMIC_PERMISSIONS,\n} from '../lib/SharePermissionsToolBox.js'\n\nimport { createFocusTrap } from 'focus-trap'\n\nexport default {\n\tcomponents: {\n\t\tDropdownIcon,\n\t},\n\tmixins: [SharesMixin, ShareDetails, ShareTypes],\n\tprops: {\n\t\tshare: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\ttoggle: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tselectedOption: '',\n\t\t\tshowDropdown: this.toggle,\n\t\t\tfocusTrap: null,\n\t\t}\n\t},\n\tcomputed: {\n\t\tcanViewText() {\n\t\t\treturn t('files_sharing', 'View only')\n\t\t},\n\t\tcanEditText() {\n\t\t\treturn t('files_sharing', 'Can edit')\n\t\t},\n\t\tfileDropText() {\n\t\t\treturn t('files_sharing', 'File drop')\n\t\t},\n\t\tcustomPermissionsText() {\n\t\t\treturn t('files_sharing', 'Custom permissions')\n\t\t},\n\t\tpreSelectedOption() {\n\t\t\t// We remove the share permission for the comparison as it is not relevant for bundled permissions.\n\t\t\tif ((this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE) === BUNDLED_PERMISSIONS.READ_ONLY) {\n\t\t\t\treturn this.canViewText\n\t\t\t} else if (this.share.permissions === BUNDLED_PERMISSIONS.ALL || this.share.permissions === BUNDLED_PERMISSIONS.ALL_FILE) {\n\t\t\t\treturn this.canEditText\n\t\t\t} else if ((this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE) === BUNDLED_PERMISSIONS.FILE_DROP) {\n\t\t\t\treturn this.fileDropText\n\t\t\t}\n\n\t\t\treturn this.customPermissionsText\n\n\t\t},\n\t\toptions() {\n\t\t\tconst options = [this.canViewText, this.canEditText]\n\t\t\tif (this.supportsFileDrop) {\n\t\t\t\toptions.push(this.fileDropText)\n\t\t\t}\n\t\t\toptions.push(this.customPermissionsText)\n\n\t\t\treturn options\n\t\t},\n\t\tsupportsFileDrop() {\n\t\t\tif (this.isFolder && this.config.isPublicUploadEnabled) {\n\t\t\t\tconst shareType = this.share.type ?? this.share.shareType\n\t\t\t\treturn [this.SHARE_TYPES.SHARE_TYPE_LINK, this.SHARE_TYPES.SHARE_TYPE_EMAIL].includes(shareType)\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tdropDownPermissionValue() {\n\t\t\tswitch (this.selectedOption) {\n\t\t\tcase this.canEditText:\n\t\t\t\treturn this.isFolder ? BUNDLED_PERMISSIONS.ALL : BUNDLED_PERMISSIONS.ALL_FILE\n\t\t\tcase this.fileDropText:\n\t\t\t\treturn BUNDLED_PERMISSIONS.FILE_DROP\n\t\t\tcase this.customPermissionsText:\n\t\t\t\treturn 'custom'\n\t\t\tcase this.canViewText:\n\t\t\tdefault:\n\t\t\t\treturn BUNDLED_PERMISSIONS.READ_ONLY\n\t\t\t}\n\t\t},\n\t\tdropdownId() {\n\t\t\t// Generate a unique ID for ARIA attributes\n\t\t\treturn `dropdown-${Math.random().toString(36).substr(2, 9)}`\n\t\t},\n\t},\n\twatch: {\n\t\ttoggle(toggleValue) {\n\t\t\tthis.showDropdown = toggleValue\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.initializeComponent()\n\t\twindow.addEventListener('click', this.handleClickOutside)\n\t},\n\tbeforeDestroy() {\n\t\t// Remove the global click event listener to prevent memory leaks\n\t\twindow.removeEventListener('click', this.handleClickOutside)\n\t},\n\tmethods: {\n\t\ttoggleDropdown() {\n\t\t\tthis.showDropdown = !this.showDropdown\n\t\t\tif (this.showDropdown) {\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tthis.useFocusTrap()\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tthis.clearFocusTrap()\n\t\t\t}\n\t\t},\n\t\tcloseDropdown() {\n\t\t\tthis.clearFocusTrap()\n\t\t\tthis.showDropdown = false\n\t\t},\n\t\tselectOption(option) {\n\t\t\tthis.selectedOption = option\n\t\t\tif (option === this.customPermissionsText) {\n\t\t\t\tthis.$emit('open-sharing-details')\n\t\t\t} else {\n\t\t\t\tthis.share.permissions = this.dropDownPermissionValue\n\t\t\t\tthis.queueUpdate('permissions')\n\t\t\t}\n\t\t\tthis.showDropdown = false\n\t\t},\n\t\tinitializeComponent() {\n\t\t\tthis.selectedOption = this.preSelectedOption\n\t\t},\n\t\thandleClickOutside(event) {\n\t\t\tconst dropdownContainer = this.$refs.quickShareDropdownContainer\n\n\t\t\tif (dropdownContainer && !dropdownContainer.contains(event.target)) {\n\t\t\t\tthis.showDropdown = false\n\t\t\t}\n\t\t},\n\t\tuseFocusTrap() {\n\t\t\t// Create global stack if undefined\n\t\t\t// Use in with trapStack to avoid conflicting traps\n\t\t\tObject.assign(window, { _nc_focus_trap: window._nc_focus_trap || [] })\n\t\t\tconst dropdownElement = this.$refs.quickShareDropdown\n\t\t\tthis.focusTrap = createFocusTrap(dropdownElement, {\n\t\t\t\tallowOutsideClick: true,\n\t\t\t\ttrapStack: window._nc_focus_trap,\n\t\t\t})\n\n\t\t\tthis.focusTrap.activate()\n\t\t},\n\t\tclearFocusTrap() {\n\t\t\tthis.focusTrap?.deactivate()\n\t\t\tthis.focusTrap = null\n\t\t},\n\t\tshiftFocusForward() {\n\t\t\tconst currentElement = document.activeElement\n\t\t\tlet nextElement = currentElement.nextElementSibling\n\t\t\tif (!nextElement) {\n\t\t\t\tnextElement = this.$refs.quickShareDropdown.firstElementChild\n\t\t\t}\n\t\t\tnextElement.focus()\n\t\t},\n\t\tshiftFocusBackward() {\n\t\t\tconst currentElement = document.activeElement\n\t\t\tlet previousElement = currentElement.previousElementSibling\n\t\t\tif (!previousElement) {\n\t\t\t\tpreviousElement = this.$refs.quickShareDropdown.lastElementChild\n\t\t\t}\n\t\t\tpreviousElement.focus()\n\t\t},\n\t\thandleArrowUp() {\n\t\t\tthis.shiftFocusBackward()\n\t\t},\n\t\thandleArrowDown() {\n\t\t\tthis.shiftFocusForward()\n\t\t},\n\t},\n\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.share-select {\n\tposition: relative;\n\tcursor: pointer;\n\n\t.trigger-text {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\talign-items: center;\n\t\tfont-size: 12.5px;\n\t\tgap: 2px;\n\t\tcolor: var(--color-primary-element);\n\t}\n\n\t.share-select-dropdown {\n\t\tposition: absolute;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\ttop: 100%;\n\t\tleft: 0;\n\t\tbackground-color: var(--color-main-background);\n\t\tborder-radius: 8px;\n\t\tbox-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n\t\tborder: 1px solid var(--color-border);\n\t\tpadding: 4px 0;\n\t\tz-index: 1;\n\n\t\t.dropdown-item {\n\t\t\tpadding: 8px;\n\t\t\tfont-size: 12px;\n\t\t\tbackground: none;\n\t\t\tborder: none;\n\t\t\tborder-radius: 0;\n\t\t\tfont: inherit;\n\t\t\tcursor: pointer;\n\t\t\tcolor: inherit;\n\t\t\toutline: none;\n\t\t\twidth: 100%;\n\t\t\twhite-space: nowrap;\n\t\t\ttext-align: left;\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t}\n\n\t\t\t&.selected {\n\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Optional: Add a transition effect for smoother dropdown animation */\n\t.share-select-dropdown {\n\t\tmax-height: 0;\n\t\toverflow: hidden;\n\t\ttransition: max-height 0.3s ease;\n\t}\n\n\t&.active .share-select-dropdown {\n\t\tmax-height: 200px;\n\t\t/* Adjust the value to your desired height */\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=d960cabe&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=d960cabe&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryQuickShareSelect.vue?vue&type=template&id=d960cabe&scoped=true\"\nimport script from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=d960cabe&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d960cabe\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"quickShareDropdownContainer\",class:{ 'active': _vm.showDropdown, 'share-select': true }},[_c('span',{staticClass:\"trigger-text\",attrs:{\"id\":_vm.dropdownId,\"aria-expanded\":_vm.showDropdown,\"aria-haspopup\":true,\"aria-label\":\"Quick share options dropdown\"},on:{\"click\":_vm.toggleDropdown}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.selectedOption)+\"\\n\\t\\t\"),_c('DropdownIcon',{attrs:{\"size\":15}})],1),_vm._v(\" \"),(_vm.showDropdown)?_c('div',{ref:\"quickShareDropdown\",staticClass:\"share-select-dropdown\",attrs:{\"aria-labelledby\":_vm.dropdownId,\"tabindex\":\"0\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"]))return null;return _vm.handleArrowDown.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"]))return null;return _vm.handleArrowUp.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.closeDropdown.apply(null, arguments)}]}},_vm._l((_vm.options),function(option){return _c('button',{key:option,class:{ 'dropdown-item': true, 'selected': option === _vm.selectedOption },attrs:{\"aria-selected\":option === _vm.selectedOption},on:{\"click\":function($event){return _vm.selectOption(option)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(option)+\"\\n\\t\\t\")])}),0):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalShareAction.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalShareAction.vue?vue&type=script&lang=js\"","<!--\n - @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<Component :is=\"data.is\"\n\t\tv-bind=\"data\"\n\t\tv-on=\"action.handlers\">\n\t\t{{ data.text }}\n\t</Component>\n</template>\n\n<script>\nimport Share from '../models/Share.js'\n\nexport default {\n\tname: 'ExternalShareAction',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\taction: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tdata() {\n\t\t\treturn this.action.data(this)\n\t\t},\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./ExternalShareAction.vue?vue&type=template&id=0f0e27d0\"\nimport script from \"./ExternalShareAction.vue?vue&type=script&lang=js\"\nexport * from \"./ExternalShareAction.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.data.is,_vm._g(_vm._b({tag:\"Component\"},'Component',_vm.data,false),_vm.action.handlers),[_vm._v(\"\\n\\t\"+_vm._s(_vm.data.text)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li :class=\"{ 'sharing-entry--share': share }\" class=\"sharing-entry sharing-entry__link\">\n\t\t<NcAvatar :is-no-user=\"true\"\n\t\t\t:icon-class=\"isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'\"\n\t\t\tclass=\"sharing-entry__avatar\" />\n\n\t\t<div class=\"sharing-entry__summary\">\n\t\t\t<div class=\"sharing-entry__desc\" @click.prevent=\"toggleQuickShareSelect\">\n\t\t\t\t<span class=\"sharing-entry__title\" :title=\"title\">\n\t\t\t\t\t{{ title }}\n\t\t\t\t</span>\n\t\t\t\t<p v-if=\"subtitle\">\n\t\t\t\t\t{{ subtitle }}\n\t\t\t\t</p>\n\t\t\t\t<QuickShareSelect v-if=\"share && share.permissions !== undefined\"\n\t\t\t\t\t:share=\"share\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:toggle=\"showDropdown\"\n\t\t\t\t\t@open-sharing-details=\"openShareDetailsForCustomSettings(share)\" />\n\t\t\t</div>\n\n\t\t\t<!-- clipboard -->\n\t\t\t<NcActions v-if=\"share && !isEmailShareType && share.token\" ref=\"copyButton\" class=\"sharing-entry__copy\">\n\t\t\t\t<NcActionButton\t:title=\"copyLinkTooltip\"\n\t\t\t\t\t:aria-label=\"copyLinkTooltip\"\n\t\t\t\t\t:icon=\"copied && copySuccess ? 'icon-checkmark-color' : 'icon-clippy'\"\n\t\t\t\t\t@click.prevent=\"copyLink\" />\n\t\t\t</NcActions>\n\t\t</div>\n\n\t\t<!-- pending actions -->\n\t\t<NcActions v-if=\"!pending && (pendingPassword || pendingEnforcedPassword || pendingExpirationDate)\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\t:aria-label=\"actionsTooltip\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:open.sync=\"open\"\n\t\t\t@close=\"onNewLinkShare\">\n\t\t\t<!-- pending data menu -->\n\t\t\t<NcActionText v-if=\"errors.pending\" icon=\"icon-error\" :class=\"{ error: errors.pending }\">\n\t\t\t\t{{ errors.pending }}\n\t\t\t</NcActionText>\n\t\t\t<NcActionText v-else icon=\"icon-info\">\n\t\t\t\t{{ t('files_sharing', 'Please enter the following required information before creating the share') }}\n\t\t\t</NcActionText>\n\n\t\t\t<!-- password -->\n\t\t\t<NcActionText v-if=\"pendingEnforcedPassword\" icon=\"icon-password\">\n\t\t\t\t{{ t('files_sharing', 'Password protection (enforced)') }}\n\t\t\t</NcActionText>\n\t\t\t<NcActionCheckbox v-else-if=\"pendingPassword\"\n\t\t\t\t:checked.sync=\"isPasswordProtected\"\n\t\t\t\t:disabled=\"config.enforcePasswordForPublicLink || saving\"\n\t\t\t\tclass=\"share-link-password-checkbox\"\n\t\t\t\t@uncheck=\"onPasswordDisable\">\n\t\t\t\t{{ t('files_sharing', 'Password protection') }}\n\t\t\t</NcActionCheckbox>\n\n\t\t\t<NcActionInput v-if=\"pendingEnforcedPassword || share.password\"\n\t\t\t\tclass=\"share-link-password\"\n\t\t\t\t:value.sync=\"share.password\"\n\t\t\t\t:disabled=\"saving\"\n\t\t\t\t:required=\"config.enableLinkPasswordByDefault || config.enforcePasswordForPublicLink\"\n\t\t\t\t:minlength=\"isPasswordPolicyEnabled && config.passwordPolicy.minLength\"\n\t\t\t\ticon=\"\"\n\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t@submit=\"onNewLinkShare\">\n\t\t\t\t{{ t('files_sharing', 'Enter a password') }}\n\t\t\t</NcActionInput>\n\n\t\t\t<!-- expiration date -->\n\t\t\t<NcActionText v-if=\"pendingExpirationDate\" icon=\"icon-calendar-dark\">\n\t\t\t\t{{ t('files_sharing', 'Expiration date (enforced)') }}\n\t\t\t</NcActionText>\n\t\t\t<NcActionInput v-if=\"pendingExpirationDate\"\n\t\t\t\tclass=\"share-link-expire-date\"\n\t\t\t\t:disabled=\"saving || isExpiryDateEnforced\"\n\t\t\t\t:is-native-picker=\"true\"\n\t\t\t\t:hide-label=\"true\"\n\t\t\t\t:value=\"new Date(share.expireDate)\"\n\t\t\t\ttype=\"date\"\n\t\t\t\t:min=\"dateTomorrow\"\n\t\t\t\t:max=\"dateMaxEnforced\"\n\t\t\t\t@input=\"onExpirationChange\">\n\t\t\t\t<!-- let's not submit when picked, the user\n\t\t\t\t\tmight want to still edit or copy the password -->\n\t\t\t\t{{ t('files_sharing', 'Enter a date') }}\n\t\t\t</NcActionInput>\n\n\t\t\t<NcActionButton icon=\"icon-checkmark\" @click.prevent.stop=\"onNewLinkShare\">\n\t\t\t\t{{ t('files_sharing', 'Create share') }}\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton icon=\"icon-close\" @click.prevent.stop=\"onCancel\">\n\t\t\t\t{{ t('files_sharing', 'Cancel') }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\n\t\t<!-- actions -->\n\t\t<NcActions v-else-if=\"!loading\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\t:aria-label=\"actionsTooltip\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:open.sync=\"open\"\n\t\t\t@close=\"onMenuClose\">\n\t\t\t<template v-if=\"share\">\n\t\t\t\t<template v-if=\"share.canEdit && canReshare\">\n\t\t\t\t\t<NcActionButton :disabled=\"saving\" @click.prevent=\"openSharingDetails\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Tune />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ t('files_sharing', 'Customize link') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\n\t\t\t\t<NcActionSeparator />\n\n\t\t\t\t<!-- external actions -->\n\t\t\t\t<ExternalShareAction v-for=\"action in externalLinkActions\"\n\t\t\t\t\t:id=\"action.id\"\n\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t:action=\"action\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:share=\"share\" />\n\n\t\t\t\t<!-- external legacy sharing via url (social...) -->\n\t\t\t\t<NcActionLink v-for=\"({ icon, url, name }, index) in externalLegacyLinkActions\"\n\t\t\t\t\t:key=\"index\"\n\t\t\t\t\t:href=\"url(shareLink)\"\n\t\t\t\t\t:icon=\"icon\"\n\t\t\t\t\ttarget=\"_blank\">\n\t\t\t\t\t{{ name }}\n\t\t\t\t</NcActionLink>\n\n\t\t\t\t<NcActionButton v-if=\"!isEmailShareType && canReshare\"\n\t\t\t\t\tclass=\"new-share-link\"\n\t\t\t\t\ticon=\"icon-add\"\n\t\t\t\t\t@click.prevent.stop=\"onNewLinkShare\">\n\t\t\t\t\t{{ t('files_sharing', 'Add another link') }}\n\t\t\t\t</NcActionButton>\n\n\t\t\t\t<NcActionButton v-if=\"share.canDelete\"\n\t\t\t\t\ticon=\"icon-close\"\n\t\t\t\t\t:disabled=\"saving\"\n\t\t\t\t\t@click.prevent=\"onDelete\">\n\t\t\t\t\t{{ t('files_sharing', 'Unshare') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\n\t\t\t<!-- Create new share -->\n\t\t\t<NcActionButton v-else-if=\"canReshare\"\n\t\t\t\tclass=\"new-share-link\"\n\t\t\t\t:title=\"t('files_sharing', 'Create a new share link')\"\n\t\t\t\t:aria-label=\"t('files_sharing', 'Create a new share link')\"\n\t\t\t\t:icon=\"loading ? 'icon-loading-small' : 'icon-add'\"\n\t\t\t\t@click.prevent.stop=\"onNewLinkShare\" />\n\t\t</NcActions>\n\n\t\t<!-- loading indicator to replace the menu -->\n\t\t<div v-else class=\"icon-loading-small sharing-entry__loading\" />\n\t</li>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { Type as ShareTypes } from '@nextcloud/sharing'\nimport Vue from 'vue'\n\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcActionInput from '@nextcloud/vue/dist/Components/NcActionInput.js'\nimport NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js'\nimport NcActionText from '@nextcloud/vue/dist/Components/NcActionText.js'\nimport NcActionSeparator from '@nextcloud/vue/dist/Components/NcActionSeparator.js'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\n\nimport Tune from 'vue-material-design-icons/Tune.vue'\n\nimport QuickShareSelect from './SharingEntryQuickShareSelect.vue'\n\nimport ExternalShareAction from './ExternalShareAction.vue'\nimport GeneratePassword from '../utils/GeneratePassword.js'\nimport Share from '../models/Share.js'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\n\nexport default {\n\tname: 'SharingEntryLink',\n\n\tcomponents: {\n\t\tExternalShareAction,\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcActionInput,\n\t\tNcActionLink,\n\t\tNcActionText,\n\t\tNcActionSeparator,\n\t\tNcAvatar,\n\t\tTune,\n\t\tQuickShareSelect,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tprops: {\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshowDropdown: false,\n\t\t\tcopySuccess: true,\n\t\t\tcopied: false,\n\n\t\t\t// Are we waiting for password/expiration date\n\t\t\tpending: false,\n\n\t\t\tExternalLegacyLinkActions: OCA.Sharing.ExternalLinkActions.state,\n\t\t\tExternalShareActions: OCA.Sharing.ExternalShareActions.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Link share label\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\ttitle() {\n\t\t\t// if we have a valid existing share (not pending)\n\t\t\tif (this.share && this.share.id) {\n\t\t\t\tif (!this.isShareOwner && this.share.ownerDisplayName) {\n\t\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\t\treturn t('files_sharing', '{shareWith} by {initiator}', {\n\t\t\t\t\t\t\tshareWith: this.share.shareWith,\n\t\t\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\treturn t('files_sharing', 'Shared via link by {initiator}', {\n\t\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (this.share.label && this.share.label.trim() !== '') {\n\t\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\t\treturn t('files_sharing', 'Mail share ({label})', {\n\t\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\treturn t('files_sharing', 'Share link ({label})', {\n\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\treturn this.share.shareWith\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.index > 1) {\n\t\t\t\treturn t('files_sharing', 'Share link ({index})', { index: this.index })\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Share link')\n\t\t},\n\n\t\t/**\n\t\t * Show the email on a second line if a label is set for mail shares\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsubtitle() {\n\t\t\tif (this.isEmailShareType\n\t\t\t\t&& this.title !== this.share.shareWith) {\n\t\t\t\treturn this.share.shareWith\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tdateMaxEnforced() {\n\t\t\tif (this.config.isDefaultExpireDateEnforced) {\n\t\t\t\treturn new Date(new Date().setDate(new Date().getDate() + this.config.defaultExpireDate))\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtected: {\n\t\t\tget() {\n\t\t\t\treturn this.config.enforcePasswordForPublicLink\n\t\t\t\t\t|| !!this.share.password\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\t// TODO: directly save after generation to make sure the share is always protected\n\t\t\t\tVue.set(this.share, 'password', enabled ? await GeneratePassword() : '')\n\t\t\t\tVue.set(this.share, 'newPassword', this.share.password)\n\t\t\t},\n\t\t},\n\n\t\tpasswordExpirationTime() {\n\t\t\tif (this.share.passwordExpirationTime === null) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst expirationTime = moment(this.share.passwordExpirationTime)\n\n\t\t\tif (expirationTime.diff(moment()) < 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn expirationTime.fromNow()\n\t\t},\n\n\t\t/**\n\t\t * Is Talk enabled?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisTalkEnabled() {\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Is it possible to protect the password by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalkAvailable() {\n\t\t\treturn this.isPasswordProtected && this.isTalkEnabled\n\t\t},\n\n\t\t/**\n\t\t * Is the current share password protected by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalk: {\n\t\t\tget() {\n\t\t\t\treturn this.share.sendPasswordByTalk\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tthis.share.sendPasswordByTalk = enabled\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Is the current share an email share ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisEmailShareType() {\n\t\t\treturn this.share\n\t\t\t\t? this.share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL\n\t\t\t\t: false\n\t\t},\n\n\t\tcanTogglePasswordProtectedByTalkAvailable() {\n\t\t\tif (!this.isPasswordProtected) {\n\t\t\t\t// Makes no sense\n\t\t\t\treturn false\n\t\t\t} else if (this.isEmailShareType && !this.hasUnsavedPassword) {\n\t\t\t\t// For email shares we need a new password in order to enable or\n\t\t\t\t// disable\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Anything else should be fine\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * Pending data.\n\t\t * If the share still doesn't have an id, it is not synced\n\t\t * Therefore this is still not valid and requires user input\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tpendingPassword() {\n\t\t\treturn this.config.enableLinkPasswordByDefault && this.share && !this.share.id\n\t\t},\n\t\tpendingEnforcedPassword() {\n\t\t\treturn this.config.enforcePasswordForPublicLink && this.share && !this.share.id\n\t\t},\n\t\tpendingExpirationDate() {\n\t\t\treturn this.config.isDefaultExpireDateEnforced && this.share && !this.share.id\n\t\t},\n\n\t\t// if newPassword exists, but is empty, it means\n\t\t// the user deleted the original password\n\t\thasUnsavedPassword() {\n\t\t\treturn this.share.newPassword !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Return the public share link\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tshareLink() {\n\t\t\treturn window.location.protocol + '//' + window.location.host + generateUrl('/s/') + this.share.token\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message for actions button\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tactionsTooltip() {\n\t\t\treturn t('files_sharing', 'Actions for \"{title}\"', { title: this.title })\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message for copy button\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcopyLinkTooltip() {\n\t\t\tif (this.copied) {\n\t\t\t\tif (this.copySuccess) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\treturn t('files_sharing', 'Cannot copy, please copy the link manually')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Copy public link of \"{title}\" to clipboard', { title: this.title })\n\t\t},\n\n\t\t/**\n\t\t * External additionnai actions for the menu\n\t\t *\n\t\t * @deprecated use OCA.Sharing.ExternalShareActions\n\t\t * @return {Array}\n\t\t */\n\t\texternalLegacyLinkActions() {\n\t\t\treturn this.ExternalLegacyLinkActions.actions\n\t\t},\n\n\t\t/**\n\t\t * Additional actions for the menu\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalLinkActions() {\n\t\t\t// filter only the registered actions for said link\n\t\t\treturn this.ExternalShareActions.actions\n\t\t\t\t.filter(action => action.shareType.includes(ShareTypes.SHARE_TYPE_LINK)\n\t\t\t\t\t|| action.shareType.includes(ShareTypes.SHARE_TYPE_EMAIL))\n\t\t},\n\n\t\tisPasswordPolicyEnabled() {\n\t\t\treturn typeof this.config.passwordPolicy === 'object'\n\t\t},\n\n\t\tcanChangeHideDownload() {\n\t\t\tconst hasDisabledDownload = (shareAttribute) => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.enabled === false\n\t\t\treturn this.fileInfo.shareAttributes.some(hasDisabledDownload)\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Create a new share link and append it to the list\n\t\t */\n\t\tasync onNewLinkShare() {\n\t\t\t// do not run again if already loading\n\t\t\tif (this.loading) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst shareDefaults = {\n\t\t\t\tshare_type: ShareTypes.SHARE_TYPE_LINK,\n\t\t\t}\n\t\t\tif (this.config.isDefaultExpireDateEnforced) {\n\t\t\t\t// default is empty string if not set\n\t\t\t\t// expiration is the share object key, not expireDate\n\t\t\t\tshareDefaults.expiration = this.formatDateToString(this.config.defaultExpirationDate)\n\t\t\t}\n\n\t\t\t// do not push yet if we need a password or an expiration date: show pending menu\n\t\t\tif (this.config.enableLinkPasswordByDefault || this.config.enforcePasswordForPublicLink || this.config.isDefaultExpireDateEnforced) {\n\t\t\t\tthis.pending = true\n\n\t\t\t\t// if a share already exists, pushing it\n\t\t\t\tif (this.share && !this.share.id) {\n\t\t\t\t\t// if the share is valid, create it on the server\n\t\t\t\t\tif (this.checkShare(this.share)) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait this.pushNewLinkShare(this.share, true)\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tthis.pending = false\n\t\t\t\t\t\t\tconsole.error(e)\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.open = true\n\t\t\t\t\t\tOC.Notification.showTemporary(t('files_sharing', 'Error, please enter proper password and/or expiration date'))\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// ELSE, show the pending popovermenu\n\t\t\t\t// if password default or enforced, pre-fill with random one\n\t\t\t\tif (this.config.enableLinkPasswordByDefault || this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\tshareDefaults.password = await GeneratePassword()\n\t\t\t\t}\n\n\t\t\t\t// create share & close menu\n\t\t\t\tconst share = new Share(shareDefaults)\n\t\t\t\tconst component = await new Promise(resolve => {\n\t\t\t\t\tthis.$emit('add:share', share, resolve)\n\t\t\t\t})\n\n\t\t\t\t// open the menu on the\n\t\t\t\t// freshly created share component\n\t\t\t\tthis.open = false\n\t\t\t\tthis.pending = false\n\t\t\t\tcomponent.open = true\n\n\t\t\t\t// Nothing is enforced, creating share directly\n\t\t\t} else {\n\t\t\t\tconst share = new Share(shareDefaults)\n\t\t\t\tawait this.pushNewLinkShare(share)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Push a new link share to the server\n\t\t * And update or append to the list\n\t\t * accordingly\n\t\t *\n\t\t * @param {Share} share the new share\n\t\t * @param {boolean} [update] do we update the current share ?\n\t\t */\n\t\tasync pushNewLinkShare(share, update) {\n\t\t\ttry {\n\t\t\t\t// do nothing if we're already pending creation\n\t\t\t\tif (this.loading) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.errors = {}\n\n\t\t\t\tconst path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t\t\tconst options = {\n\t\t\t\t\tpath,\n\t\t\t\t\tshareType: ShareTypes.SHARE_TYPE_LINK,\n\t\t\t\t\tpassword: share.password,\n\t\t\t\t\texpireDate: share.expireDate,\n\t\t\t\t\tattributes: JSON.stringify(this.fileInfo.shareAttributes),\n\t\t\t\t\t// we do not allow setting the publicUpload\n\t\t\t\t\t// before the share creation.\n\t\t\t\t\t// Todo: We also need to fix the createShare method in\n\t\t\t\t\t// lib/Controller/ShareAPIController.php to allow file drop\n\t\t\t\t\t// (currently not supported on create, only update)\n\t\t\t\t}\n\n\t\t\t\tconsole.debug('Creating link share with options', options)\n\t\t\t\tconst newShare = await this.createShare(options)\n\n\t\t\t\tthis.open = false\n\t\t\t\tconsole.debug('Link share created', newShare)\n\n\t\t\t\t// if share already exists, copy link directly on next tick\n\t\t\t\tlet component\n\t\t\t\tif (update) {\n\t\t\t\t\tcomponent = await new Promise(resolve => {\n\t\t\t\t\t\tthis.$emit('update:share', newShare, resolve)\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\t// adding new share to the array and copying link to clipboard\n\t\t\t\t\t// using promise so that we can copy link in the same click function\n\t\t\t\t\t// and avoid firefox copy permissions issue\n\t\t\t\t\tcomponent = await new Promise(resolve => {\n\t\t\t\t\t\tthis.$emit('add:share', newShare, resolve)\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\t// Execute the copy link method\n\t\t\t\t// freshly created share component\n\t\t\t\t// ! somehow does not works on firefox !\n\t\t\t\tif (!this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\t// Only copy the link when the password was not forced,\n\t\t\t\t\t// otherwise the user needs to copy/paste the password before finishing the share.\n\t\t\t\t\tcomponent.copyLink()\n\t\t\t\t}\n\t\t\t\tshowSuccess(t('files_sharing', 'Link share created'))\n\n\t\t\t} catch (data) {\n\t\t\t\tconst message = data?.response?.data?.ocs?.meta?.message\n\t\t\t\tif (!message) {\n\t\t\t\t\tshowError(t('files_sharing', 'Error while creating the share'))\n\t\t\t\t\tconsole.error(data)\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (message.match(/password/i)) {\n\t\t\t\t\tthis.onSyncError('password', message)\n\t\t\t\t} else if (message.match(/date/i)) {\n\t\t\t\t\tthis.onSyncError('expireDate', message)\n\t\t\t\t} else {\n\t\t\t\t\tthis.onSyncError('pending', message)\n\t\t\t\t}\n\t\t\t\tthrow data\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\tasync copyLink() {\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(this.shareLink)\n\t\t\t\tshowSuccess(t('files_sharing', 'Link copied'))\n\t\t\t\t// focus and show the tooltip\n\t\t\t\tthis.$refs.copyButton.$el.focus()\n\t\t\t\tthis.copySuccess = true\n\t\t\t\tthis.copied = true\n\t\t\t} catch (error) {\n\t\t\t\tthis.copySuccess = false\n\t\t\t\tthis.copied = true\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.copySuccess = false\n\t\t\t\t\tthis.copied = false\n\t\t\t\t}, 4000)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update newPassword values\n\t\t * of share. If password is set but not newPassword\n\t\t * then the user did not changed the password\n\t\t * If both co-exists, the password have changed and\n\t\t * we show it in plain text.\n\t\t * Then on submit (or menu close), we sync it.\n\t\t *\n\t\t * @param {string} password the changed password\n\t\t */\n\t\tonPasswordChange(password) {\n\t\t\tthis.$set(this.share, 'newPassword', password)\n\t\t},\n\n\t\t/**\n\t\t * Uncheck password protection\n\t\t * We need this method because @update:checked\n\t\t * is ran simultaneously as @uncheck, so we\n\t\t * cannot ensure data is up-to-date\n\t\t */\n\t\tonPasswordDisable() {\n\t\t\tthis.share.password = ''\n\n\t\t\t// reset password state after sync\n\t\t\tthis.$delete(this.share, 'newPassword')\n\n\t\t\t// only update if valid share.\n\t\t\tif (this.share.id) {\n\t\t\t\tthis.queueUpdate('password')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Menu have been closed or password has been submitted.\n\t\t * The only property that does not get\n\t\t * synced automatically is the password\n\t\t * So let's check if we have an unsaved\n\t\t * password.\n\t\t * expireDate is saved on datepicker pick\n\t\t * or close.\n\t\t */\n\t\tonPasswordSubmit() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t\tthis.queueUpdate('password')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update the password along with \"sendPasswordByTalk\".\n\t\t *\n\t\t * If the password was modified the new password is sent; otherwise\n\t\t * updating a mail share would fail, as in that case it is required that\n\t\t * a new password is set when enabling or disabling\n\t\t * \"sendPasswordByTalk\".\n\t\t */\n\t\tonPasswordProtectedByTalkChange() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t}\n\n\t\t\tthis.queueUpdate('sendPasswordByTalk', 'password')\n\t\t},\n\n\t\t/**\n\t\t * Save potential changed data on menu close\n\t\t */\n\t\tonMenuClose() {\n\t\t\tthis.onPasswordSubmit()\n\t\t\tthis.onNoteSubmit()\n\t\t},\n\n\t\t/**\n\t\t * Cancel the share creation\n\t\t * Used in the pending popover\n\t\t */\n\t\tonCancel() {\n\t\t\t// this.share already exists at this point,\n\t\t\t// but is incomplete as not pushed to server\n\t\t\t// YET. We can safely delete the share :)\n\t\t\tthis.$emit('remove:share', this.share)\n\t\t},\n\n\t\ttoggleQuickShareSelect() {\n\t\t\tthis.showDropdown = !this.showDropdown\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-left: 10px;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\n\t&__desc {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tline-height: 1.2em;\n\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t&__title {\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t }\n\n\t &__copy {\n\n\t }\n\t}\n\n\t&:not(.sharing-entry--share) &__actions {\n\t\t.new-share-link {\n\t\t\tborder-top: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t::v-deep .avatar-link-share {\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t.sharing-entry__action--public-upload {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__loading {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t\tmargin: 0;\n\t\tpadding: 14px;\n\t\tmargin-left: auto;\n\t}\n\n\t// put menus to the left\n\t// but only the first one\n\t.action-item {\n\n\t\t~.action-item,\n\t\t~.sharing-entry__loading {\n\t\t\tmargin-left: 0;\n\t\t}\n\t}\n\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=528aec8a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=528aec8a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryLink.vue?vue&type=template&id=528aec8a&scoped=true\"\nimport script from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryLink.vue?vue&type=style&index=0&id=528aec8a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"528aec8a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<ul v-if=\"canLinkShare\" class=\"sharing-link-list\">\n\t\t<!-- If no link shares, show the add link default entry -->\n\t\t<SharingEntryLink v-if=\"!hasLinkShares && canReshare\"\n\t\t\t:can-reshare=\"canReshare\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t@add:share=\"addShare\" />\n\n\t\t<!-- Else we display the list -->\n\t\t<template v-if=\"hasShares\">\n\t\t\t<!-- using shares[index] to work with .sync -->\n\t\t\t<SharingEntryLink v-for=\"(share, index) in shares\"\n\t\t\t\t:key=\"share.id\"\n\t\t\t\t:index=\"shares.length > 1 ? index + 1 : null\"\n\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t:share.sync=\"shares[index]\"\n\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t@add:share=\"addShare(...arguments)\"\n\t\t\t\t@update:share=\"awaitForShare(...arguments)\"\n\t\t\t\t@remove:share=\"removeShare\"\n\t\t\t\t@open-sharing-details=\"openSharingDetails(share)\" />\n\t\t</template>\n\t</ul>\n</template>\n\n<script>\nimport { getCapabilities } from '@nextcloud/capabilities'\n\n// eslint-disable-next-line no-unused-vars\nimport Share from '../models/Share.js'\nimport ShareTypes from '../mixins/ShareTypes.js'\nimport SharingEntryLink from '../components/SharingEntryLink.vue'\nimport ShareDetails from '../mixins/ShareDetails.js'\n\nexport default {\n\tname: 'SharingLinkList',\n\n\tcomponents: {\n\t\tSharingEntryLink,\n\t},\n\n\tmixins: [ShareTypes, ShareDetails],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcanLinkShare: getCapabilities().files_sharing.public.enabled,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Do we have link shares?\n\t\t * Using this to still show the `new link share`\n\t\t * button regardless of mail shares\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\thasLinkShares() {\n\t\t\treturn this.shares.filter(share => share.type === this.SHARE_TYPES.SHARE_TYPE_LINK).length > 0\n\t\t},\n\n\t\t/**\n\t\t * Do we have any link or email shares?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasShares() {\n\t\t\treturn this.shares.length > 0\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Add a new share into the link shares list\n\t\t * and return the newly created share component\n\t\t *\n\t\t * @param {Share} share the share to add to the array\n\t\t * @param {Function} resolve a function to run after the share is added and its component initialized\n\t\t */\n\t\taddShare(share, resolve) {\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.unshift(share)\n\t\t\tthis.awaitForShare(share, resolve)\n\t\t},\n\n\t\t/**\n\t\t * Await for next tick and render after the list updated\n\t\t * Then resolve with the matched vue component of the\n\t\t * provided share object\n\t\t *\n\t\t * @param {Share} share newly created share\n\t\t * @param {Function} resolve a function to execute after\n\t\t */\n\t\tawaitForShare(share, resolve) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tconst newShare = this.$children.find(component => component.share === share)\n\t\t\t\tif (newShare) {\n\t\t\t\t\tresolve(newShare)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\tconst index = this.shares.findIndex(item => item === share)\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.splice(index, 1)\n\t\t},\n\t},\n}\n</script>\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry sharing-entry__link\",class:{ 'sharing-entry--share': _vm.share }},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":true,\"icon-class\":_vm.isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c('div',{staticClass:\"sharing-entry__desc\",on:{\"click\":function($event){$event.preventDefault();return _vm.toggleQuickShareSelect.apply(null, arguments)}}},[_c('span',{staticClass:\"sharing-entry__title\",attrs:{\"title\":_vm.title}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share && _vm.share.permissions !== undefined)?_c('QuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo,\"toggle\":_vm.showDropdown},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}}):_vm._e()],1),_vm._v(\" \"),(_vm.share && !_vm.isEmailShareType && _vm.share.token)?_c('NcActions',{ref:\"copyButton\",staticClass:\"sharing-entry__copy\"},[_c('NcActionButton',{attrs:{\"title\":_vm.copyLinkTooltip,\"aria-label\":_vm.copyLinkTooltip,\"icon\":_vm.copied && _vm.copySuccess ? 'icon-checkmark-color' : 'icon-clippy'},on:{\"click\":function($event){$event.preventDefault();return _vm.copyLink.apply(null, arguments)}}})],1):_vm._e()],1),_vm._v(\" \"),(!_vm.pending && (_vm.pendingPassword || _vm.pendingEnforcedPassword || _vm.pendingExpirationDate))?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onNewLinkShare}},[(_vm.errors.pending)?_c('NcActionText',{class:{ error: _vm.errors.pending },attrs:{\"icon\":\"icon-error\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.errors.pending)+\"\\n\\t\\t\")]):_c('NcActionText',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Please enter the following required information before creating the share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.pendingEnforcedPassword)?_c('NcActionText',{attrs:{\"icon\":\"icon-password\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password protection (enforced)'))+\"\\n\\t\\t\")]):(_vm.pendingPassword)?_c('NcActionCheckbox',{staticClass:\"share-link-password-checkbox\",attrs:{\"checked\":_vm.isPasswordProtected,\"disabled\":_vm.config.enforcePasswordForPublicLink || _vm.saving},on:{\"update:checked\":function($event){_vm.isPasswordProtected=$event},\"uncheck\":_vm.onPasswordDisable}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password protection'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.pendingEnforcedPassword || _vm.share.password)?_c('NcActionInput',{staticClass:\"share-link-password\",attrs:{\"value\":_vm.share.password,\"disabled\":_vm.saving,\"required\":_vm.config.enableLinkPasswordByDefault || _vm.config.enforcePasswordForPublicLink,\"minlength\":_vm.isPasswordPolicyEnabled && _vm.config.passwordPolicy.minLength,\"icon\":\"\",\"autocomplete\":\"new-password\"},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"password\", $event)},\"submit\":_vm.onNewLinkShare}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Enter a password'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.pendingExpirationDate)?_c('NcActionText',{attrs:{\"icon\":\"icon-calendar-dark\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Expiration date (enforced)'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.pendingExpirationDate)?_c('NcActionInput',{staticClass:\"share-link-expire-date\",attrs:{\"disabled\":_vm.saving || _vm.isExpiryDateEnforced,\"is-native-picker\":true,\"hide-label\":true,\"value\":new Date(_vm.share.expireDate),\"type\":\"date\",\"min\":_vm.dateTomorrow,\"max\":_vm.dateMaxEnforced},on:{\"input\":_vm.onExpirationChange}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Enter a date'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":\"icon-checkmark\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":\"icon-close\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onCancel.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\")])],1):(!_vm.loading)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onMenuClose}},[(_vm.share)?[(_vm.share.canEdit && _vm.canReshare)?[_c('NcActionButton',{attrs:{\"disabled\":_vm.saving},on:{\"click\":function($event){$event.preventDefault();return _vm.openSharingDetails.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Tune')]},proxy:true}],null,false,961531849)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Customize link'))+\"\\n\\t\\t\\t\\t\")])]:_vm._e(),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.externalLinkActions),function(action){return _c('ExternalShareAction',{key:action.id,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_vm._l((_vm.externalLegacyLinkActions),function({ icon, url, name },index){return _c('NcActionLink',{key:index,attrs:{\"href\":url(_vm.shareLink),\"icon\":icon,\"target\":\"_blank\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(name)+\"\\n\\t\\t\\t\")])}),_vm._v(\" \"),(!_vm.isEmailShareType && _vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",attrs:{\"icon\":\"icon-add\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Add another link'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"icon\":\"icon-close\",\"disabled\":_vm.saving},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\\t\\t\")]):_vm._e()]:(_vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",attrs:{\"title\":_vm.t('files_sharing', 'Create a new share link'),\"aria-label\":_vm.t('files_sharing', 'Create a new share link'),\"icon\":_vm.loading ? 'icon-loading-small' : 'icon-add'},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}}}):_vm._e()],2):_c('div',{staticClass:\"icon-loading-small sharing-entry__loading\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SharingLinkList.vue?vue&type=template&id=291d4fee\"\nimport script from \"./SharingLinkList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingLinkList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{staticClass:\"sharing-sharee-list\"},_vm._l((_vm.shares),function(share){return _c('SharingEntry',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share,\"is-unique\":_vm.isUnique(share)},on:{\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li class=\"sharing-entry\">\n\t\t<NcAvatar class=\"sharing-entry__avatar\"\n\t\t\t:is-no-user=\"share.type !== SHARE_TYPES.SHARE_TYPE_USER\"\n\t\t\t:user=\"share.shareWith\"\n\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t:menu-position=\"'left'\"\n\t\t\t:url=\"share.shareWithAvatar\" />\n\n\t\t<div class=\"sharing-entry__summary\" @click.prevent=\"toggleQuickShareSelect\">\n\t\t\t<component :is=\"share.shareWithLink ? 'a' : 'div'\"\n\t\t\t\t:title=\"tooltip\"\n\t\t\t\t:aria-label=\"tooltip\"\n\t\t\t\t:href=\"share.shareWithLink\"\n\t\t\t\tclass=\"sharing-entry__summary__desc\">\n\t\t\t\t<span>{{ title }}\n\t\t\t\t\t<span v-if=\"!isUnique\" class=\"sharing-entry__summary__desc-unique\"> ({{\n\t\t\t\t\t\tshare.shareWithDisplayNameUnique }})</span>\n\t\t\t\t\t<small v-if=\"hasStatus && share.status.message\">({{ share.status.message }})</small>\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t\t<QuickShareSelect :share=\"share\"\n\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t:toggle=\"showDropdown\"\n\t\t\t\t@open-sharing-details=\"openShareDetailsForCustomSettings(share)\" />\n\t\t</div>\n\t\t<NcButton class=\"sharing-entry__action\"\n\t\t\t:aria-label=\"t('files_sharing', 'Open Sharing Details')\"\n\t\t\ttype=\"tertiary-no-background\"\n\t\t\t@click=\"openSharingDetails(share)\">\n\t\t\t<template #icon>\n\t\t\t\t<DotsHorizontalIcon :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</li>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\n\nimport QuickShareSelect from './SharingEntryQuickShareSelect.vue'\n\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\n\nexport default {\n\tname: 'SharingEntry',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tNcAvatar,\n\t\tDotsHorizontalIcon,\n\t\tNcSelect,\n\t\tQuickShareSelect,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tdata() {\n\t\treturn {\n\t\t\tshowDropdown: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\ttitle() {\n\t\t\tlet title = this.share.shareWithDisplayName\n\t\t\tif (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'group')})`\n\t\t\t} else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_ROOM) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'conversation')})`\n\t\t\t} else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'remote')})`\n\t\t\t} else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'remote group')})`\n\t\t\t} else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GUEST) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'guest')})`\n\t\t\t}\n\t\t\treturn title\n\t\t},\n\t\ttooltip() {\n\t\t\tif (this.share.owner !== this.share.uidFileOwner) {\n\t\t\t\tconst data = {\n\t\t\t\t\t// todo: strong or italic?\n\t\t\t\t\t// but the t function escape any html from the data :/\n\t\t\t\t\tuser: this.share.shareWithDisplayName,\n\t\t\t\t\towner: this.share.ownerDisplayName,\n\t\t\t\t}\n\t\t\t\tif (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP) {\n\t\t\t\t\treturn t('files_sharing', 'Shared with the group {user} by {owner}', data)\n\t\t\t\t} else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_ROOM) {\n\t\t\t\t\treturn t('files_sharing', 'Shared with the conversation {user} by {owner}', data)\n\t\t\t\t}\n\n\t\t\t\treturn t('files_sharing', 'Shared with {user} by {owner}', data)\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\thasStatus() {\n\t\t\tif (this.share.type !== this.SHARE_TYPES.SHARE_TYPE_USER) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn (typeof this.share.status === 'object' && !Array.isArray(this.share.status))\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Save potential changed data on menu close\n\t\t */\n\t\tonMenuClose() {\n\t\t\tthis.onNoteSubmit()\n\t\t},\n\t\ttoggleQuickShareSelect() {\n\t\t\tthis.showDropdown = !this.showDropdown\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-left: 10px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\n\t\t&__desc {\n\t\t\tdisplay: inline-block;\n\t\t\tpadding-bottom: 0;\n\t\t\tline-height: 1.2em;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\tp,\n\t\t\tsmall {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&-unique {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\t}\n\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=7d732267&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=7d732267&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntry.vue?vue&type=template&id=7d732267&scoped=true\"\nimport script from \"./SharingEntry.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntry.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntry.vue?vue&type=style&index=0&id=7d732267&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d732267\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<ul class=\"sharing-sharee-list\">\n\t\t<SharingEntry v-for=\"share in shares\"\n\t\t\t:key=\"share.id\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t:share=\"share\"\n\t\t\t:is-unique=\"isUnique(share)\"\n\t\t\t@open-sharing-details=\"openSharingDetails(share)\" />\n\t</ul>\n</template>\n\n<script>\n// eslint-disable-next-line no-unused-vars\nimport SharingEntry from '../components/SharingEntry.vue'\nimport ShareTypes from '../mixins/ShareTypes.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\n\nexport default {\n\tname: 'SharingList',\n\n\tcomponents: {\n\t\tSharingEntry,\n\t},\n\n\tmixins: [ShareTypes, ShareDetails],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { },\n\t\t\trequired: true,\n\t\t},\n\t\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\thasShares() {\n\t\t\treturn this.shares.length === 0\n\t\t},\n\t\tisUnique() {\n\t\t\treturn (share) => {\n\t\t\t\treturn [...this.shares].filter((item) => {\n\t\t\t\t\treturn share.type === this.SHARE_TYPES.SHARE_TYPE_USER && share.shareWithDisplayName === item.shareWithDisplayName\n\t\t\t\t}).length <= 1\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.type !== _vm.SHARE_TYPES.SHARE_TYPE_USER,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":'left',\"url\":_vm.share.shareWithAvatar}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\",on:{\"click\":function($event){$event.preventDefault();return _vm.toggleQuickShareSelect.apply(null, arguments)}}},[_c(_vm.share.shareWithLink ? 'a' : 'div',{tag:\"component\",staticClass:\"sharing-entry__summary__desc\",attrs:{\"title\":_vm.tooltip,\"aria-label\":_vm.tooltip,\"href\":_vm.share.shareWithLink}},[_c('span',[_vm._v(_vm._s(_vm.title)+\"\\n\\t\\t\\t\\t\"),(!_vm.isUnique)?_c('span',{staticClass:\"sharing-entry__summary__desc-unique\"},[_vm._v(\" (\"+_vm._s(_vm.share.shareWithDisplayNameUnique)+\")\")]):_vm._e(),_vm._v(\" \"),(_vm.hasStatus && _vm.share.status.message)?_c('small',[_vm._v(\"(\"+_vm._s(_vm.share.status.message)+\")\")]):_vm._e()])]),_vm._v(\" \"),_c('QuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo,\"toggle\":_vm.showDropdown},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}})],1),_vm._v(\" \"),_c('NcButton',{staticClass:\"sharing-entry__action\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Open Sharing Details'),\"type\":\"tertiary-no-background\"},on:{\"click\":function($event){return _vm.openSharingDetails(_vm.share)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SharingList.vue?vue&type=template&id=445a39ed\"\nimport script from \"./SharingList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTabDetailsView\"},[_c('div',{staticClass:\"sharingTabDetailsView__header\"},[_c('span',[(_vm.isUserShare)?_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.shareType !== _vm.SHARE_TYPES.SHARE_TYPE_USER,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":'left',\"url\":_vm.share.shareWithAvatar}}):_vm._e(),_vm._v(\" \"),_c(_vm.getShareTypeIcon(_vm.share.type),{tag:\"component\",attrs:{\"size\":32}})],1),_vm._v(\" \"),_c('span',[_c('h1',[_vm._v(_vm._s(_vm.title))])])]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__wrapper\"},[_c('div',{ref:\"quickPermissions\",staticClass:\"sharingTabDetailsView__quick-permissions\"},[_c('div',[_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.READ_ONLY.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ViewIcon',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'View only'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.ALL.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('EditIcon',{attrs:{\"size\":20}})]},proxy:true}])},[(_vm.allowsFileDrop)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow upload and editing'))+\"\\n\\t\\t\\t\\t\\t\")]:[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow editing'))+\"\\n\\t\\t\\t\\t\\t\")]],2),_vm._v(\" \"),(_vm.allowsFileDrop)?_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.FILE_DROP.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('UploadIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1083194048)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'File drop'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',[_vm._v(_vm._s(_vm.t('files_sharing', 'Upload only')))])]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"checked\":_vm.sharingPermission,\"value\":'custom',\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.expandCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',[_vm._v(_vm._s(_vm.customPermissionsList))])])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__advanced-control\"},[_c('NcButton',{attrs:{\"type\":\"tertiary\",\"id\":\"advancedSectionAccordionAdvancedControl\",\"alignment\":\"end-reverse\",\"aria-controls\":\"advancedSectionAccordionAdvanced\",\"aria-expanded\":_vm.advancedControlExpandedValue},on:{\"click\":function($event){_vm.advancedSectionAccordionExpanded = !_vm.advancedSectionAccordionExpanded}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!_vm.advancedSectionAccordionExpanded)?_c('MenuDownIcon'):_c('MenuUpIcon')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Advanced settings'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),(_vm.advancedSectionAccordionExpanded)?_c('div',{staticClass:\"sharingTabDetailsView__advanced\",attrs:{\"id\":\"advancedSectionAccordionAdvanced\",\"aria-labelledby\":\"advancedSectionAccordionAdvancedControl\",\"role\":\"region\"}},[_c('section',[(_vm.isPublicShare)?_c('NcInputField',{attrs:{\"value\":_vm.share.label,\"type\":\"text\",\"label\":_vm.t('files_sharing', 'Share label')},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"label\", $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?[_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.isPasswordProtected,\"disabled\":_vm.isPasswordEnforced},on:{\"update:checked\":function($event){_vm.isPasswordProtected=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Set password'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isPasswordProtected)?_c('NcInputField',{attrs:{\"type\":_vm.hasUnsavedPassword ? 'text' : 'password',\"value\":_vm.hasUnsavedPassword ? _vm.share.newPassword : '***************',\"error\":_vm.passwordError,\"required\":_vm.isPasswordEnforced,\"label\":_vm.t('files_sharing', 'Password')},on:{\"update:value\":_vm.onPasswordChange}}):_vm._e(),_vm._v(\" \"),(_vm.isEmailShareType && _vm.passwordExpirationTime)?_c('span',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime: _vm.passwordExpirationTime }))+\"\\n\\t\\t\\t\\t\\t\")]):(_vm.isEmailShareType && _vm.passwordExpirationTime !== null)?_c('span',{attrs:{\"icon\":\"icon-error\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expired'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()]:_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.hasExpirationDate,\"disabled\":_vm.isExpiryDateEnforced},on:{\"update:checked\":function($event){_vm.hasExpirationDate=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.isExpiryDateEnforced\n\t\t\t\t\t\t? _vm.t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t: _vm.t('files_sharing', 'Set expiration date'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.hasExpirationDate)?_c('NcDateTimePickerNative',{attrs:{\"id\":\"share-date-picker\",\"value\":new Date(_vm.share.expireDate ?? _vm.dateTomorrow),\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced,\"hide-label\":true,\"placeholder\":_vm.t('files_sharing', 'Expiration date'),\"type\":\"date\"},on:{\"input\":_vm.onExpirationChange}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.canChangeHideDownload,\"checked\":_vm.share.hideDownload},on:{\"update:checked\":[function($event){return _vm.$set(_vm.share, \"hideDownload\", $event)},function($event){return _vm.queueUpdate('hideDownload')}]}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Hide download'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.canTogglePasswordProtectedByTalkAvailable)?_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.isPasswordProtectedByTalk},on:{\"update:checked\":[function($event){_vm.isPasswordProtectedByTalk=$event},_vm.onPasswordProtectedByTalkChange]}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Video verification'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isPublicShare)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDownload,\"checked\":_vm.canDownload},on:{\"update:checked\":function($event){_vm.canDownload=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow download'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.writeNoteToRecipientIsChecked},on:{\"update:checked\":function($event){_vm.writeNoteToRecipientIsChecked=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Note to recipient'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.writeNoteToRecipientIsChecked)?[_c('label',{attrs:{\"for\":\"share-note-textarea\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Enter a note for the share recipient'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('textarea',{attrs:{\"id\":\"share-note-textarea\"},domProps:{\"value\":_vm.share.note},on:{\"input\":function($event){_vm.share.note = $event.target.value}}})]:_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.setCustomPermissions},on:{\"update:checked\":function($event){_vm.setCustomPermissions=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.setCustomPermissions)?_c('section',{staticClass:\"custom-permissions-group\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.allowsFileDrop && _vm.share.type === _vm.SHARE_TYPES.SHARE_TYPE_LINK,\"checked\":_vm.hasRead},on:{\"update:checked\":function($event){_vm.hasRead=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Read'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isFolder)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetCreate,\"checked\":_vm.canCreate},on:{\"update:checked\":function($event){_vm.canCreate=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetEdit,\"checked\":_vm.canEdit},on:{\"update:checked\":function($event){_vm.canEdit=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Edit'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.config.isResharingAllowed && _vm.share.type !== _vm.SHARE_TYPES.SHARE_TYPE_LINK)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetReshare,\"checked\":_vm.canReshare},on:{\"update:checked\":function($event){_vm.canReshare=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDelete,\"checked\":_vm.canDelete},on:{\"update:checked\":function($event){_vm.canDelete=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete'))+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__delete\"},[(!_vm.isNewShare)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Delete share'),\"disabled\":false,\"readonly\":false,\"type\":\"tertiary\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":16}})]},proxy:true}],null,false,2746485232)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()],1)],2)]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__footer\"},[_c('div',{staticClass:\"button-group\"},[_c('NcButton',{on:{\"click\":function($event){return _vm.$emit('close-sharing-details')}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveShare},scopedSlots:_vm._u([(_vm.creating)?{key:\"icon\",fn:function(){return [_c('NcLoadingIcon')]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.shareButtonText)+\"\\n\\t\\t\\t\\t\")])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon circle-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CircleOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CircleOutline.vue?vue&type=template&id=ba929d5a\"\nimport script from \"./CircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon circle-outline-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon email-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EmailIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=a8309a32\"\nimport script from \"./Email.vue?vue&type=script&lang=js\"\nexport * from \"./Email.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon email-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon share-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ShareCircleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ShareCircle.vue?vue&type=template&id=34fe9a74\"\nimport script from \"./ShareCircle.vue?vue&type=script&lang=js\"\nexport * from \"./ShareCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon share-circle-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon account-circle-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountCircleOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./AccountCircleOutline.vue?vue&type=template&id=a376f27a\"\nimport script from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-circle-outline-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div class=\"sharingTabDetailsView\">\n\t\t<div class=\"sharingTabDetailsView__header\">\n\t\t\t<span>\n\t\t\t\t<NcAvatar v-if=\"isUserShare\"\n\t\t\t\t\tclass=\"sharing-entry__avatar\"\n\t\t\t\t\t:is-no-user=\"share.shareType !== SHARE_TYPES.SHARE_TYPE_USER\"\n\t\t\t\t\t:user=\"share.shareWith\"\n\t\t\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t\t\t:menu-position=\"'left'\"\n\t\t\t\t\t:url=\"share.shareWithAvatar\" />\n\t\t\t\t<component :is=\"getShareTypeIcon(share.type)\" :size=\"32\" />\n\t\t\t</span>\n\t\t\t<span>\n\t\t\t\t<h1>{{ title }}</h1>\n\t\t\t</span>\n\t\t</div>\n\t\t<div class=\"sharingTabDetailsView__wrapper\">\n\t\t\t<div ref=\"quickPermissions\"\n\t\t\t\tclass=\"sharingTabDetailsView__quick-permissions\">\n\t\t\t\t<div>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.READ_ONLY.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'View only') }}\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ViewIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.ALL.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t<template v-if=\"allowsFileDrop\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Allow upload and editing') }}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Allow editing') }}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<EditIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"allowsFileDrop\"\n\t\t\t\t\t\t:button-variant=\"true\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.FILE_DROP.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'File drop') }}\n\t\t\t\t\t\t<small>{{ t('files_sharing', 'Upload only') }}</small>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<UploadIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"'custom'\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"expandCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Custom permissions') }}\n\t\t\t\t\t\t<small>{{ customPermissionsList }}</small>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<DotsHorizontalIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"sharingTabDetailsView__advanced-control\">\n\t\t\t\t<NcButton type=\"tertiary\"\n\t\t\t\t\tid=\"advancedSectionAccordionAdvancedControl\"\n\t\t\t\t\talignment=\"end-reverse\"\n\t\t\t\t\taria-controls=\"advancedSectionAccordionAdvanced\"\n\t\t\t\t\t:aria-expanded=\"advancedControlExpandedValue\"\n\t\t\t\t\t@click=\"advancedSectionAccordionExpanded = !advancedSectionAccordionExpanded\">\n\t\t\t\t\t{{ t('files_sharing', 'Advanced settings') }}\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<MenuDownIcon v-if=\"!advancedSectionAccordionExpanded\" />\n\t\t\t\t\t\t<MenuUpIcon v-else />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<div v-if=\"advancedSectionAccordionExpanded\" id=\"advancedSectionAccordionAdvanced\" class=\"sharingTabDetailsView__advanced\"\n\t\t\t\taria-labelledby=\"advancedSectionAccordionAdvancedControl\" role=\"region\">\n\t\t\t\t<section>\n\t\t\t\t\t<NcInputField v-if=\"isPublicShare\"\n\t\t\t\t\t\t:value.sync=\"share.label\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Share label')\" />\n\t\t\t\t\t<template v-if=\"isPublicShare\">\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"isPasswordProtected\" :disabled=\"isPasswordEnforced\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Set password') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcInputField v-if=\"isPasswordProtected\"\n\t\t\t\t\t\t\t:type=\"hasUnsavedPassword ? 'text' : 'password'\"\n\t\t\t\t\t\t\t:value=\"hasUnsavedPassword ? share.newPassword : '***************'\"\n\t\t\t\t\t\t\t:error=\"passwordError\"\n\t\t\t\t\t\t\t:required=\"isPasswordEnforced\"\n\t\t\t\t\t\t\t:label=\"t('files_sharing', 'Password')\"\n\t\t\t\t\t\t\t@update:value=\"onPasswordChange\" />\n\n\t\t\t\t\t\t<!-- Migrate icons and remote -> icon=\"icon-info\"-->\n\t\t\t\t\t\t<span v-if=\"isEmailShareType && passwordExpirationTime\" icon=\"icon-info\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime }) }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span v-else-if=\"isEmailShareType && passwordExpirationTime !== null\" icon=\"icon-error\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Password expired') }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"hasExpirationDate\" :disabled=\"isExpiryDateEnforced\">\n\t\t\t\t\t\t{{ isExpiryDateEnforced\n\t\t\t\t\t\t\t? t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t\t: t('files_sharing', 'Set expiration date') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcDateTimePickerNative v-if=\"hasExpirationDate\"\n\t\t\t\t\t\tid=\"share-date-picker\"\n\t\t\t\t\t\t:value=\"new Date(share.expireDate ?? dateTomorrow)\"\n\t\t\t\t\t\t:min=\"dateTomorrow\"\n\t\t\t\t\t\t:max=\"maxExpirationDateEnforced\"\n\t\t\t\t\t\t:hide-label=\"true\"\n\t\t\t\t\t\t:placeholder=\"t('files_sharing', 'Expiration date')\"\n\t\t\t\t\t\ttype=\"date\"\n\t\t\t\t\t\t@input=\"onExpirationChange\" />\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isPublicShare\"\n\t\t\t\t\t\t:disabled=\"canChangeHideDownload\"\n\t\t\t\t\t\t:checked.sync=\"share.hideDownload\"\n\t\t\t\t\t\t@update:checked=\"queueUpdate('hideDownload')\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Hide download') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"canTogglePasswordProtectedByTalkAvailable\"\n\t\t\t\t\t\t:checked.sync=\"isPasswordProtectedByTalk\"\n\t\t\t\t\t\t@update:checked=\"onPasswordProtectedByTalkChange\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Video verification') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"!isPublicShare\" :disabled=\"!canSetDownload\" :checked.sync=\"canDownload\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Allow download') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"writeNoteToRecipientIsChecked\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Note to recipient') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<template v-if=\"writeNoteToRecipientIsChecked\">\n\t\t\t\t\t\t<label for=\"share-note-textarea\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Enter a note for the share recipient') }}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<textarea id=\"share-note-textarea\" :value=\"share.note\" @input=\"share.note = $event.target.value\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"setCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Custom permissions') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<section v-if=\"setCustomPermissions\" class=\"custom-permissions-group\">\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!allowsFileDrop && share.type === SHARE_TYPES.SHARE_TYPE_LINK\"\n\t\t\t\t\t\t\t:checked.sync=\"hasRead\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Read') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isFolder\" :disabled=\"!canSetCreate\" :checked.sync=\"canCreate\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Create') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canSetEdit\" :checked.sync=\"canEdit\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Edit') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"config.isResharingAllowed && share.type !== SHARE_TYPES.SHARE_TYPE_LINK\"\n\t\t\t\t\t\t\t:disabled=\"!canSetReshare\"\n\t\t\t\t\t\t\t:checked.sync=\"canReshare\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Share') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canSetDelete\" :checked.sync=\"canDelete\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Delete') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t</section>\n\t\t\t\t\t<div class=\"sharingTabDetailsView__delete\">\n\t\t\t\t\t\t<NcButton v-if=\"!isNewShare\"\n\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Delete share')\"\n\t\t\t\t\t\t\t:disabled=\"false\"\n\t\t\t\t\t\t\t:readonly=\"false\"\n\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t@click.prevent=\"removeShare\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<CloseIcon :size=\"16\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Delete share') }}\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"sharingTabDetailsView__footer\">\n\t\t\t<div class=\"button-group\">\n\t\t\t\t<NcButton @click=\"$emit('close-sharing-details')\">\n\t\t\t\t\t{{ t('files_sharing', 'Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton type=\"primary\" @click=\"saveShare\">\n\t\t\t\t\t{{ shareButtonText }}\n\t\t\t\t\t<template v-if=\"creating\" #icon>\n\t\t\t\t\t\t<NcLoadingIcon />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { getLanguage } from '@nextcloud/l10n'\n\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcDateTimePicker from '@nextcloud/vue/dist/Components/NcDateTimePicker.js'\nimport NcDateTimePickerNative from '@nextcloud/vue/dist/Components/NcDateTimePickerNative.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\nimport CircleIcon from 'vue-material-design-icons/CircleOutline.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\nimport EditIcon from 'vue-material-design-icons/Pencil.vue'\nimport EmailIcon from 'vue-material-design-icons/Email.vue'\nimport LinkIcon from 'vue-material-design-icons/Link.vue'\nimport GroupIcon from 'vue-material-design-icons/AccountGroup.vue'\nimport ShareIcon from 'vue-material-design-icons/ShareCircle.vue'\nimport UserIcon from 'vue-material-design-icons/AccountCircleOutline.vue'\nimport ViewIcon from 'vue-material-design-icons/Eye.vue'\nimport UploadIcon from 'vue-material-design-icons/Upload.vue'\nimport MenuDownIcon from 'vue-material-design-icons/MenuDown.vue'\nimport MenuUpIcon from 'vue-material-design-icons/MenuUp.vue'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\n\nimport GeneratePassword from '../utils/GeneratePassword.js'\nimport Share from '../models/Share.js'\nimport ShareRequests from '../mixins/ShareRequests.js'\nimport ShareTypes from '../mixins/ShareTypes.js'\nimport SharesMixin from '../mixins/SharesMixin.js'\n\nimport {\n\tATOMIC_PERMISSIONS,\n\tBUNDLED_PERMISSIONS,\n\thasPermissions,\n} from '../lib/SharePermissionsToolBox.js'\n\nexport default {\n\tname: 'SharingDetailsTab',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tNcInputField,\n\t\tNcDateTimePicker,\n\t\tNcDateTimePickerNative,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcLoadingIcon,\n\t\tCloseIcon,\n\t\tCircleIcon,\n\t\tEditIcon,\n\t\tLinkIcon,\n\t\tGroupIcon,\n\t\tShareIcon,\n\t\tUserIcon,\n\t\tUploadIcon,\n\t\tViewIcon,\n\t\tMenuDownIcon,\n\t\tMenuUpIcon,\n\t\tDotsHorizontalIcon,\n\t},\n\tmixins: [ShareTypes, ShareRequests, SharesMixin],\n\tprops: {\n\t\tshareRequestValue: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\twriteNoteToRecipientIsChecked: false,\n\t\t\tsharingPermission: BUNDLED_PERMISSIONS.ALL.toString(),\n\t\t\trevertSharingPermission: BUNDLED_PERMISSIONS.ALL.toString(),\n\t\t\tsetCustomPermissions: false,\n\t\t\tpasswordError: false,\n\t\t\tadvancedSectionAccordionExpanded: false,\n\t\t\tbundledPermissions: BUNDLED_PERMISSIONS,\n\t\t\tisFirstComponentLoad: true,\n\t\t\ttest: false,\n\t\t\tcreating: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttitle() {\n\t\t\tlet title = t('files_sharing', 'Share with ')\n\t\t\tif (this.share.type === this.SHARE_TYPES.SHARE_TYPE_USER) {\n\t\t\t\ttitle = title + this.share.shareWithDisplayName\n\t\t\t} else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_LINK) {\n\t\t\t\ttitle = t('files_sharing', 'Share link')\n\t\t\t} else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'group')})`\n\t\t\t} else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_ROOM) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'conversation')})`\n\t\t\t} else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'remote')})`\n\t\t\t} else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'remote group')})`\n\t\t\t} else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GUEST) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'guest')})`\n\t\t\t}\n\n\t\t\treturn title\n\t\t},\n\t\t/**\n\t\t * Can the sharee edit the shared file ?\n\t\t */\n\t\tcanEdit: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasUpdatePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isEditChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee create the shared file ?\n\t\t */\n\t\tcanCreate: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasCreatePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isCreateChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee delete the shared file ?\n\t\t */\n\t\tcanDelete: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasDeletePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isDeleteChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee reshare the file ?\n\t\t */\n\t\tcanReshare: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasSharePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isReshareChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee download files or only view them ?\n\t\t */\n\t\tcanDownload: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasDownloadPermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isDownloadChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is this share readable\n\t\t * Needed for some federated shares that might have been added from file drop links\n\t\t */\n\t\thasRead: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasReadPermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isReadChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Does the current share have an expiration date\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasExpirationDate: {\n\t\t\tget() {\n\t\t\t\treturn this.isValidShareAttribute(this.share.expireDate)\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.expireDate = enabled\n\t\t\t\t\t? this.formatDateToString(this.defaultExpiryDate)\n\t\t\t\t\t: ''\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtected: {\n\t\t\tget() {\n\t\t\t\treturn this.config.enforcePasswordForPublicLink\n\t\t\t\t\t|| !!this.share.password\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\t// TODO: directly save after generation to make sure the share is always protected\n\t\t\t\tthis.share.password = enabled ? await GeneratePassword() : ''\n\t\t\t\tthis.$set(this.share, 'newPassword', this.share.password)\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is the current share a folder ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\tmaxExpirationDateEnforced() {\n\t\t\tif (this.isExpiryDateEnforced) {\n\t\t\t\tif (this.isPublicShare) {\n\t\t\t\t\treturn this.config.defaultExpirationDate\n\t\t\t\t}\n\t\t\t\tif (this.isRemoteShare) {\n\t\t\t\t\treturn this.config.defaultRemoteExpirationDateString\n\t\t\t\t}\n\t\t\t\t// If it get's here then it must be an internal share\n\t\t\t\treturn this.config.defaultInternalExpirationDate\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisSetDownloadButtonVisible() {\n\t\t\tconst allowedMimetypes = [\n\t\t\t\t// Office documents\n\t\t\t\t'application/msword',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t\t\t'application/vnd.ms-powerpoint',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t\t\t'application/vnd.ms-excel',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t'application/vnd.oasis.opendocument.text',\n\t\t\t\t'application/vnd.oasis.opendocument.spreadsheet',\n\t\t\t\t'application/vnd.oasis.opendocument.presentation',\n\t\t\t]\n\n\t\t\treturn this.isFolder || allowedMimetypes.includes(this.fileInfo.mimetype)\n\t\t},\n\t\tisPasswordEnforced() {\n\t\t\treturn this.isPublicShare && this.config.enforcePasswordForPublicLink\n\t\t},\n\t\tdefaultExpiryDate() {\n\t\t\tif ((this.isGroupShare || this.isUserShare) && this.config.isDefaultInternalExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultInternalExpirationDate)\n\t\t\t} else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultRemoteExpireDateEnabled)\n\t\t\t} else if (this.isPublicShare && this.config.isDefaultExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultExpirationDate)\n\t\t\t}\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\t\tisUserShare() {\n\t\t\treturn this.share.type === this.SHARE_TYPES.SHARE_TYPE_USER\n\t\t},\n\t\tisGroupShare() {\n\t\t\treturn this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP\n\t\t},\n\t\tisRemoteShare() {\n\t\t\treturn this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP || this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE\n\t\t},\n\t\tisNewShare() {\n\t\t\treturn this.share.id === null || this.share.id === undefined\n\t\t},\n\t\tallowsFileDrop() {\n\t\t\tif (this.isFolder && this.config.isPublicUploadEnabled) {\n\t\t\t\tif (this.share.type === this.SHARE_TYPES.SHARE_TYPE_LINK || this.share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\thasFileDropPermissions() {\n\t\t\treturn this.share.permissions === this.bundledPermissions.FILE_DROP\n\t\t},\n\t\tshareButtonText() {\n\t\t\tif (this.isNewShare) {\n\t\t\t\treturn t('files_sharing', 'Save share')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Update share')\n\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can edit the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetEdit() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_UPDATE) || this.canEdit\n\t\t},\n\n\t\t/**\n\t\t * Can the sharer set whether the sharee can create the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetCreate() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_CREATE) || this.canCreate\n\t\t},\n\n\t\t/**\n\t\t * Can the sharer set whether the sharee can delete the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetDelete() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_DELETE) || this.canDelete\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can reshare the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetReshare() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_SHARE) || this.canReshare\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can download the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetDownload() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.canDownload() || this.canDownload)\n\t\t},\n\t\t// if newPassword exists, but is empty, it means\n\t\t// the user deleted the original password\n\t\thasUnsavedPassword() {\n\t\t\treturn this.share.newPassword !== undefined\n\t\t},\n\t\tpasswordExpirationTime() {\n\t\t\tif (!this.isValidShareAttribute(this.share.passwordExpirationTime)) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst expirationTime = moment(this.share.passwordExpirationTime)\n\n\t\t\tif (expirationTime.diff(moment()) < 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn expirationTime.fromNow()\n\t\t},\n\n\t\t/**\n\t\t * Is Talk enabled?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisTalkEnabled() {\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Is it possible to protect the password by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalkAvailable() {\n\t\t\treturn this.isPasswordProtected && this.isTalkEnabled\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalk: {\n\t\t\tget() {\n\t\t\t\treturn this.share.sendPasswordByTalk\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tthis.share.sendPasswordByTalk = enabled\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is the current share an email share ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisEmailShareType() {\n\t\t\treturn this.share\n\t\t\t\t? this.share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL\n\t\t\t\t: false\n\t\t},\n\t\tcanTogglePasswordProtectedByTalkAvailable() {\n\t\t\tif (!this.isPublicShare || !this.isPasswordProtected) {\n\t\t\t\t// Makes no sense\n\t\t\t\treturn false\n\t\t\t} else if (this.isEmailShareType && !this.hasUnsavedPassword) {\n\t\t\t\t// For email shares we need a new password in order to enable or\n\t\t\t\t// disable\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Anything else should be fine\n\t\t\treturn true\n\t\t},\n\t\tcanChangeHideDownload() {\n\t\t\tconst hasDisabledDownload = (shareAttribute) => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.enabled === false\n\t\t\treturn this.fileInfo.shareAttributes.some(hasDisabledDownload)\n\t\t},\n\t\tcustomPermissionsList() {\n\t\t\t// Key order will be different, because ATOMIC_PERMISSIONS are numbers\n\t\t\tconst translatedPermissions = {\n\t\t\t\t[ATOMIC_PERMISSIONS.READ]: this.t('files_sharing', 'Read'),\n\t\t\t\t[ATOMIC_PERMISSIONS.CREATE]: this.t('files_sharing', 'Create'),\n\t\t\t\t[ATOMIC_PERMISSIONS.UPDATE]: this.t('files_sharing', 'Edit'),\n\t\t\t\t[ATOMIC_PERMISSIONS.SHARE]: this.t('files_sharing', 'Share'),\n\t\t\t\t[ATOMIC_PERMISSIONS.DELETE]: this.t('files_sharing', 'Delete'),\n\t\t\t}\n\n\t\t\treturn [ATOMIC_PERMISSIONS.READ, ATOMIC_PERMISSIONS.CREATE, ATOMIC_PERMISSIONS.UPDATE, ATOMIC_PERMISSIONS.SHARE, ATOMIC_PERMISSIONS.DELETE]\n\t\t\t\t.filter((permission) => hasPermissions(this.share.permissions, permission))\n\t\t\t\t.map((permission, index) => index === 0\n\t\t\t\t\t? translatedPermissions[permission]\n\t\t\t\t\t: translatedPermissions[permission].toLocaleLowerCase(getLanguage()))\n\t\t\t\t.join(', ')\n\t\t},\n\t\tadvancedControlExpandedValue() {\n\t\t\treturn this.advancedSectionAccordionExpanded ? 'true' : 'false'\n\t\t}\n\t},\n\twatch: {\n\t\tsetCustomPermissions(isChecked) {\n\t\t\tif (isChecked) {\n\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t} else {\n\t\t\t\tthis.sharingPermission = this.revertSharingPermission\n\t\t\t}\n\t\t},\n\t},\n\tbeforeMount() {\n\t\tthis.initializePermissions()\n\t\tthis.initializeAttributes()\n\t\tconsole.debug('shareSentIn', this.share)\n\t\tconsole.debug('config', this.config)\n\t},\n\n\tmounted() {\n\t\tthis.$refs.quickPermissions?.querySelector('input:checked')?.focus()\n\t},\n\n\tmethods: {\n\t\tupdateAtomicPermissions({\n\t\t\tisReadChecked = this.hasRead,\n\t\t\tisEditChecked = this.canEdit,\n\t\t\tisCreateChecked = this.canCreate,\n\t\t\tisDeleteChecked = this.canDelete,\n\t\t\tisReshareChecked = this.canReshare,\n\t\t\tisDownloadChecked = this.canDownload,\n\t\t} = {}) {\n\t\t\t// calc permissions if checked\n\t\t\tconst permissions = 0\n\t\t\t\t| (isReadChecked ? ATOMIC_PERMISSIONS.READ : 0)\n\t\t\t\t| (isCreateChecked ? ATOMIC_PERMISSIONS.CREATE : 0)\n\t\t\t\t| (isDeleteChecked ? ATOMIC_PERMISSIONS.DELETE : 0)\n\t\t\t\t| (isEditChecked ? ATOMIC_PERMISSIONS.UPDATE : 0)\n\t\t\t\t| (isReshareChecked ? ATOMIC_PERMISSIONS.SHARE : 0)\n\t\t\tthis.share.permissions = permissions\n\t\t\tif (this.share.hasDownloadPermission !== isDownloadChecked) {\n\t\t\t\tthis.$set(this.share, 'hasDownloadPermission', isDownloadChecked)\n\t\t\t}\n\t\t},\n\t\texpandCustomPermissions() {\n\t\t\tif (!this.advancedSectionAccordionExpanded) {\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t}\n\t\t\tthis.toggleCustomPermissions()\n\t\t},\n\t\ttoggleCustomPermissions(selectedPermission) {\n\t\t\tconst isCustomPermissions = this.sharingPermission === 'custom'\n\t\t\tthis.revertSharingPermission = !isCustomPermissions ? selectedPermission : 'custom'\n\t\t\tthis.setCustomPermissions = isCustomPermissions\n\t\t},\n\t\tasync initializeAttributes() {\n\n\t\t\tif (this.isNewShare) {\n\t\t\t\tif (this.isPasswordEnforced && this.isPublicShare) {\n\t\t\t\t\tthis.share.newPassword = await GeneratePassword()\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t}\n\t\t\t\t/* Set default expiration dates if configured */\n\t\t\t\tif (this.isPublicShare && this.config.isDefaultExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultExpirationDate.toDateString()\n\t\t\t\t} else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultRemoteExpirationDateString.toDateString()\n\t\t\t\t} else if (this.config.isDefaultInternalExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultInternalExpirationDate.toDateString()\n\t\t\t\t}\n\n\t\t\t\tif (this.isValidShareAttribute(this.share.expireDate)) {\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t}\n\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.isValidShareAttribute(this.share.password)\n\t\t\t\t|| this.isValidShareAttribute(this.share.expireDate)\n\t\t\t\t|| this.isValidShareAttribute(this.share.label)\n\t\t\t) {\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t}\n\n\t\t},\n\t\tinitializePermissions() {\n\t\t\tif (this.share.share_type) {\n\t\t\t\tthis.share.type = this.share.share_type\n\t\t\t}\n\t\t\t// shareType 0 (USER_SHARE) would evaluate to zero\n\t\t\t// Hence the use of hasOwnProperty\n\t\t\tif ('shareType' in this.share) {\n\t\t\t\tthis.share.type = this.share.shareType\n\t\t\t}\n\t\t\tif (this.isNewShare) {\n\t\t\t\tif (this.isPublicShare) {\n\t\t\t\t\tthis.sharingPermission = BUNDLED_PERMISSIONS.READ_ONLY.toString()\n\t\t\t\t} else {\n\t\t\t\t\tthis.sharingPermission = BUNDLED_PERMISSIONS.ALL.toString()\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tif (this.hasCustomPermissions || this.share.setCustomPermissions) {\n\t\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t\tthis.setCustomPermissions = true\n\t\t\t\t} else {\n\t\t\t\t\tthis.sharingPermission = this.share.permissions.toString()\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tasync saveShare() {\n\t\t\tconst permissionsAndAttributes = ['permissions', 'attributes', 'note', 'expireDate']\n\t\t\tconst publicShareAttributes = ['label', 'password', 'hideDownload']\n\t\t\tif (this.isPublicShare) {\n\t\t\t\tpermissionsAndAttributes.push(...publicShareAttributes)\n\t\t\t}\n\t\t\tconst sharePermissionsSet = parseInt(this.sharingPermission)\n\t\t\tif (this.setCustomPermissions) {\n\t\t\t\tthis.updateAtomicPermissions()\n\t\t\t} else {\n\t\t\t\tthis.share.permissions = sharePermissionsSet\n\t\t\t}\n\n\t\t\tif (!this.isFolder && this.share.permissions === BUNDLED_PERMISSIONS.ALL) {\n\t\t\t\t// It's not possible to create an existing file.\n\t\t\t\tthis.share.permissions = BUNDLED_PERMISSIONS.ALL_FILE\n\t\t\t}\n\t\t\tif (!this.writeNoteToRecipientIsChecked) {\n\t\t\t\tthis.share.note = ''\n\t\t\t}\n\n\t\t\tif (this.isPasswordProtected) {\n\t\t\t\tif (this.isValidShareAttribute(this.share.newPassword)) {\n\t\t\t\t\tthis.share.password = this.share.newPassword\n\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\t} else {\n\t\t\t\t\tif (this.isPasswordEnforced) {\n\t\t\t\t\t\tthis.passwordError = true\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.share.password = ''\n\t\t\t}\n\n\t\t\tif (!this.hasExpirationDate) {\n\t\t\t\tthis.share.expireDate = ''\n\t\t\t}\n\n\t\t\tif (this.isNewShare) {\n\t\t\t\tconst incomingShare = {\n\t\t\t\t\tpermissions: this.share.permissions,\n\t\t\t\t\tshareType: this.share.type,\n\t\t\t\t\tshareWith: this.share.shareWith,\n\t\t\t\t\tattributes: this.share.attributes,\n\t\t\t\t\tnote: this.share.note,\n\t\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\t}\n\n\t\t\t\tif (this.hasExpirationDate) {\n\t\t\t\t\tincomingShare.expireDate = this.share.expireDate\n\t\t\t\t}\n\n\t\t\t\tif (this.isPasswordProtected) {\n\t\t\t\t\tincomingShare.password = this.share.password\n\t\t\t\t}\n\n\t\t\t\tthis.creating = true\n\t\t\t\tconst share = await this.addShare(incomingShare, this.fileInfo)\n\t\t\t\tthis.creating = false\n\t\t\t\tthis.share = share\n\t\t\t\tthis.$emit('add:share', this.share)\n\t\t\t} else {\n\t\t\t\tthis.queueUpdate(...permissionsAndAttributes)\n\t\t\t}\n\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\t\t/**\n\t\t * Process the new share request\n\t\t *\n\t\t * @param {Share} share incoming share object\n\t\t * @param {object} fileInfo file data\n\t\t */\n\t\tasync addShare(share, fileInfo) {\n\t\t\tconsole.debug('Adding a new share from the input for', share)\n\t\t\ttry {\n\t\t\t\tconst path = (fileInfo.path + '/' + fileInfo.name).replace('//', '/')\n\t\t\t\tconst resultingShare = await this.createShare({\n\t\t\t\t\tpath,\n\t\t\t\t\tshareType: share.shareType,\n\t\t\t\t\tshareWith: share.shareWith,\n\t\t\t\t\tpermissions: share.permissions,\n\t\t\t\t\tattributes: JSON.stringify(fileInfo.shareAttributes),\n\t\t\t\t\t...(share.note ? { note: share.note } : {}),\n\t\t\t\t\t...(share.password ? { password: share.password } : {}),\n\t\t\t\t\t...(share.expireDate ? { expireDate: share.expireDate } : {}),\n\t\t\t\t})\n\t\t\t\treturn resultingShare\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error while adding new share', error)\n\t\t\t} finally {\n\t\t\t\t// this.loading = false // No loader here yet\n\t\t\t}\n\t\t},\n\t\tasync removeShare() {\n\t\t\tawait this.onDelete()\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\t\t/**\n\t\t * Update newPassword values\n\t\t * of share. If password is set but not newPassword\n\t\t * then the user did not changed the password\n\t\t * If both co-exists, the password have changed and\n\t\t * we show it in plain text.\n\t\t * Then on submit (or menu close), we sync it.\n\t\t *\n\t\t * @param {string} password the changed password\n\t\t */\n\t\tonPasswordChange(password) {\n\t\t\tthis.passwordError = !this.isValidShareAttribute(password)\n\t\t\tthis.$set(this.share, 'newPassword', password)\n\t\t},\n\t\t/**\n\t\t * Update the password along with \"sendPasswordByTalk\".\n\t\t *\n\t\t * If the password was modified the new password is sent; otherwise\n\t\t * updating a mail share would fail, as in that case it is required that\n\t\t * a new password is set when enabling or disabling\n\t\t * \"sendPasswordByTalk\".\n\t\t */\n\t\tonPasswordProtectedByTalkChange() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t}\n\n\t\t\tthis.queueUpdate('sendPasswordByTalk', 'password')\n\t\t},\n\t\tisValidShareAttribute(value) {\n\t\t\tif ([null, undefined].includes(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (!(value.trim().length > 0)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t},\n\t\tgetShareTypeIcon(type) {\n\t\t\tswitch (type) {\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_LINK:\n\t\t\t\treturn LinkIcon\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_GUEST:\n\t\t\t\treturn UserIcon\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP:\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_GROUP:\n\t\t\t\treturn GroupIcon\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_EMAIL:\n\t\t\t\treturn EmailIcon\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_CIRCLE:\n\t\t\t\treturn CircleIcon\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_ROOM:\n\t\t\t\treturn ShareIcon\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_DECK:\n\t\t\t\treturn ShareIcon\n\t\t\tcase this.SHARE_TYPES.SHARE_TYPE_SCIENCEMESH:\n\t\t\t\treturn ShareIcon\n\t\t\tdefault:\n\t\t\t\treturn null // Or a default icon component if needed\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.sharingTabDetailsView {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tposition: relative;\n\theight: 100%;\n\toverflow: hidden;\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0.2em;\n\n\t\tspan {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\th1 {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tpadding-left: 0.3em;\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__wrapper {\n\t\tposition: relative;\n\t\toverflow: scroll;\n\t\tflex-shrink: 1;\n\t\tpadding: 4px;\n\t\tpadding-right: 12px;\n\t}\n\n\t&__quick-permissions {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\tmargin: 0 auto;\n\t\tborder-radius: 0;\n\n\t\tdiv {\n\t\t\twidth: 100%;\n\n\t\t\tspan {\n\t\t\t\twidth: 100%;\n\n\t\t\t\tspan:nth-child(1) {\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\t\tpadding: 0.1em;\n\t\t\t\t}\n\n\t\t\t\t::v-deep label {\n\n\t\t\t\t\tspan {\n\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\tflex-direction: column;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__advanced-control {\n\t\twidth: 100%;\n\n\t\tbutton {\n\t\t\tmargin-top: 0.5em;\n\t\t}\n\n\t}\n\n\t&__advanced {\n\t\twidth: 100%;\n\t\tmargin-bottom: 0.5em;\n\t\ttext-align: left;\n\t\tpadding-left: 0;\n\n\t\tsection {\n\n\t\t\ttextarea,\n\t\t\tdiv.mx-datepicker {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\ttextarea {\n\t\t\t\theight: 80px;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t/*\n The following style is applied out of the component's scope\n to remove padding from the label.checkbox-radio-switch__label,\n which is used to group radio checkbox items. The use of ::v-deep\n ensures that the padding is modified without being affected by\n the component's scoping.\n Without this achieving left alignment for the checkboxes would not\n be possible.\n */\n\t\t\tspan {\n\t\t\t\t::v-deep label {\n\t\t\t\t\tpadding-left: 0 !important;\n\t\t\t\t\tbackground-color: initial !important;\n\t\t\t\t\tborder: none !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsection.custom-permissions-group {\n\t\t\t\tpadding-left: 1.5em;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__delete {\n\t\t>button:first-child {\n\t\t\tcolor: rgb(223, 7, 7);\n\t\t}\n\t}\n\n\t&__footer {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tposition: sticky;\n\t\tbottom: 0;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\talign-items: flex-start;\n\t\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\n\n\t\t.button-group {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t\twidth: 100%;\n\t\t\tmargin-top: 16px;\n\n\t\t\tbutton {\n\t\t\t\tmargin-left: 16px;\n\n\t\t\t\t&:first-child {\n\t\t\t\t\tmargin-left: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=4fb884d4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=4fb884d4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingDetailsTab.vue?vue&type=template&id=4fb884d4&scoped=true\"\nimport script from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingDetailsTab.vue?vue&type=style&index=0&id=4fb884d4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4fb884d4\",\n null\n \n)\n\nexport default component.exports","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div class=\"sharingTab\" :class=\"{ 'icon-loading': loading }\">\n\t\t<!-- error message -->\n\t\t<div v-if=\"error\" class=\"emptycontent\" :class=\"{ emptyContentWithSections: sections.length > 0 }\">\n\t\t\t<div class=\"icon icon-error\" />\n\t\t\t<h2>{{ error }}</h2>\n\t\t</div>\n\n\t\t<template v-if=\"!showSharingDetailsView\">\n\t\t\t<!-- shares content -->\n\t\t\t<div class=\"sharingTab__content\">\n\t\t\t\t<!-- shared with me information -->\n\t\t\t\t<SharingEntrySimple v-if=\"isSharedWithMe\" v-bind=\"sharedWithMe\" class=\"sharing-entry__reshare\">\n\t\t\t\t\t<template #avatar>\n\t\t\t\t\t\t<NcAvatar :user=\"sharedWithMe.user\"\n\t\t\t\t\t\t\t:display-name=\"sharedWithMe.displayName\"\n\t\t\t\t\t\t\tclass=\"sharing-entry__avatar\" />\n\t\t\t\t\t</template>\n\t\t\t\t</SharingEntrySimple>\n\n\t\t\t\t<!-- add new share input -->\n\t\t\t\t<SharingInput v-if=\"!loading\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:link-shares=\"linkShares\"\n\t\t\t\t\t:reshare=\"reshare\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\n\t\t\t\t<!-- link shares list -->\n\t\t\t\t<SharingLinkList v-if=\"!loading\"\n\t\t\t\t\tref=\"linkShareList\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:shares=\"linkShares\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\n\t\t\t\t<!-- other shares list -->\n\t\t\t\t<SharingList v-if=\"!loading\"\n\t\t\t\t\tref=\"shareList\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\n\t\t\t\t<!-- inherited shares -->\n\t\t\t\t<SharingInherited v-if=\"canReshare && !loading\" :file-info=\"fileInfo\" />\n\n\t\t\t\t<!-- internal link copy -->\n\t\t\t\t<SharingEntryInternal :file-info=\"fileInfo\" />\n\n\t\t\t\t<!-- projects -->\n\t\t\t\t<CollectionList v-if=\"projectsEnabled && fileInfo\"\n\t\t\t\t\t:id=\"`${fileInfo.id}`\"\n\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t:name=\"fileInfo.name\" />\n\t\t\t</div>\n\n\t\t\t<!-- additional entries, use it with cautious -->\n\t\t\t<div v-for=\"(section, index) in sections\"\n\t\t\t\t:ref=\"'section-' + index\"\n\t\t\t\t:key=\"index\"\n\t\t\t\tclass=\"sharingTab__additionalContent\">\n\t\t\t\t<component :is=\"section($refs['section-'+index], fileInfo)\" :file-info=\"fileInfo\" />\n\t\t\t</div>\n\t\t</template>\n\n\t\t<!-- share details -->\n\t\t<SharingDetailsTab v-else :file-info=\"shareDetailsData.fileInfo\"\n\t\t\t:share=\"shareDetailsData.share\"\n\t\t\t@close-sharing-details=\"toggleShareDetailsView\"\n\t\t\t@add:share=\"addShare\"\n\t\t\t@remove:share=\"removeShare\" />\n\t</div>\n</template>\n\n<script>\nimport { CollectionList } from 'nextcloud-vue-collections'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\n\nimport Config from '../services/ConfigService.js'\nimport { shareWithTitle } from '../utils/SharedWithMe.js'\nimport Share from '../models/Share.js'\nimport ShareTypes from '../mixins/ShareTypes.js'\nimport SharingEntryInternal from '../components/SharingEntryInternal.vue'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\nimport SharingInput from '../components/SharingInput.vue'\n\nimport SharingInherited from './SharingInherited.vue'\nimport SharingLinkList from './SharingLinkList.vue'\nimport SharingList from './SharingList.vue'\nimport SharingDetailsTab from './SharingDetailsTab.vue'\n\nexport default {\n\tname: 'SharingTab',\n\n\tcomponents: {\n\t\tNcAvatar,\n\t\tCollectionList,\n\t\tSharingEntryInternal,\n\t\tSharingEntrySimple,\n\t\tSharingInherited,\n\t\tSharingInput,\n\t\tSharingLinkList,\n\t\tSharingList,\n\t\tSharingDetailsTab,\n\t},\n\n\tmixins: [ShareTypes],\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tdeleteEvent: null,\n\t\t\terror: '',\n\t\t\texpirationInterval: null,\n\t\t\tloading: true,\n\n\t\t\tfileInfo: null,\n\n\t\t\t// reshare Share object\n\t\t\treshare: null,\n\t\t\tsharedWithMe: {},\n\t\t\tshares: [],\n\t\t\tlinkShares: [],\n\n\t\t\tsections: OCA.Sharing.ShareTabSections.getSections(),\n\t\t\tprojectsEnabled: loadState('core', 'projects_enabled', false),\n\t\t\tshowSharingDetailsView: false,\n\t\t\tshareDetailsData: {},\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Is this share shared with me?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisSharedWithMe() {\n\t\t\treturn Object.keys(this.sharedWithMe).length > 0\n\t\t},\n\n\t\tcanReshare() {\n\t\t\treturn !!(this.fileInfo.permissions & OC.PERMISSION_SHARE)\n\t\t\t\t|| !!(this.reshare && this.reshare.hasSharePermission && this.config.isResharingAllowed)\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Update current fileInfo and fetch new data\n\t\t *\n\t\t * @param {object} fileInfo the current file FileInfo\n\t\t */\n\t\tasync update(fileInfo) {\n\t\t\tthis.fileInfo = fileInfo\n\t\t\tthis.resetState()\n\t\t\tthis.getShares()\n\t\t},\n\n\t\t/**\n\t\t * Get the existing shares infos\n\t\t */\n\t\tasync getShares() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\n\t\t\t\t// init params\n\t\t\t\tconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\t\t\t\tconst format = 'json'\n\t\t\t\t// TODO: replace with proper getFUllpath implementation of our own FileInfo model\n\t\t\t\tconst path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\n\t\t\t\t// fetch shares\n\t\t\t\tconst fetchShares = axios.get(shareUrl, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\treshares: true,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tconst fetchSharedWithMe = axios.get(shareUrl, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tshared_with_me: true,\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\t// wait for data\n\t\t\t\tconst [shares, sharedWithMe] = await Promise.all([fetchShares, fetchSharedWithMe])\n\t\t\t\tthis.loading = false\n\n\t\t\t\t// process results\n\t\t\t\tthis.processSharedWithMe(sharedWithMe)\n\t\t\t\tthis.processShares(shares)\n\t\t\t} catch (error) {\n\t\t\t\tif (error.response.data?.ocs?.meta?.message) {\n\t\t\t\t\tthis.error = error.response.data.ocs.meta.message\n\t\t\t\t} else {\n\t\t\t\t\tthis.error = t('files_sharing', 'Unable to load the shares list')\n\t\t\t\t}\n\t\t\t\tthis.loading = false\n\t\t\t\tconsole.error('Error loading the shares list', error)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Reset the current view to its default state\n\t\t */\n\t\tresetState() {\n\t\t\tclearInterval(this.expirationInterval)\n\t\t\tthis.loading = true\n\t\t\tthis.error = ''\n\t\t\tthis.sharedWithMe = {}\n\t\t\tthis.shares = []\n\t\t\tthis.linkShares = []\n\t\t\tthis.showSharingDetailsView = false\n\t\t\tthis.shareDetailsData = {}\n\t\t},\n\n\t\t/**\n\t\t * Update sharedWithMe.subtitle with the appropriate\n\t\t * expiration time left\n\t\t *\n\t\t * @param {Share} share the sharedWith Share object\n\t\t */\n\t\tupdateExpirationSubtitle(share) {\n\t\t\tconst expiration = moment(share.expireDate).unix()\n\t\t\tthis.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'Expires {relativetime}', {\n\t\t\t\trelativetime: OC.Util.relativeModifiedDate(expiration * 1000),\n\t\t\t}))\n\n\t\t\t// share have expired\n\t\t\tif (moment().unix() > expiration) {\n\t\t\t\tclearInterval(this.expirationInterval)\n\t\t\t\t// TODO: clear ui if share is expired\n\t\t\t\tthis.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'this share just expired.'))\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process the current shares data\n\t\t * and init shares[]\n\t\t *\n\t\t * @param {object} share the share ocs api request data\n\t\t * @param {object} share.data the request data\n\t\t */\n\t\tprocessShares({ data }) {\n\t\t\tif (data.ocs && data.ocs.data && data.ocs.data.length > 0) {\n\t\t\t\t// create Share objects and sort by newest\n\t\t\t\tconst shares = data.ocs.data\n\t\t\t\t\t.map(share => new Share(share))\n\t\t\t\t\t.sort((a, b) => b.createdTime - a.createdTime)\n\n\t\t\t\tthis.linkShares = shares.filter(share => share.type === this.SHARE_TYPES.SHARE_TYPE_LINK || share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL)\n\t\t\t\tthis.shares = shares.filter(share => share.type !== this.SHARE_TYPES.SHARE_TYPE_LINK && share.type !== this.SHARE_TYPES.SHARE_TYPE_EMAIL)\n\n\t\t\t\tconsole.debug('Processed', this.linkShares.length, 'link share(s)')\n\t\t\t\tconsole.debug('Processed', this.shares.length, 'share(s)')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process the sharedWithMe share data\n\t\t * and init sharedWithMe\n\t\t *\n\t\t * @param {object} share the share ocs api request data\n\t\t * @param {object} share.data the request data\n\t\t */\n\t\tprocessSharedWithMe({ data }) {\n\t\t\tif (data.ocs && data.ocs.data && data.ocs.data[0]) {\n\t\t\t\tconst share = new Share(data)\n\t\t\t\tconst title = shareWithTitle(share)\n\t\t\t\tconst displayName = share.ownerDisplayName\n\t\t\t\tconst user = share.owner\n\n\t\t\t\tthis.sharedWithMe = {\n\t\t\t\t\tdisplayName,\n\t\t\t\t\ttitle,\n\t\t\t\t\tuser,\n\t\t\t\t}\n\t\t\t\tthis.reshare = share\n\n\t\t\t\t// If we have an expiration date, use it as subtitle\n\t\t\t\t// Refresh the status every 10s and clear if expired\n\t\t\t\tif (share.expireDate && moment(share.expireDate).unix() > moment().unix()) {\n\t\t\t\t\t// first update\n\t\t\t\t\tthis.updateExpirationSubtitle(share)\n\t\t\t\t\t// interval update\n\t\t\t\t\tthis.expirationInterval = setInterval(this.updateExpirationSubtitle, 10000, share)\n\t\t\t\t}\n\t\t\t} else if (this.fileInfo && this.fileInfo.shareOwnerId !== undefined ? this.fileInfo.shareOwnerId !== OC.currentUser : false) {\n\t\t\t\t// Fallback to compare owner and current user.\n\t\t\t\tthis.sharedWithMe = {\n\t\t\t\t\tdisplayName: this.fileInfo.shareOwner,\n\t\t\t\t\ttitle: t(\n\t\t\t\t\t\t'files_sharing',\n\t\t\t\t\t\t'Shared with you by {owner}',\n\t\t\t\t\t\t{ owner: this.fileInfo.shareOwner },\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{ escape: false },\n\t\t\t\t\t),\n\t\t\t\t\tuser: this.fileInfo.shareOwnerId,\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add a new share into the shares list\n\t\t * and return the newly created share component\n\t\t *\n\t\t * @param {Share} share the share to add to the array\n\t\t * @param {Function} [resolve] a function to run after the share is added and its component initialized\n\t\t */\n\t\taddShare(share, resolve = () => { }) {\n\t\t\t// only catching share type MAIL as link shares are added differently\n\t\t\t// meaning: not from the ShareInput\n\t\t\tif (share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {\n\t\t\t\tthis.linkShares.unshift(share)\n\t\t\t} else {\n\t\t\t\tthis.shares.unshift(share)\n\t\t\t}\n\t\t\tthis.awaitForShare(share, resolve)\n\t\t},\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\t// Get reference for this.linkShares or this.shares\n\t\t\tconst shareList\n\t\t\t\t= share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL\n\t\t\t\t\t|| share.type === this.SHARE_TYPES.SHARE_TYPE_LINK\n\t\t\t\t\t? this.linkShares\n\t\t\t\t\t: this.shares\n\t\t\tconst index = shareList.findIndex(item => item.id === share.id)\n\t\t\tif (index !== -1) {\n\t\t\t\tshareList.splice(index, 1)\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Await for next tick and render after the list updated\n\t\t * Then resolve with the matched vue component of the\n\t\t * provided share object\n\t\t *\n\t\t * @param {Share} share newly created share\n\t\t * @param {Function} resolve a function to execute after\n\t\t */\n\t\tawaitForShare(share, resolve) {\n\t\t\tlet listComponent = this.$refs.shareList\n\t\t\t// Only mail shares comes from the input, link shares\n\t\t\t// are managed internally in the SharingLinkList component\n\t\t\tif (share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {\n\t\t\t\tlistComponent = this.$refs.linkShareList\n\t\t\t}\n\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tconst newShare = listComponent.$children.find(component => component.share === share)\n\t\t\t\tif (newShare) {\n\t\t\t\t\tresolve(newShare)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t\ttoggleShareDetailsView(eventData) {\n\t\t\tif (eventData) {\n\t\t\t\tthis.shareDetailsData = eventData\n\t\t\t}\n\t\t\tthis.showSharingDetailsView = !this.showSharingDetailsView\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.emptyContentWithSections {\n\tmargin: 1rem auto;\n}\n\n.sharingTab {\n\tposition: relative;\n\theight: 100%;\n\n\t&__content {\n\t\tpadding: 0 6px;\n\t}\n\n\t&__additionalContent {\n\t\tmargin: 44px 0;\n\t}\n}\n</style>\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author Joas Schilling <coding@schilljs.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { Type as ShareTypes } from '@nextcloud/sharing'\n\nconst shareWithTitle = function(share) {\n\tif (share.type === ShareTypes.SHARE_TYPE_GROUP) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and the group {group} by {owner}',\n\t\t\t{\n\t\t\t\tgroup: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareTypes.SHARE_TYPE_CIRCLE) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and {circle} by {owner}',\n\t\t\t{\n\t\t\t\tcircle: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareTypes.SHARE_TYPE_ROOM) {\n\t\tif (share.shareWithDisplayName) {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you and the conversation {conversation} by {owner}',\n\t\t\t\t{\n\t\t\t\t\tconversation: share.shareWithDisplayName,\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t} else {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you in a conversation by {owner}',\n\t\t\t\t{\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t}\n\t} else {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you by {owner}',\n\t\t\t{ owner: share.ownerDisplayName },\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t}\n}\n\nexport { shareWithTitle }\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=1669cfd6&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=1669cfd6&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingTab.vue?vue&type=template&id=1669cfd6&scoped=true\"\nimport script from \"./SharingTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingTab.vue?vue&type=style&index=0&id=1669cfd6&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1669cfd6\",\n null\n \n)\n\nexport default component.exports","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon alert-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AlertIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Alert.vue?vue&type=template&id=89056902\"\nimport script from \"./Alert.vue?vue&type=script&lang=js\"\nexport * from \"./Alert.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon alert-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon alert-decagram-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AlertDecagramIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertDecagram.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertDecagram.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AlertDecagram.vue?vue&type=template&id=137d8918\"\nimport script from \"./AlertDecagram.vue?vue&type=script&lang=js\"\nexport * from \"./AlertDecagram.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon alert-decagram-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ArrowLeft.vue?vue&type=template&id=187c55d7\"\nimport script from \"./ArrowLeft.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowLeft.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon arrow-left-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ArrowLeftIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon calendar-blank-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CalendarBlankIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlank.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlank.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarBlank.vue?vue&type=template&id=042fd602\"\nimport script from \"./CalendarBlank.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarBlank.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-blank-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon checkbox-blank-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CheckboxBlankOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckboxBlankOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckboxBlankOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CheckboxBlankOutline.vue?vue&type=template&id=fb5828cc\"\nimport script from \"./CheckboxBlankOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CheckboxBlankOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon checkbox-blank-outline-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon checkbox-marked-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CheckboxMarkedIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckboxMarked.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckboxMarked.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CheckboxMarked.vue?vue&type=template&id=66a59ab7\"\nimport script from \"./CheckboxMarked.vue?vue&type=script&lang=js\"\nexport * from \"./CheckboxMarked.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon checkbox-marked-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon checkbox-marked-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CheckboxMarkedCircleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckboxMarkedCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckboxMarkedCircle.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CheckboxMarkedCircle.vue?vue&type=template&id=b94c09be\"\nimport script from \"./CheckboxMarkedCircle.vue?vue&type=script&lang=js\"\nexport * from \"./CheckboxMarkedCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon checkbox-marked-circle-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ChevronDown.vue?vue&type=template&id=5a2dce2f\"\nimport script from \"./ChevronDown.vue?vue&type=script&lang=js\"\nexport * from \"./ChevronDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon chevron-left-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ChevronLeftIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronLeft.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronLeft.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChevronLeft.vue?vue&type=template&id=09d94b5a\"\nimport script from \"./ChevronLeft.vue?vue&type=script&lang=js\"\nexport * from \"./ChevronLeft.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon chevron-left-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ChevronRight.vue?vue&type=template&id=750bcc07\"\nimport script from \"./ChevronRight.vue?vue&type=script&lang=js\"\nexport * from \"./ChevronRight.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon chevron-right-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ChevronRightIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon chevron-up-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ChevronUpIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronUp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronUp.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChevronUp.vue?vue&type=template&id=431f415e\"\nimport script from \"./ChevronUp.vue?vue&type=script&lang=js\"\nexport * from \"./ChevronUp.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon chevron-up-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Close.vue?vue&type=template&id=75d4151a\"\nimport script from \"./Close.vue?vue&type=script&lang=js\"\nexport * from \"./Close.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Cog.vue?vue&type=template&id=bcf30078\"\nimport script from \"./Cog.vue?vue&type=script&lang=js\"\nexport * from \"./Cog.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./DotsHorizontal.vue?vue&type=template&id=6950b9a6\"\nimport script from \"./DotsHorizontal.vue?vue&type=script&lang=js\"\nexport * from \"./DotsHorizontal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon dots-horizontal-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"DotsHorizontalIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon eye-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EyeIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Eye.vue?vue&type=template&id=beccbcf6\"\nimport script from \"./Eye.vue?vue&type=script&lang=js\"\nexport * from \"./Eye.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon eye-off-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EyeOffIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOff.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOff.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./EyeOff.vue?vue&type=template&id=0fb59bd2\"\nimport script from \"./EyeOff.vue?vue&type=script&lang=js\"\nexport * from \"./EyeOff.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-off-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Folder.vue?vue&type=template&id=5c04f969\"\nimport script from \"./Folder.vue?vue&type=script&lang=js\"\nexport * from \"./Folder.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon help-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"HelpCircleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./HelpCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./HelpCircle.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HelpCircle.vue?vue&type=template&id=4dac44fa\"\nimport script from \"./HelpCircle.vue?vue&type=script&lang=js\"\nexport * from \"./HelpCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon help-circle-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon link-variant-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"LinkVariantIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./LinkVariant.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./LinkVariant.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LinkVariant.vue?vue&type=template&id=3834522c\"\nimport script from \"./LinkVariant.vue?vue&type=script&lang=js\"\nexport * from \"./LinkVariant.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon link-variant-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon menu-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MenuIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Menu.vue?vue&type=template&id=b3763850\"\nimport script from \"./Menu.vue?vue&type=script&lang=js\"\nexport * from \"./Menu.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon menu-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon menu-open-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MenuOpenIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./MenuOpen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./MenuOpen.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MenuOpen.vue?vue&type=template&id=179c83d7\"\nimport script from \"./MenuOpen.vue?vue&type=script&lang=js\"\nexport * from \"./MenuOpen.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon menu-open-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon minus-box-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MinusBoxIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./MinusBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./MinusBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MinusBox.vue?vue&type=template&id=d90829ce\"\nimport script from \"./MinusBox.vue?vue&type=script&lang=js\"\nexport * from \"./MinusBox.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon minus-box-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon pause-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,19H18V5H14M6,19H10V5H6V19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"PauseIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pause.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pause.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Pause.vue?vue&type=template&id=713ddbb4\"\nimport script from \"./Pause.vue?vue&type=script&lang=js\"\nexport * from \"./Pause.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon pause-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M14,19H18V5H14M6,19H10V5H6V19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon play-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M8,5.14V19.14L19,12.14L8,5.14Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"PlayIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Play.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Play.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Play.vue?vue&type=template&id=40a96fba\"\nimport script from \"./Play.vue?vue&type=script&lang=js\"\nexport * from \"./Play.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon play-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8,5.14V19.14L19,12.14L8,5.14Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon radiobox-blank-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"RadioboxBlankIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./RadioboxBlank.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./RadioboxBlank.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RadioboxBlank.vue?vue&type=template&id=0bb006bd\"\nimport script from \"./RadioboxBlank.vue?vue&type=script&lang=js\"\nexport * from \"./RadioboxBlank.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon radiobox-blank-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon radiobox-marked-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"RadioboxMarkedIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./RadioboxMarked.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./RadioboxMarked.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RadioboxMarked.vue?vue&type=template&id=3ebe8680\"\nimport script from \"./RadioboxMarked.vue?vue&type=script&lang=js\"\nexport * from \"./RadioboxMarked.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon radiobox-marked-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Star.vue?vue&type=template&id=22339b94\"\nimport script from \"./Star.vue?vue&type=script&lang=js\"\nexport * from \"./Star.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StarOutline.vue?vue&type=template&id=3a0ad9db\"\nimport script from \"./StarOutline.vue?vue&type=script&lang=js\"\nexport * from \"./StarOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon toggle-switch-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ToggleSwitchIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ToggleSwitch.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ToggleSwitch.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ToggleSwitch.vue?vue&type=template&id=286211c1\"\nimport script from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon toggle-switch-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon toggle-switch-off-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ToggleSwitchOffIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ToggleSwitchOff.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ToggleSwitchOff.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ToggleSwitchOff.vue?vue&type=template&id=134175c4\"\nimport script from \"./ToggleSwitchOff.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleSwitchOff.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon toggle-switch-off-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Undo.vue?vue&type=template&id=bc8e3c2a\"\nimport script from \"./Undo.vue?vue&type=script&lang=js\"\nexport * from \"./Undo.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon undo-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"UndoIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./UndoVariant.vue?vue&type=template&id=3b13fe6c\"\nimport script from \"./UndoVariant.vue?vue&type=script&lang=js\"\nexport * from \"./UndoVariant.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon undo-variant-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M13.5,7A6.5,6.5 0 0,1 20,13.5A6.5,6.5 0 0,1 13.5,20H10V18H13.5C16,18 18,16 18,13.5C18,11 16,9 13.5,9H7.83L10.91,12.09L9.5,13.5L4,8L9.5,2.5L10.92,3.91L7.83,7H13.5M6,18H8V20H6V18Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"UndoVariantIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronRight.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronRight.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Undo.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Undo.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./UndoVariant.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./UndoVariant.vue?vue&type=script&lang=js\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon arrow-left-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon chevron-right-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon dots-horizontal-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon undo-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon undo-variant-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M13.5,7A6.5,6.5 0 0,1 20,13.5A6.5,6.5 0 0,1 13.5,20H10V18H13.5C16,18 18,16 18,13.5C18,11 16,9 13.5,9H7.83L10.91,12.09L9.5,13.5L4,8L9.5,2.5L10.92,3.91L7.83,7H13.5M6,18H8V20H6V18Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueMultiselect=e():t.VueMultiselect=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=89)}([function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(35),i=Function.prototype,o=i.call,s=r&&i.bind.bind(o,o);t.exports=r?s:function(t){return function(){return o.apply(t,arguments)}}},function(t,e,n){var r=n(59),i=r.all;t.exports=r.IS_HTMLDDA?function(t){return\"function\"==typeof t||t===i}:function(t){return\"function\"==typeof t}},function(t,e,n){var r=n(4),i=n(43).f,o=n(30),s=n(11),u=n(33),a=n(95),l=n(66);t.exports=function(t,e){var n,c,f,p,h,d=t.target,v=t.global,g=t.stat;if(n=v?r:g?r[d]||u(d,{}):(r[d]||{}).prototype)for(c in e){if(p=e[c],t.dontCallGetSet?(h=i(n,c),f=h&&h.value):f=n[c],!l(v?c:d+(g?\".\":\"#\")+c,t.forced)&&void 0!==f){if(typeof p==typeof f)continue;a(p,f)}(t.sham||f&&f.sham)&&o(p,\"sham\",!0),s(n,c,p,t)}}},function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof e&&e)||function(){return this}()||Function(\"return this\")()}).call(e,n(139))},function(t,e,n){var r=n(0);t.exports=!r(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},function(t,e,n){var r=n(8),i=String,o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+\" is not an object\")}},function(t,e,n){var r=n(1),i=n(14),o=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return o(i(t),e)}},function(t,e,n){var r=n(2),i=n(59),o=i.all;t.exports=i.IS_HTMLDDA?function(t){return\"object\"==typeof t?null!==t:r(t)||t===o}:function(t){return\"object\"==typeof t?null!==t:r(t)}},function(t,e,n){var r=n(4),i=n(47),o=n(7),s=n(75),u=n(72),a=n(76),l=i(\"wks\"),c=r.Symbol,f=c&&c.for,p=a?c:c&&c.withoutSetter||s;t.exports=function(t){if(!o(l,t)||!u&&\"string\"!=typeof l[t]){var e=\"Symbol.\"+t;u&&o(c,t)?l[t]=c[t]:l[t]=a&&f?f(e):p(e)}return l[t]}},function(t,e,n){var r=n(123);t.exports=function(t){return r(t.length)}},function(t,e,n){var r=n(2),i=n(13),o=n(104),s=n(33);t.exports=function(t,e,n,u){u||(u={});var a=u.enumerable,l=void 0!==u.name?u.name:e;if(r(n)&&o(n,l,u),u.global)a?t[e]=n:s(e,n);else{try{u.unsafe?t[e]&&(a=!0):delete t[e]}catch(t){}a?t[e]=n:i.f(t,e,{value:n,enumerable:!1,configurable:!u.nonConfigurable,writable:!u.nonWritable})}return t}},function(t,e,n){var r=n(35),i=Function.prototype.call;t.exports=r?i.bind(i):function(){return i.apply(i,arguments)}},function(t,e,n){var r=n(5),i=n(62),o=n(77),s=n(6),u=n(50),a=TypeError,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor;e.f=r?o?function(t,e,n){if(s(t),e=u(e),s(n),\"function\"==typeof t&&\"prototype\"===e&&\"value\"in n&&\"writable\"in n&&!n.writable){var r=c(t,e);r&&r.writable&&(t[e]=n.value,n={configurable:\"configurable\"in n?n.configurable:r.configurable,enumerable:\"enumerable\"in n?n.enumerable:r.enumerable,writable:!1})}return l(t,e,n)}:l:function(t,e,n){if(s(t),e=u(e),s(n),i)try{return l(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw a(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(24),i=Object;t.exports=function(t){return i(r(t))}},function(t,e,n){var r=n(1),i=r({}.toString),o=r(\"\".slice);t.exports=function(t){return o(i(t),8,-1)}},function(t,e,n){var r=n(0),i=n(9),o=n(23),s=i(\"species\");t.exports=function(t){return o>=51||!r(function(){var e=[],n=e.constructor={};return n[s]=function(){return{foo:1}},1!==e[t](Boolean).foo})}},function(t,e,n){var r=n(4),i=n(2),o=function(t){return i(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?o(r[t]):r[t]&&r[t][e]}},function(t,e,n){var r=n(15);t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},function(t,e,n){var r=n(39),i=n(24);t.exports=function(t){return r(i(t))}},function(t,e,n){var r=n(29),i=String;t.exports=function(t){if(\"Symbol\"===r(t))throw TypeError(\"Cannot convert a Symbol value to a string\");return i(t)}},function(t,e,n){var r=n(100),i=n(1),o=n(39),s=n(14),u=n(10),a=n(28),l=i([].push),c=function(t){var e=1==t,n=2==t,i=3==t,c=4==t,f=6==t,p=7==t,h=5==t||f;return function(d,v,g,y){for(var b,m,x=s(d),_=o(x),O=r(v,g),w=u(_),S=0,E=y||a,L=e?E(d,w):n||p?E(d,0):void 0;w>S;S++)if((h||S in _)&&(b=_[S],m=O(b,S,x),t))if(e)L[S]=m;else if(m)switch(t){case 3:return!0;case 5:return b;case 6:return S;case 2:l(L,b)}else switch(t){case 4:return!1;case 7:l(L,b)}return f?-1:i||c?c:L}};t.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6),filterReject:c(7)}},function(t,e){var n=TypeError;t.exports=function(t){if(t>9007199254740991)throw n(\"Maximum allowed index exceeded\");return t}},function(t,e,n){var r,i,o=n(4),s=n(97),u=o.process,a=o.Deno,l=u&&u.versions||a&&a.version,c=l&&l.v8;c&&(r=c.split(\".\"),i=r[0]>0&&r[0]<4?1:+(r[0]+r[1])),!i&&s&&(!(r=s.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\\/(\\d+)/))&&(i=+r[1]),t.exports=i},function(t,e,n){var r=n(40),i=TypeError;t.exports=function(t){if(r(t))throw i(\"Can't call method on \"+t);return t}},function(t,e,n){var r=n(2),i=n(74),o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+\" is not a function\")}},function(t,e,n){\"use strict\";var r=n(0);t.exports=function(t,e){var n=[][t];return!!n&&r(function(){n.call(null,e||function(){return 1},1)})}},function(t,e,n){\"use strict\";var r=n(5),i=n(18),o=TypeError,s=Object.getOwnPropertyDescriptor,u=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],\"length\",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=u?function(t,e){if(i(t)&&!s(t,\"length\").writable)throw o(\"Cannot set read only .length\");return t.length=e}:function(t,e){return t.length=e}},function(t,e,n){var r=n(94);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},function(t,e,n){var r=n(51),i=n(2),o=n(15),s=n(9),u=s(\"toStringTag\"),a=Object,l=\"Arguments\"==o(function(){return arguments}()),c=function(t,e){try{return t[e]}catch(t){}};t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=c(e=a(t),u))?n:l?o(e):\"Object\"==(r=o(e))&&i(e.callee)?\"Arguments\":r}},function(t,e,n){var r=n(5),i=n(13),o=n(31);t.exports=r?function(t,e,n){return i.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){\"use strict\";var r=n(50),i=n(13),o=n(31);t.exports=function(t,e,n){var s=r(e);s in t?i.f(t,s,o(0,n)):t[s]=n}},function(t,e,n){var r=n(4),i=Object.defineProperty;t.exports=function(t,e){try{i(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},function(t,e,n){var r=n(0);t.exports=!r(function(){var t=function(){}.bind();return\"function\"!=typeof t||t.hasOwnProperty(\"prototype\")})},function(t,e,n){var r=n(5),i=n(7),o=Function.prototype,s=r&&Object.getOwnPropertyDescriptor,u=i(o,\"name\"),a=u&&\"something\"===function(){}.name,l=u&&(!r||r&&s(o,\"name\").configurable);t.exports={EXISTS:u,PROPER:a,CONFIGURABLE:l}},function(t,e,n){var r=n(15),i=n(1);t.exports=function(t){if(\"Function\"===r(t))return i(t)}},function(t,e){t.exports={}},function(t,e,n){var r=n(1),i=n(0),o=n(15),s=Object,u=r(\"\".split);t.exports=i(function(){return!s(\"z\").propertyIsEnumerable(0)})?function(t){return\"String\"==o(t)?u(t,\"\"):s(t)}:s},function(t,e){t.exports=function(t){return null===t||void 0===t}},function(t,e,n){var r=n(17),i=n(2),o=n(44),s=n(76),u=Object;t.exports=s?function(t){return\"symbol\"==typeof t}:function(t){var e=r(\"Symbol\");return i(e)&&o(e.prototype,u(t))}},function(t,e,n){var r,i=n(6),o=n(107),s=n(34),u=n(38),a=n(101),l=n(60),c=n(70),f=c(\"IE_PROTO\"),p=function(){},h=function(t){return\"<script>\"+t+\"<\\/script>\"},d=function(t){t.write(h(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e},v=function(){var t,e=l(\"iframe\");return e.style.display=\"none\",a.appendChild(e),e.src=String(\"javascript:\"),t=e.contentWindow.document,t.open(),t.write(h(\"document.F=Object\")),t.close(),t.F},g=function(){try{r=new ActiveXObject(\"htmlfile\")}catch(t){}g=\"undefined\"!=typeof document?document.domain&&r?d(r):v():d(r);for(var t=s.length;t--;)delete g.prototype[s[t]];return g()};u[f]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(p.prototype=i(t),n=new p,p.prototype=null,n[f]=t):n=g(),void 0===e?n:o.f(n,e)}},function(t,e,n){var r=n(5),i=n(12),o=n(110),s=n(31),u=n(19),a=n(50),l=n(7),c=n(62),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=u(t),e=a(e),c)try{return f(t,e)}catch(t){}if(l(t,e))return s(!i(o.f,t,e),t[e])}},function(t,e,n){var r=n(1);t.exports=r({}.isPrototypeOf)},function(t,e,n){\"use strict\";var r=n(12),i=n(1),o=n(20),s=n(69),u=n(117),a=n(47),l=n(42),c=n(64).get,f=n(118),p=n(119),h=a(\"native-string-replace\",String.prototype.replace),d=RegExp.prototype.exec,v=d,g=i(\"\".charAt),y=i(\"\".indexOf),b=i(\"\".replace),m=i(\"\".slice),x=function(){var t=/a/,e=/b*/g;return r(d,t,\"a\"),r(d,e,\"a\"),0!==t.lastIndex||0!==e.lastIndex}(),_=u.BROKEN_CARET,O=void 0!==/()??/.exec(\"\")[1];(x||O||_||f||p)&&(v=function(t){var e,n,i,u,a,f,p,w=this,S=c(w),E=o(t),L=S.raw;if(L)return L.lastIndex=w.lastIndex,e=r(v,L,E),w.lastIndex=L.lastIndex,e;var k=S.groups,P=_&&w.sticky,j=r(s,w),T=w.source,A=0,V=E;if(P&&(j=b(j,\"y\",\"\"),-1===y(j,\"g\")&&(j+=\"g\"),V=m(E,w.lastIndex),w.lastIndex>0&&(!w.multiline||w.multiline&&\"\\n\"!==g(E,w.lastIndex-1))&&(T=\"(?: \"+T+\")\",V=\" \"+V,A++),n=new RegExp(\"^(?:\"+T+\")\",j)),O&&(n=new RegExp(\"^\"+T+\"$(?!\\\\s)\",j)),x&&(i=w.lastIndex),u=r(d,P?n:w,V),P?u?(u.input=m(u.input,A),u[0]=m(u[0],A),u.index=w.lastIndex,w.lastIndex+=u[0].length):w.lastIndex=0:x&&u&&(w.lastIndex=w.global?u.index+u[0].length:i),O&&u&&u.length>1&&r(h,u[0],n,function(){for(a=1;a<arguments.length-2;a++)void 0===arguments[a]&&(u[a]=void 0)}),u&&k)for(u.groups=f=l(null),a=0;a<k.length;a++)p=k[a],f[p[0]]=u[p[1]];return u}),t.exports=v},function(t,e,n){var r=n(4),i=n(33),o=r[\"__core-js_shared__\"]||i(\"__core-js_shared__\",{});t.exports=o},function(t,e,n){var r=n(103),i=n(46);(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.26.1\",mode:r?\"pure\":\"global\",copyright:\"© 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE\",source:\"https://github.com/zloirock/core-js\"})},function(t,e,n){var r=n(49),i=Math.max,o=Math.min;t.exports=function(t,e){var n=r(t);return n<0?i(n+e,0):o(n,e)}},function(t,e,n){var r=n(105);t.exports=function(t){var e=+t;return e!==e||0===e?0:r(e)}},function(t,e,n){var r=n(73),i=n(41);t.exports=function(t){var e=r(t,\"string\");return i(e)?e:e+\"\"}},function(t,e,n){var r=n(9),i=r(\"toStringTag\"),o={};o[i]=\"z\",t.exports=\"[object z]\"===String(o)},function(t,e,n){\"use strict\";var r=n(5),i=n(4),o=n(1),s=n(66),u=n(11),a=n(7),l=n(102),c=n(44),f=n(41),p=n(73),h=n(0),d=n(67).f,v=n(43).f,g=n(13).f,y=n(122),b=n(71).trim,m=i.Number,x=m.prototype,_=i.TypeError,O=o(\"\".slice),w=o(\"\".charCodeAt),S=function(t){var e=p(t,\"number\");return\"bigint\"==typeof e?e:E(e)},E=function(t){var e,n,r,i,o,s,u,a,l=p(t,\"number\");if(f(l))throw _(\"Cannot convert a Symbol value to a number\");if(\"string\"==typeof l&&l.length>2)if(l=b(l),43===(e=w(l,0))||45===e){if(88===(n=w(l,2))||120===n)return NaN}else if(48===e){switch(w(l,1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+l}for(o=O(l,2),s=o.length,u=0;u<s;u++)if((a=w(o,u))<48||a>i)return NaN;return parseInt(o,r)}return+l};if(s(\"Number\",!m(\" 0o1\")||!m(\"0b1\")||m(\"+0x1\"))){for(var L,k=function(t){var e=arguments.length<1?0:m(S(t)),n=this;return c(x,n)&&h(function(){y(n)})?l(Object(e),n,k):e},P=r?d(m):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range\".split(\",\"),j=0;P.length>j;j++)a(m,L=P[j])&&!a(k,L)&&g(k,L,v(m,L));k.prototype=x,x.constructor=k,u(i,\"Number\",k,{constructor:!0})}},function(t,e,n){\"use strict\";var r=n(3),i=n(45);r({target:\"RegExp\",proto:!0,forced:/./.exec!==i},{exec:i})},function(t,e,n){\"use strict\";function r(t){return 0!==t&&(!(!Array.isArray(t)||0!==t.length)||!t)}function i(t){return function(){return!t.apply(void 0,arguments)}}function o(t,e){return void 0===t&&(t=\"undefined\"),null===t&&(t=\"null\"),!1===t&&(t=\"false\"),-1!==t.toString().toLowerCase().indexOf(e.trim())}function s(t,e,n,r){return t.filter(function(t){return o(r(t,n),e)})}function u(t){return t.filter(function(t){return!t.$isLabel})}function a(t,e){return function(n){return n.reduce(function(n,r){return r[t]&&r[t].length?(n.push({$groupLabel:r[e],$isLabel:!0}),n.concat(r[t])):n},[])}}function l(t,e,r,i,o){return function(u){return u.map(function(u){var a;if(!u[r])return console.warn(\"Options passed to vue-multiselect do not contain groups, despite the config.\"),[];var l=s(u[r],t,e,o);return l.length?(a={},n.i(f.a)(a,i,u[i]),n.i(f.a)(a,r,l),a):[]})}}var c=n(88),f=n(87),p=n(129),h=(n.n(p),n(82)),d=(n.n(h),n(81)),v=(n.n(d),n(83)),g=(n.n(v),n(84)),y=(n.n(g),n(128)),b=(n.n(y),n(135)),m=(n.n(b),n(127)),x=(n.n(m),n(132)),_=(n.n(x),n(131)),O=(n.n(_),n(125)),w=(n.n(O),n(130)),S=(n.n(w),n(52)),E=(n.n(S),n(53)),L=(n.n(E),n(85)),k=(n.n(L),n(134)),P=(n.n(k),n(80)),j=(n.n(P),n(79)),T=(n.n(j),n(133)),A=(n.n(T),n(126)),V=(n.n(A),function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return e.reduce(function(t,e){return e(t)},t)}});e.a={data:function(){return{search:\"\",isOpen:!1,preferredOpenDirection:\"below\",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},value:{type:null,default:function(){return[]}},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:\"Select option\"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default:function(t,e){return r(t)?\"\":e?t[e]:t}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:\"Press enter to create a tag\"},tagPosition:{type:String,default:\"top\"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default:function(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1},preventAutofocus:{type:Boolean,default:!1}},mounted:function(){!this.multiple&&this.max&&console.warn(\"[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.\"),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue:function(){return this.value||0===this.value?Array.isArray(this.value)?this.value:[this.value]:[]},filteredOptions:function(){var t=this.search||\"\",e=t.toLowerCase().trim(),n=this.options.concat();return n=this.internalSearch?this.groupValues?this.filterAndFlat(n,e,this.label):s(n,e,this.label,this.customLabel):this.groupValues?a(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(i(this.isSelected)):n,this.taggable&&e.length&&!this.isExistingOption(e)&&(\"bottom\"===this.tagPosition?n.push({isTag:!0,label:t}):n.unshift({isTag:!0,label:t})),n.slice(0,this.optionsLimit)},valueKeys:function(){var t=this;return this.trackBy?this.internalValue.map(function(e){return e[t.trackBy]}):this.internalValue},optionKeys:function(){var t=this;return(this.groupValues?this.flatAndStrip(this.options):this.options).map(function(e){return t.customLabel(e,t.label).toString().toLowerCase()})},currentOptionLabel:function(){return this.multiple?this.searchable?\"\":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?\"\":this.placeholder}},watch:{internalValue:function(){this.resetAfter&&this.internalValue.length&&(this.search=\"\",this.$emit(\"input\",this.multiple?[]:null))},search:function(){this.$emit(\"search-change\",this.search,this.id)}},methods:{getValue:function(){return this.multiple?this.internalValue:0===this.internalValue.length?null:this.internalValue[0]},filterAndFlat:function(t,e,n){return V(l(e,n,this.groupValues,this.groupLabel,this.customLabel),a(this.groupValues,this.groupLabel))(t)},flatAndStrip:function(t){return V(a(this.groupValues,this.groupLabel),u)(t)},updateSearch:function(t){this.search=t},isExistingOption:function(t){return!!this.options&&this.optionKeys.indexOf(t)>-1},isSelected:function(t){var e=this.trackBy?t[this.trackBy]:t;return this.valueKeys.indexOf(e)>-1},isOptionDisabled:function(t){return!!t.$isDisabled},getOptionLabel:function(t){if(r(t))return\"\";if(t.isTag)return t.label;if(t.$isLabel)return t.$groupLabel;var e=this.customLabel(t,this.label);return r(e)?\"\":e},select:function(t,e){if(t.$isLabel&&this.groupSelect)return void this.selectGroup(t);if(!(-1!==this.blockKeys.indexOf(e)||this.disabled||t.$isDisabled||t.$isLabel)&&(!this.max||!this.multiple||this.internalValue.length!==this.max)&&(\"Tab\"!==e||this.pointerDirty)){if(t.isTag)this.$emit(\"tag\",t.label,this.id),this.search=\"\",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(t))return void(\"Tab\"!==e&&this.removeElement(t));this.multiple?this.$emit(\"input\",this.internalValue.concat([t]),this.id):this.$emit(\"input\",t,this.id),this.$emit(\"select\",t,this.id),this.clearOnSelect&&(this.search=\"\")}this.closeOnSelect&&this.deactivate()}},selectGroup:function(t){var e=this,n=this.options.find(function(n){return n[e.groupLabel]===t.$groupLabel});if(n){if(this.wholeGroupSelected(n)){this.$emit(\"remove\",n[this.groupValues],this.id);var r=this.internalValue.filter(function(t){return-1===n[e.groupValues].indexOf(t)});this.$emit(\"input\",r,this.id)}else{var i=n[this.groupValues].filter(function(t){return!(e.isOptionDisabled(t)||e.isSelected(t))});this.max&&i.splice(this.max-this.internalValue.length),this.$emit(\"select\",i,this.id),this.$emit(\"input\",this.internalValue.concat(i),this.id)}this.closeOnSelect&&this.deactivate()}},wholeGroupSelected:function(t){var e=this;return t[this.groupValues].every(function(t){return e.isSelected(t)||e.isOptionDisabled(t)})},wholeGroupDisabled:function(t){return t[this.groupValues].every(this.isOptionDisabled)},removeElement:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled&&!t.$isDisabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var r=\"object\"===n.i(c.a)(t)?this.valueKeys.indexOf(t[this.trackBy]):this.valueKeys.indexOf(t);if(this.multiple){var i=this.internalValue.slice(0,r).concat(this.internalValue.slice(r+1));this.$emit(\"input\",i,this.id)}else this.$emit(\"input\",null,this.id);this.$emit(\"remove\",t,this.id),this.closeOnSelect&&e&&this.deactivate()}},removeLastElement:function(){-1===this.blockKeys.indexOf(\"Delete\")&&0===this.search.length&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate:function(){var t=this;this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&0===this.pointer&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=\"\"),this.preventAutofocus||this.$nextTick(function(){return t.$refs.search&&t.$refs.search.focus()})):this.preventAutofocus||void 0!==this.$el&&this.$el.focus(),this.$emit(\"open\",this.id))},deactivate:function(){this.isOpen&&(this.isOpen=!1,this.searchable?null!==this.$refs.search&&void 0!==this.$refs.search&&this.$refs.search.blur():void 0!==this.$el&&this.$el.blur(),this.preserveSearch||(this.search=\"\"),this.$emit(\"close\",this.getValue(),this.id))},toggle:function(){this.isOpen?this.deactivate():this.activate()},adjustPosition:function(){if(\"undefined\"!=typeof window){var t=this.$el.getBoundingClientRect().top,e=window.innerHeight-this.$el.getBoundingClientRect().bottom;e>this.maxHeight||e>t||\"below\"===this.openDirection||\"bottom\"===this.openDirection?(this.preferredOpenDirection=\"below\",this.optimizedHeight=Math.min(e-40,this.maxHeight)):(this.preferredOpenDirection=\"above\",this.optimizedHeight=Math.min(t-40,this.maxHeight))}}}}},function(t,e,n){\"use strict\";var r=n(52),i=(n.n(r),n(53)),o=(n.n(i),n(85)),s=(n.n(o),n(82)),u=(n.n(s),n(81)),a=(n.n(u),n(83)),l=(n.n(a),n(84)),c=(n.n(l),n(79));n.n(c);e.a={data:function(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition:function(){return this.pointer*this.optionHeight},visibleElements:function(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions:function(){this.pointerAdjust()},isOpen:function(){this.pointerDirty=!1},pointer:function(){this.$refs.search&&this.$refs.search.setAttribute(\"aria-activedescendant\",this.id+\"-\"+this.pointer.toString())}},methods:{optionHighlight:function(t,e){return{\"multiselect__option--highlight\":t===this.pointer&&this.showPointer,\"multiselect__option--selected\":this.isSelected(e)}},groupHighlight:function(t,e){var n=this;if(!this.groupSelect)return[\"multiselect__option--disabled\",{\"multiselect__option--group\":e.$isLabel}];var r=this.options.find(function(t){return t[n.groupLabel]===e.$groupLabel});return r&&!this.wholeGroupDisabled(r)?[\"multiselect__option--group\",{\"multiselect__option--highlight\":t===this.pointer&&this.showPointer},{\"multiselect__option--group-selected\":this.wholeGroupSelected(r)}]:\"multiselect__option--disabled\"},addPointerElement:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"Enter\",e=t.key;this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward:function(){this.pointer<this.filteredOptions.length-1&&(this.pointer++,this.$refs.list.scrollTop<=this.pointerPosition-(this.visibleElements-1)*this.optionHeight&&(this.$refs.list.scrollTop=this.pointerPosition-(this.visibleElements-1)*this.optionHeight),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()),this.pointerDirty=!0},pointerBackward:function(){this.pointer>0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset:function(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust:function(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet:function(t){this.pointer=t,this.pointerDirty=!0}}}},function(t,e,n){\"use strict\";var r=n(52),i=(n.n(r),n(80)),o=(n.n(i),n(54)),s=n(55);e.a={name:\"vue-multiselect\",mixins:[o.a,s.a],props:{name:{type:String,default:\"\"},selectLabel:{type:String,default:\"Press enter to select\"},selectGroupLabel:{type:String,default:\"Press enter to select group\"},selectedLabel:{type:String,default:\"Selected\"},deselectLabel:{type:String,default:\"Press enter to remove\"},deselectGroupLabel:{type:String,default:\"Press enter to deselect group\"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:function(t){return\"and \".concat(t,\" more\")}},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:\"\"},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{hasOptionGroup:function(){return this.groupValues&&this.groupLabel&&this.groupSelect},isSingleLabelVisible:function(){return(this.singleValue||0===this.singleValue)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible:function(){return!(this.internalValue.length||this.searchable&&this.isOpen)},visibleValues:function(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue:function(){return this.internalValue[0]},deselectLabelText:function(){return this.showLabels?this.deselectLabel:\"\"},deselectGroupLabelText:function(){return this.showLabels?this.deselectGroupLabel:\"\"},selectLabelText:function(){return this.showLabels?this.selectLabel:\"\"},selectGroupLabelText:function(){return this.showLabels?this.selectGroupLabel:\"\"},selectedLabelText:function(){return this.showLabels?this.selectedLabel:\"\"},inputStyle:function(){return this.searchable||this.multiple&&this.value&&this.value.length?this.isOpen?{width:\"100%\"}:{width:\"0\",position:\"absolute\",padding:\"0\"}:\"\"},contentStyle:function(){return this.options.length?{display:\"inline-block\"}:{display:\"block\"}},isAbove:function(){return\"above\"===this.openDirection||\"top\"===this.openDirection||\"below\"!==this.openDirection&&\"bottom\"!==this.openDirection&&\"above\"===this.preferredOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},function(t,e,n){var r=n(19),i=n(48),o=n(10),s=function(t){return function(e,n,s){var u,a=r(e),l=o(a),c=i(s,l);if(t&&n!=n){for(;l>c;)if((u=a[c++])!=u)return!0}else for(;l>c;c++)if((t||c in a)&&a[c]===n)return t||c||0;return!t&&-1}};t.exports={includes:s(!0),indexOf:s(!1)}},function(t,e,n){\"use strict\";var r=n(74),i=TypeError;t.exports=function(t,e){if(!delete t[e])throw i(\"Cannot delete property \"+r(e)+\" of \"+r(t))}},function(t,e){var n=\"object\"==typeof document&&document.all,r=void 0===n&&void 0!==n;t.exports={all:n,IS_HTMLDDA:r}},function(t,e,n){var r=n(4),i=n(8),o=r.document,s=i(o)&&i(o.createElement);t.exports=function(t){return s?o.createElement(t):{}}},function(t,e,n){var r=n(25),i=n(40);t.exports=function(t,e){var n=t[e];return i(n)?void 0:r(n)}},function(t,e,n){var r=n(5),i=n(0),o=n(60);t.exports=!r&&!i(function(){return 7!=Object.defineProperty(o(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){var r=n(1),i=n(2),o=n(46),s=r(Function.toString);i(o.inspectSource)||(o.inspectSource=function(t){return s(t)}),t.exports=o.inspectSource},function(t,e,n){var r,i,o,s=n(124),u=n(4),a=n(8),l=n(30),c=n(7),f=n(46),p=n(70),h=n(38),d=u.TypeError,v=u.WeakMap,g=function(t){return o(t)?i(t):r(t,{})},y=function(t){return function(e){var n;if(!a(e)||(n=i(e)).type!==t)throw d(\"Incompatible receiver, \"+t+\" required\");return n}};if(s||f.state){var b=f.state||(f.state=new v);b.get=b.get,b.has=b.has,b.set=b.set,r=function(t,e){if(b.has(t))throw d(\"Object already initialized\");return e.facade=t,b.set(t,e),e},i=function(t){return b.get(t)||{}},o=function(t){return b.has(t)}}else{var m=p(\"state\");h[m]=!0,r=function(t,e){if(c(t,m))throw d(\"Object already initialized\");return e.facade=t,l(t,m,e),e},i=function(t){return c(t,m)?t[m]:{}},o=function(t){return c(t,m)}}t.exports={set:r,get:i,has:o,enforce:g,getterFor:y}},function(t,e,n){var r=n(1),i=n(0),o=n(2),s=n(29),u=n(17),a=n(63),l=function(){},c=[],f=u(\"Reflect\",\"construct\"),p=/^\\s*(?:class|function)\\b/,h=r(p.exec),d=!p.exec(l),v=function(t){if(!o(t))return!1;try{return f(l,c,t),!0}catch(t){return!1}},g=function(t){if(!o(t))return!1;switch(s(t)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return d||!!h(p,a(t))}catch(t){return!0}};g.sham=!0,t.exports=!f||i(function(){var t;return v(v.call)||!v(Object)||!v(function(){t=!0})||t})?g:v},function(t,e,n){var r=n(0),i=n(2),o=/#|\\.prototype\\./,s=function(t,e){var n=a[u(t)];return n==c||n!=l&&(i(e)?r(e):!!e)},u=s.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},a=s.data={},l=s.NATIVE=\"N\",c=s.POLYFILL=\"P\";t.exports=s},function(t,e,n){var r=n(68),i=n(34),o=i.concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e,n){var r=n(1),i=n(7),o=n(19),s=n(57).indexOf,u=n(38),a=r([].push);t.exports=function(t,e){var n,r=o(t),l=0,c=[];for(n in r)!i(u,n)&&i(r,n)&&a(c,n);for(;e.length>l;)i(r,n=e[l++])&&(~s(c,n)||a(c,n));return c}},function(t,e,n){\"use strict\";var r=n(6);t.exports=function(){var t=r(this),e=\"\";return t.hasIndices&&(e+=\"d\"),t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.unicodeSets&&(e+=\"v\"),t.sticky&&(e+=\"y\"),e}},function(t,e,n){var r=n(47),i=n(75),o=r(\"keys\");t.exports=function(t){return o[t]||(o[t]=i(t))}},function(t,e,n){var r=n(1),i=n(24),o=n(20),s=n(78),u=r(\"\".replace),a=\"[\"+s+\"]\",l=RegExp(\"^\"+a+a+\"*\"),c=RegExp(a+a+\"*$\"),f=function(t){return function(e){var n=o(i(e));return 1&t&&(n=u(n,l,\"\")),2&t&&(n=u(n,c,\"\")),n}};t.exports={start:f(1),end:f(2),trim:f(3)}},function(t,e,n){var r=n(23),i=n(0);t.exports=!!Object.getOwnPropertySymbols&&!i(function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41})},function(t,e,n){var r=n(12),i=n(8),o=n(41),s=n(61),u=n(113),a=n(9),l=TypeError,c=a(\"toPrimitive\");t.exports=function(t,e){if(!i(t)||o(t))return t;var n,a=s(t,c);if(a){if(void 0===e&&(e=\"default\"),n=r(a,t,e),!i(n)||o(n))return n;throw l(\"Can't convert object to primitive value\")}return void 0===e&&(e=\"number\"),u(t,e)}},function(t,e){var n=String;t.exports=function(t){try{return n(t)}catch(t){return\"Object\"}}},function(t,e,n){var r=n(1),i=0,o=Math.random(),s=r(1..toString);t.exports=function(t){return\"Symbol(\"+(void 0===t?\"\":t)+\")_\"+s(++i+o,36)}},function(t,e,n){var r=n(72);t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator},function(t,e,n){var r=n(5),i=n(0);t.exports=r&&i(function(){return 42!=Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype})},function(t,e){t.exports=\"\\t\\n\\v\\f\\r                 \\u2028\\u2029\\ufeff\"},function(t,e,n){\"use strict\";var r=n(3),i=n(21).find,o=n(91),s=!0;\"find\"in[]&&Array(1).find(function(){s=!1}),r({target:\"Array\",proto:!0,forced:s},{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o(\"find\")},function(t,e,n){\"use strict\";var r=n(3),i=n(18),o=n(65),s=n(8),u=n(48),a=n(10),l=n(19),c=n(32),f=n(9),p=n(16),h=n(93),d=p(\"slice\"),v=f(\"species\"),g=Array,y=Math.max;r({target:\"Array\",proto:!0,forced:!d},{slice:function(t,e){var n,r,f,p=l(this),d=a(p),b=u(t,d),m=u(void 0===e?d:e,d);if(i(p)&&(n=p.constructor,o(n)&&(n===g||i(n.prototype))?n=void 0:s(n)&&null===(n=n[v])&&(n=void 0),n===g||void 0===n))return h(p,b,m);for(r=new(void 0===n?g:n)(y(m-b,0)),f=0;b<m;b++,f++)b in p&&c(r,f,p[b]);return r.length=f,r}})},function(t,e,n){var r=n(1),i=n(11),o=Date.prototype,s=r(o.toString),u=r(o.getTime);\"Invalid Date\"!=String(new Date(NaN))&&i(o,\"toString\",function(){var t=u(this);return t===t?s(this):\"Invalid Date\"})},function(t,e,n){var r=n(11),i=n(98),o=Error.prototype;o.toString!==i&&r(o,\"toString\",i)},function(t,e,n){var r=n(51),i=n(11),o=n(112);r||i(Object.prototype,\"toString\",o,{unsafe:!0})},function(t,e,n){\"use strict\";var r=n(36).PROPER,i=n(11),o=n(6),s=n(20),u=n(0),a=n(116),l=RegExp.prototype,c=l.toString,f=u(function(){return\"/a/b\"!=c.call({source:\"a\",flags:\"b\"})}),p=r&&\"toString\"!=c.name;(f||p)&&i(RegExp.prototype,\"toString\",function(){var t=o(this);return\"/\"+s(t.source)+\"/\"+s(a(t))},{unsafe:!0})},function(t,e,n){\"use strict\";var r=n(12),i=n(99),o=n(6),s=n(40),u=n(24),a=n(120),l=n(20),c=n(61),f=n(115);i(\"search\",function(t,e,n){return[function(e){var n=u(this),i=s(e)?void 0:c(e,t);return i?r(i,e,n):new RegExp(e)[t](l(n))},function(t){var r=o(this),i=l(t),s=n(e,r,i);if(s.done)return s.value;var u=r.lastIndex;a(u,0)||(r.lastIndex=0);var c=f(r,i);return a(r.lastIndex,u)||(r.lastIndex=u),null===c?-1:c.index}]})},function(t,e,n){\"use strict\";function r(t){n(136)}var i=n(56),o=n(138),s=n(137),u=r,a=s(i.a,o.a,!1,u,null,null);e.a=a.exports},function(t,e,n){\"use strict\";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}e.a=r},function(t,e,n){\"use strict\";function r(t){\"@babel/helpers - typeof\";return(r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}e.a=r},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(86),i=n(54),o=n(55);n.d(e,\"Multiselect\",function(){return r.a}),n.d(e,\"multiselectMixin\",function(){return i.a}),n.d(e,\"pointerMixin\",function(){return o.a}),e.default=r.a},function(t,e,n){var r=n(2),i=String,o=TypeError;t.exports=function(t){if(\"object\"==typeof t||r(t))return t;throw o(\"Can't set \"+i(t)+\" as a prototype\")}},function(t,e,n){var r=n(9),i=n(42),o=n(13).f,s=r(\"unscopables\"),u=Array.prototype;void 0==u[s]&&o(u,s,{configurable:!0,value:i(null)}),t.exports=function(t){u[s][t]=!0}},function(t,e,n){var r=n(25),i=n(14),o=n(39),s=n(10),u=TypeError,a=function(t){return function(e,n,a,l){r(n);var c=i(e),f=o(c),p=s(c),h=t?p-1:0,d=t?-1:1;if(a<2)for(;;){if(h in f){l=f[h],h+=d;break}if(h+=d,t?h<0:p<=h)throw u(\"Reduce of empty array with no initial value\")}for(;t?h>=0:p>h;h+=d)h in f&&(l=n(l,f[h],h,c));return l}};t.exports={left:a(!1),right:a(!0)}},function(t,e,n){var r=n(1);t.exports=r([].slice)},function(t,e,n){var r=n(18),i=n(65),o=n(8),s=n(9),u=s(\"species\"),a=Array;t.exports=function(t){var e;return r(t)&&(e=t.constructor,i(e)&&(e===a||r(e.prototype))?e=void 0:o(e)&&null===(e=e[u])&&(e=void 0)),void 0===e?a:e}},function(t,e,n){var r=n(7),i=n(114),o=n(43),s=n(13);t.exports=function(t,e,n){for(var u=i(e),a=s.f,l=o.f,c=0;c<u.length;c++){var f=u[c];r(t,f)||n&&r(n,f)||a(t,f,l(e,f))}}},function(t,e,n){var r=n(15),i=n(4);t.exports=\"process\"==r(i.process)},function(t,e,n){var r=n(17);t.exports=r(\"navigator\",\"userAgent\")||\"\"},function(t,e,n){\"use strict\";var r=n(5),i=n(0),o=n(6),s=n(42),u=n(106),a=Error.prototype.toString,l=i(function(){if(r){var t=s(Object.defineProperty({},\"name\",{get:function(){return this===t}}));if(\"true\"!==a.call(t))return!0}return\"2: 1\"!==a.call({message:1,name:2})||\"Error\"!==a.call({})});t.exports=l?function(){var t=o(this),e=u(t.name,\"Error\"),n=u(t.message);return e?n?e+\": \"+n:e:n}:a},function(t,e,n){\"use strict\";n(53);var r=n(37),i=n(11),o=n(45),s=n(0),u=n(9),a=n(30),l=u(\"species\"),c=RegExp.prototype;t.exports=function(t,e,n,f){var p=u(t),h=!s(function(){var e={};return e[p]=function(){return 7},7!=\"\"[t](e)}),d=h&&!s(function(){var e=!1,n=/a/;return\"split\"===t&&(n={},n.constructor={},n.constructor[l]=function(){return n},n.flags=\"\",n[p]=/./[p]),n.exec=function(){return e=!0,null},n[p](\"\"),!e});if(!h||!d||n){var v=r(/./[p]),g=e(p,\"\"[t],function(t,e,n,i,s){var u=r(t),a=e.exec;return a===o||a===c.exec?h&&!s?{done:!0,value:v(e,n,i)}:{done:!0,value:u(n,e,i)}:{done:!1}});i(String.prototype,t,g[0]),i(c,p,g[1])}f&&a(c[p],\"sham\",!0)}},function(t,e,n){var r=n(37),i=n(25),o=n(35),s=r(r.bind);t.exports=function(t,e){return i(t),void 0===e?t:o?s(t,e):function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(17);t.exports=r(\"document\",\"documentElement\")},function(t,e,n){var r=n(2),i=n(8),o=n(111);t.exports=function(t,e,n){var s,u;return o&&r(s=e.constructor)&&s!==n&&i(u=s.prototype)&&u!==n.prototype&&o(t,u),t}},function(t,e){t.exports=!1},function(t,e,n){var r=n(0),i=n(2),o=n(7),s=n(5),u=n(36).CONFIGURABLE,a=n(63),l=n(64),c=l.enforce,f=l.get,p=Object.defineProperty,h=s&&!r(function(){return 8!==p(function(){},\"length\",{value:8}).length}),d=String(String).split(\"String\"),v=t.exports=function(t,e,n){\"Symbol(\"===String(e).slice(0,7)&&(e=\"[\"+String(e).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),n&&n.getter&&(e=\"get \"+e),n&&n.setter&&(e=\"set \"+e),(!o(t,\"name\")||u&&t.name!==e)&&(s?p(t,\"name\",{value:e,configurable:!0}):t.name=e),h&&n&&o(n,\"arity\")&&t.length!==n.arity&&p(t,\"length\",{value:n.arity});try{n&&o(n,\"constructor\")&&n.constructor?s&&p(t,\"prototype\",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=c(t);return o(r,\"source\")||(r.source=d.join(\"string\"==typeof e?e:\"\")),t};Function.prototype.toString=v(function(){return i(this)&&f(this).source||a(this)},\"toString\")},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=Math.trunc||function(t){var e=+t;return(e>0?r:n)(e)}},function(t,e,n){var r=n(20);t.exports=function(t,e){return void 0===t?arguments.length<2?\"\":e:r(t)}},function(t,e,n){var r=n(5),i=n(77),o=n(13),s=n(6),u=n(19),a=n(109);e.f=r&&!i?Object.defineProperties:function(t,e){s(t);for(var n,r=u(e),i=a(e),l=i.length,c=0;l>c;)o.f(t,n=i[c++],r[n]);return t}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(68),i=n(34);t.exports=Object.keys||function(t){return r(t,i)}},function(t,e,n){\"use strict\";var r={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,o=i&&!r.call({1:2},1);e.f=o?function(t){var e=i(this,t);return!!e&&e.enumerable}:r},function(t,e,n){var r=n(1),i=n(6),o=n(90);t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{t=r(Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set),t(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return i(n),o(r),e?t(n,r):n.__proto__=r,n}}():void 0)},function(t,e,n){\"use strict\";var r=n(51),i=n(29);t.exports=r?{}.toString:function(){return\"[object \"+i(this)+\"]\"}},function(t,e,n){var r=n(12),i=n(2),o=n(8),s=TypeError;t.exports=function(t,e){var n,u;if(\"string\"===e&&i(n=t.toString)&&!o(u=r(n,t)))return u;if(i(n=t.valueOf)&&!o(u=r(n,t)))return u;if(\"string\"!==e&&i(n=t.toString)&&!o(u=r(n,t)))return u;throw s(\"Can't convert object to primitive value\")}},function(t,e,n){var r=n(17),i=n(1),o=n(67),s=n(108),u=n(6),a=i([].concat);t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(u(t)),n=s.f;return n?a(e,n(t)):e}},function(t,e,n){var r=n(12),i=n(6),o=n(2),s=n(15),u=n(45),a=TypeError;t.exports=function(t,e){var n=t.exec;if(o(n)){var l=r(n,t,e);return null!==l&&i(l),l}if(\"RegExp\"===s(t))return r(u,t,e);throw a(\"RegExp#exec called on incompatible receiver\")}},function(t,e,n){var r=n(12),i=n(7),o=n(44),s=n(69),u=RegExp.prototype;t.exports=function(t){var e=t.flags;return void 0!==e||\"flags\"in u||i(t,\"flags\")||!o(u,t)?e:r(s,t)}},function(t,e,n){var r=n(0),i=n(4),o=i.RegExp,s=r(function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")}),u=s||r(function(){return!o(\"a\",\"y\").sticky}),a=s||r(function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")});t.exports={BROKEN_CARET:a,MISSED_STICKY:u,UNSUPPORTED_Y:s}},function(t,e,n){var r=n(0),i=n(4),o=i.RegExp;t.exports=r(function(){var t=o(\".\",\"s\");return!(t.dotAll&&t.exec(\"\\n\")&&\"s\"===t.flags)})},function(t,e,n){var r=n(0),i=n(4),o=i.RegExp;t.exports=r(function(){var t=o(\"(?<a>b)\",\"g\");return\"b\"!==t.exec(\"b\").groups.a||\"bc\"!==\"b\".replace(t,\"$<a>c\")})},function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},function(t,e,n){var r=n(36).PROPER,i=n(0),o=n(78),s=\"​…᠎\";t.exports=function(t){return i(function(){return!!o[t]()||s[t]()!==s||r&&o[t].name!==t})}},function(t,e,n){var r=n(1);t.exports=r(1..valueOf)},function(t,e,n){var r=n(49),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,e,n){var r=n(4),i=n(2),o=r.WeakMap;t.exports=i(o)&&/native code/.test(String(o))},function(t,e,n){\"use strict\";var r=n(3),i=n(0),o=n(18),s=n(8),u=n(14),a=n(10),l=n(22),c=n(32),f=n(28),p=n(16),h=n(9),d=n(23),v=h(\"isConcatSpreadable\"),g=d>=51||!i(function(){var t=[];return t[v]=!1,t.concat()[0]!==t}),y=p(\"concat\"),b=function(t){if(!s(t))return!1;var e=t[v];return void 0!==e?!!e:o(t)};r({target:\"Array\",proto:!0,arity:1,forced:!g||!y},{concat:function(t){var e,n,r,i,o,s=u(this),p=f(s,0),h=0;for(e=-1,r=arguments.length;e<r;e++)if(o=-1===e?s:arguments[e],b(o))for(i=a(o),l(h+i),n=0;n<i;n++,h++)n in o&&c(p,h,o[n]);else l(h+1),c(p,h++,o);return p.length=h,p}})},function(t,e,n){\"use strict\";var r=n(3),i=n(21).every;r({target:\"Array\",proto:!0,forced:!n(26)(\"every\")},{every:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){\"use strict\";var r=n(3),i=n(21).filter;r({target:\"Array\",proto:!0,forced:!n(16)(\"filter\")},{filter:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){\"use strict\";var r=n(3),i=n(37),o=n(57).indexOf,s=n(26),u=i([].indexOf),a=!!u&&1/u([1],1,-0)<0,l=s(\"indexOf\");r({target:\"Array\",proto:!0,forced:a||!l},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return a?u(this,t,e)||0:o(this,t,e)}})},function(t,e,n){n(3)({target:\"Array\",stat:!0},{isArray:n(18)})},function(t,e,n){\"use strict\";var r=n(3),i=n(21).map;r({target:\"Array\",proto:!0,forced:!n(16)(\"map\")},{map:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){\"use strict\";var r=n(3),i=n(14),o=n(10),s=n(27),u=n(22),a=n(0),l=a(function(){return 4294967297!==[].push.call({length:4294967296},1)}),c=!function(){try{Object.defineProperty([],\"length\",{writable:!1}).push()}catch(t){return t instanceof TypeError}}();r({target:\"Array\",proto:!0,arity:1,forced:l||c},{push:function(t){var e=i(this),n=o(e),r=arguments.length;u(n+r);for(var a=0;a<r;a++)e[n]=arguments[a],n++;return s(e,n),n}})},function(t,e,n){\"use strict\";var r=n(3),i=n(92).left,o=n(26),s=n(23),u=n(96),a=o(\"reduce\"),l=!u&&s>79&&s<83;r({target:\"Array\",proto:!0,forced:!a||l},{reduce:function(t){var e=arguments.length;return i(this,t,e,e>1?arguments[1]:void 0)}})},function(t,e,n){\"use strict\";var r=n(3),i=n(14),o=n(48),s=n(49),u=n(10),a=n(27),l=n(22),c=n(28),f=n(32),p=n(58),h=n(16),d=h(\"splice\"),v=Math.max,g=Math.min;r({target:\"Array\",proto:!0,forced:!d},{splice:function(t,e){var n,r,h,d,y,b,m=i(this),x=u(m),_=o(t,x),O=arguments.length;for(0===O?n=r=0:1===O?(n=0,r=x-_):(n=O-2,r=g(v(s(e),0),x-_)),l(x+n-r),h=c(m,r),d=0;d<r;d++)(y=_+d)in m&&f(h,d,m[y]);if(h.length=r,n<r){for(d=_;d<x-r;d++)y=d+r,b=d+n,y in m?m[b]=m[y]:p(m,b);for(d=x;d>x-r+n;d--)p(m,d-1)}else if(n>r)for(d=x-r;d>_;d--)y=d+r-1,b=d+n-1,y in m?m[b]=m[y]:p(m,b);for(d=0;d<n;d++)m[d+_]=arguments[d+2];return a(m,x-r+n),h}})},function(t,e,n){\"use strict\";var r=n(3),i=n(14),o=n(10),s=n(27),u=n(58),a=n(22),l=1!==[].unshift(0),c=!function(){try{Object.defineProperty([],\"length\",{writable:!1}).unshift()}catch(t){return t instanceof TypeError}}();r({target:\"Array\",proto:!0,arity:1,forced:l||c},{unshift:function(t){var e=i(this),n=o(e),r=arguments.length;if(r){a(n+r);for(var l=n;l--;){var c=l+r;l in e?e[c]=e[l]:u(e,c)}for(var f=0;f<r;f++)e[f]=arguments[f]}return s(e,n+r)}})},function(t,e,n){\"use strict\";var r=n(3),i=n(71).trim;r({target:\"String\",proto:!0,forced:n(121)(\"trim\")},{trim:function(){return i(this)}})},function(t,e){},function(t,e){t.exports=function(t,e,n,r,i,o){var s,u=t=t||{},a=typeof t.default;\"object\"!==a&&\"function\"!==a||(s=t,u=t.default);var l=\"function\"==typeof u?u.options:u;e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),i&&(l._scopeId=i);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=c):r&&(c=r),c){var f=l.functional,p=f?l.render:l.beforeCreate;f?(l._injectStyles=c,l.render=function(t,e){return c.call(e),p(t,e)}):l.beforeCreate=p?[].concat(p,c):[c]}return{esModule:s,exports:u,options:l}}},function(t,e,n){\"use strict\";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"multiselect\",class:{\"multiselect--active\":t.isOpen,\"multiselect--disabled\":t.disabled,\"multiselect--above\":t.isAbove,\"multiselect--has-options-group\":t.hasOptionGroup},attrs:{tabindex:t.searchable?-1:t.tabindex,role:\"combobox\",\"aria-owns\":\"listbox-\"+t.id},on:{focus:function(e){return t.activate()},blur:function(e){!t.searchable&&t.deactivate()},keydown:[function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"down\",40,e.key,[\"Down\",\"ArrowDown\"])?null:e.target!==e.currentTarget?null:(e.preventDefault(),t.pointerForward())},function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"up\",38,e.key,[\"Up\",\"ArrowUp\"])?null:e.target!==e.currentTarget?null:(e.preventDefault(),t.pointerBackward())}],keypress:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")&&t._k(e.keyCode,\"tab\",9,e.key,\"Tab\")?null:(e.stopPropagation(),e.target!==e.currentTarget?null:t.addPointerElement(e))},keyup:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"esc\",27,e.key,[\"Esc\",\"Escape\"])?null:t.deactivate()}}},[t._t(\"caret\",function(){return[n(\"div\",{staticClass:\"multiselect__select\",on:{mousedown:function(e){return e.preventDefault(),e.stopPropagation(),t.toggle()}}})]},{toggle:t.toggle}),t._v(\" \"),t._t(\"clear\",null,{search:t.search}),t._v(\" \"),n(\"div\",{ref:\"tags\",staticClass:\"multiselect__tags\"},[t._t(\"selection\",function(){return[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.visibleValues.length>0,expression:\"visibleValues.length > 0\"}],staticClass:\"multiselect__tags-wrap\"},[t._l(t.visibleValues,function(e,r){return[t._t(\"tag\",function(){return[n(\"span\",{key:r,staticClass:\"multiselect__tag\"},[n(\"span\",{domProps:{textContent:t._s(t.getOptionLabel(e))}}),t._v(\" \"),n(\"i\",{staticClass:\"multiselect__tag-icon\",attrs:{tabindex:\"1\"},on:{keypress:function(n){return!n.type.indexOf(\"key\")&&t._k(n.keyCode,\"enter\",13,n.key,\"Enter\")?null:(n.preventDefault(),t.removeElement(e))},mousedown:function(n){return n.preventDefault(),t.removeElement(e)}}})])]},{option:e,search:t.search,remove:t.removeElement})]})],2),t._v(\" \"),t.internalValue&&t.internalValue.length>t.limit?[t._t(\"limit\",function(){return[n(\"strong\",{staticClass:\"multiselect__strong\",domProps:{textContent:t._s(t.limitText(t.internalValue.length-t.limit))}})]})]:t._e()]},{search:t.search,remove:t.removeElement,values:t.visibleValues,isOpen:t.isOpen}),t._v(\" \"),n(\"transition\",{attrs:{name:\"multiselect__loading\"}},[t._t(\"loading\",function(){return[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.loading,expression:\"loading\"}],staticClass:\"multiselect__spinner\"})]})],2),t._v(\" \"),t.searchable?n(\"input\",{ref:\"search\",staticClass:\"multiselect__input\",style:t.inputStyle,attrs:{name:t.name,id:t.id,type:\"text\",autocomplete:\"off\",spellcheck:\"false\",placeholder:t.placeholder,disabled:t.disabled,tabindex:t.tabindex,\"aria-controls\":\"listbox-\"+t.id},domProps:{value:t.search},on:{input:function(e){return t.updateSearch(e.target.value)},focus:function(e){return e.preventDefault(),t.activate()},blur:function(e){return e.preventDefault(),t.deactivate()},keyup:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"esc\",27,e.key,[\"Esc\",\"Escape\"])?null:t.deactivate()},keydown:[function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"down\",40,e.key,[\"Down\",\"ArrowDown\"])?null:(e.preventDefault(),t.pointerForward())},function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"up\",38,e.key,[\"Up\",\"ArrowUp\"])?null:(e.preventDefault(),t.pointerBackward())},function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"delete\",[8,46],e.key,[\"Backspace\",\"Delete\",\"Del\"])?null:(e.stopPropagation(),t.removeLastElement())}],keypress:function(e){return!e.type.indexOf(\"key\")&&t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")?null:(e.preventDefault(),e.stopPropagation(),e.target!==e.currentTarget?null:t.addPointerElement(e))}}}):t._e(),t._v(\" \"),t.isSingleLabelVisible?n(\"span\",{staticClass:\"multiselect__single\",on:{mousedown:function(e){return e.preventDefault(),t.toggle.apply(null,arguments)}}},[t._t(\"singleLabel\",function(){return[[t._v(t._s(t.currentOptionLabel))]]},{option:t.singleValue})],2):t._e(),t._v(\" \"),t.isPlaceholderVisible?n(\"span\",{staticClass:\"multiselect__placeholder\",on:{mousedown:function(e){return e.preventDefault(),t.toggle.apply(null,arguments)}}},[t._t(\"placeholder\",function(){return[t._v(\"\\n \"+t._s(t.placeholder)+\"\\n \")]})],2):t._e()],2),t._v(\" \"),n(\"transition\",{attrs:{name:\"multiselect\"}},[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.isOpen,expression:\"isOpen\"}],ref:\"list\",staticClass:\"multiselect__content-wrapper\",style:{maxHeight:t.optimizedHeight+\"px\"},attrs:{tabindex:\"-1\"},on:{focus:t.activate,mousedown:function(t){t.preventDefault()}}},[n(\"ul\",{staticClass:\"multiselect__content\",style:t.contentStyle,attrs:{role:\"listbox\",id:\"listbox-\"+t.id}},[t._t(\"beforeList\"),t._v(\" \"),t.multiple&&t.max===t.internalValue.length?n(\"li\",[n(\"span\",{staticClass:\"multiselect__option\"},[t._t(\"maxElements\",function(){return[t._v(\"Maximum of \"+t._s(t.max)+\" options selected. First remove a selected option to select another.\")]})],2)]):t._e(),t._v(\" \"),!t.max||t.internalValue.length<t.max?t._l(t.filteredOptions,function(e,r){return n(\"li\",{key:r,staticClass:\"multiselect__element\",attrs:{id:t.id+\"-\"+r,role:e&&(e.$isLabel||e.$isDisabled)?null:\"option\"}},[e&&(e.$isLabel||e.$isDisabled)?t._e():n(\"span\",{staticClass:\"multiselect__option\",class:t.optionHighlight(r,e),attrs:{\"data-select\":e&&e.isTag?t.tagPlaceholder:t.selectLabelText,\"data-selected\":t.selectedLabelText,\"data-deselect\":t.deselectLabelText},on:{click:function(n){return n.stopPropagation(),t.select(e)},mouseenter:function(e){return e.target!==e.currentTarget?null:t.pointerSet(r)}}},[t._t(\"option\",function(){return[n(\"span\",[t._v(t._s(t.getOptionLabel(e)))])]},{option:e,search:t.search,index:r})],2),t._v(\" \"),e&&(e.$isLabel||e.$isDisabled)?n(\"span\",{staticClass:\"multiselect__option\",class:t.groupHighlight(r,e),attrs:{\"data-select\":t.groupSelect&&t.selectGroupLabelText,\"data-deselect\":t.groupSelect&&t.deselectGroupLabelText},on:{mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.groupSelect&&t.pointerSet(r)},mousedown:function(n){return n.preventDefault(),t.selectGroup(e)}}},[t._t(\"option\",function(){return[n(\"span\",[t._v(t._s(t.getOptionLabel(e)))])]},{option:e,search:t.search,index:r})],2):t._e()])}):t._e(),t._v(\" \"),n(\"li\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showNoResults&&0===t.filteredOptions.length&&t.search&&!t.loading,expression:\"showNoResults && (filteredOptions.length === 0 && search && !loading)\"}]},[n(\"span\",{staticClass:\"multiselect__option\"},[t._t(\"noResult\",function(){return[t._v(\"No elements found. Consider changing the search query.\")]},{search:t.search})],2)]),t._v(\" \"),n(\"li\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showNoOptions&&(0===t.options.length||!0===t.hasOptionGroup&&0===t.filteredOptions.length)&&!t.search&&!t.loading,expression:\"showNoOptions && ((options.length === 0 || (hasOptionGroup === true && filteredOptions.length === 0)) && !search && !loading)\"}]},[n(\"span\",{staticClass:\"multiselect__option\"},[t._t(\"noOptions\",function(){return[t._v(\"List is empty.\")]})],2)]),t._v(\" \"),t._t(\"afterList\")],2)])])],2)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e){var n;n=function(){return this}();try{n=n||Function(\"return this\")()||(0,eval)(\"this\")}catch(t){\"object\"==typeof window&&(n=window)}t.exports=n}])});","'use strict';\n\nvar Axios = require('axios');\nvar auth = require('@nextcloud/auth');\nvar router = require('@nextcloud/router');\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar RETRY_KEY = Symbol('csrf-retry');\nvar onError$2 = function (axios) { return function (error) { return __awaiter(void 0, void 0, void 0, function () {\n var config, response, request, responseURL, status, token;\n var _a;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n config = error.config, response = error.response, request = error.request;\n responseURL = request === null || request === void 0 ? void 0 : request.responseURL;\n status = response === null || response === void 0 ? void 0 : response.status;\n if (!(status === 412\n && ((_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.message) === 'CSRF check failed'\n && config[RETRY_KEY] === undefined)) return [3 /*break*/, 2];\n console.warn(\"Request to \".concat(responseURL, \" failed because of a CSRF mismatch. Fetching a new token\"));\n return [4 /*yield*/, axios.get(router.generateUrl('/csrftoken'))];\n case 1:\n token = (_c.sent()).data.token;\n console.debug(\"New request token \".concat(token, \" fetched\"));\n axios.defaults.headers.requesttoken = token;\n return [2 /*return*/, axios(__assign(__assign({}, config), (_a = { headers: __assign(__assign({}, config.headers), { requesttoken: token }) }, _a[RETRY_KEY] = true, _a)))];\n case 2: return [2 /*return*/, Promise.reject(error)];\n }\n });\n}); }; };\n\nvar RETRY_DELAY_KEY = Symbol('retryDelay');\nvar onError$1 = function (axios) { return function (error) { return __awaiter(void 0, void 0, void 0, function () {\n var config, response, request, responseURL, status, headers, retryDelay_1;\n var _a;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n config = error.config, response = error.response, request = error.request;\n responseURL = request === null || request === void 0 ? void 0 : request.responseURL;\n status = response === null || response === void 0 ? void 0 : response.status;\n headers = response === null || response === void 0 ? void 0 : response.headers;\n if (!(status === 503\n && headers['x-nextcloud-maintenance-mode'] === '1'\n && config.retryIfMaintenanceMode\n && (!config[RETRY_DELAY_KEY] || config[RETRY_DELAY_KEY] <= 32))) return [3 /*break*/, 2];\n retryDelay_1 = ((_b = config[RETRY_DELAY_KEY]) !== null && _b !== void 0 ? _b : 1) * 2;\n console.warn(\"Request to \".concat(responseURL, \" failed because of maintenance mode. Retrying in \").concat(retryDelay_1, \"s\"));\n return [4 /*yield*/, new Promise(function (resolve) {\n setTimeout(resolve, retryDelay_1 * 1000);\n })];\n case 1:\n _c.sent();\n return [2 /*return*/, axios(__assign(__assign({}, config), (_a = {}, _a[RETRY_DELAY_KEY] = retryDelay_1, _a)))];\n case 2: return [2 /*return*/, Promise.reject(error)];\n }\n });\n}); }; };\n\nvar onError = function (error) { return __awaiter(void 0, void 0, void 0, function () {\n var config, response, request, responseURL, status;\n var _a;\n return __generator(this, function (_b) {\n config = error.config, response = error.response, request = error.request;\n responseURL = request === null || request === void 0 ? void 0 : request.responseURL;\n status = response === null || response === void 0 ? void 0 : response.status;\n if (status === 401\n && ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.message) === 'Current user is not logged in'\n && config.reloadExpiredSession\n && (window === null || window === void 0 ? void 0 : window.location)) {\n console.error(\"Request to \".concat(responseURL, \" failed because the user session expired. Reloading the page \\u2026\"));\n window.location.reload();\n }\n return [2 /*return*/, Promise.reject(error)];\n });\n}); };\n\nvar _a;\nvar client = Axios.create({\n headers: {\n requesttoken: (_a = auth.getRequestToken()) !== null && _a !== void 0 ? _a : '',\n },\n});\nvar cancelableClient = Object.assign(client, {\n CancelToken: Axios.CancelToken,\n isCancel: Axios.isCancel,\n});\ncancelableClient.interceptors.response.use(function (r) { return r; }, onError$2(cancelableClient));\ncancelableClient.interceptors.response.use(function (r) { return r; }, onError$1(cancelableClient));\ncancelableClient.interceptors.response.use(function (r) { return r; }, onError);\nauth.onRequestTokenUpdate(function (token) { client.defaults.headers.requesttoken = token; });\n\nmodule.exports = cancelableClient;\n//# sourceMappingURL=index.cjs.map\n","'use strict';\n\nvar vueDemi = require('vue-demi');\nvar core = require('@vueuse/core');\nvar shared = require('@vueuse/shared');\n\nconst OnClickOutside = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"OnClickOutside\",\n props: [\"as\", \"options\"],\n emits: [\"trigger\"],\n setup(props, { slots, emit }) {\n const target = vueDemi.ref();\n core.onClickOutside(target, (e) => {\n emit(\"trigger\", e);\n }, props.options);\n return () => {\n if (slots.default)\n return vueDemi.h(props.as || \"div\", { ref: target }, slots.default());\n };\n }\n});\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = shared.toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = shared.isClient ? window : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return shared.noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = vueDemi.watch(\n () => [unrefElement(target), shared.toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = shared.isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n shared.tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return;\n if (shared.isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", shared.noop));\n window.document.documentElement.addEventListener(\"click\", shared.noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n if (el)\n shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nconst vOnClickOutside = {\n [shared.directiveHooks.mounted](el, binding) {\n const capture = !binding.modifiers.bubble;\n if (typeof binding.value === \"function\") {\n el.__onClickOutside_stop = onClickOutside(el, binding.value, { capture });\n } else {\n const [handler, options] = binding.value;\n el.__onClickOutside_stop = onClickOutside(el, handler, Object.assign({ capture }, options));\n }\n },\n [shared.directiveHooks.unmounted](el) {\n el.__onClickOutside_stop();\n }\n};\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && shared.toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\n\nconst vOnKeyStroke = {\n [shared.directiveHooks.mounted](el, binding) {\n var _a, _b;\n const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(\",\")) != null ? _b : true;\n if (typeof binding.value === \"function\") {\n onKeyStroke(keys, binding.value, {\n target: el\n });\n } else {\n const [handler, options] = binding.value;\n onKeyStroke(keys, handler, {\n target: el,\n ...options\n });\n }\n }\n};\n\nconst DEFAULT_DELAY = 500;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = vueDemi.computed(() => unrefElement(target));\n let timeout;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n timeout = setTimeout(\n () => handler(ev),\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions);\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], clear, listenerOptions);\n}\n\nconst OnLongPress = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"OnLongPress\",\n props: [\"as\", \"options\"],\n emits: [\"trigger\"],\n setup(props, { slots, emit }) {\n const target = vueDemi.ref();\n onLongPress(\n target,\n (e) => {\n emit(\"trigger\", e);\n },\n props.options\n );\n return () => {\n if (slots.default)\n return vueDemi.h(props.as || \"div\", { ref: target }, slots.default());\n };\n }\n});\n\nconst vOnLongPress = {\n [shared.directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\")\n onLongPress(el, binding.value, { modifiers: binding.modifiers });\n else\n onLongPress(el, ...binding.value);\n }\n};\n\nconst UseActiveElement = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseActiveElement\",\n setup(props, { slots }) {\n const data = vueDemi.reactive({\n element: core.useActiveElement()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseBattery = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseBattery\",\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useBattery(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseBrowserLocation = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseBrowserLocation\",\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useBrowserLocation());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const data = (shallow ? vueDemi.shallowRef : vueDemi.ref)(defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = shared.toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = shared.pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n }\n update();\n return data;\n function write(v) {\n try {\n if (v == null) {\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n const oldValue = storage.getItem(key);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue: serialized,\n storageArea: storage\n }\n }));\n }\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit !== null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n vueDemi.nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction useMounted() {\n const isMounted = vueDemi.ref(false);\n if (vueDemi.getCurrentInstance()) {\n vueDemi.onMounted(() => {\n isMounted.value = true;\n });\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return vueDemi.computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = vueDemi.ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = vueDemi.watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(shared.toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n shared.tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = vueDemi.computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? shared.toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = vueDemi.computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n const styleString = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n style.appendChild(document.createTextNode(styleString));\n window.document.head.appendChild(style);\n }\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n vueDemi.watch(state, onChanged, { flush: \"post\", immediate: true });\n shared.tryOnMounted(() => onChanged(state.value));\n const auto = vueDemi.computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nconst UseColorMode = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseColorMode\",\n props: [\"selector\", \"attribute\", \"modes\", \"onChanged\", \"storageKey\", \"storage\", \"emitAuto\"],\n setup(props, { slots }) {\n const mode = useColorMode(props);\n const data = vueDemi.reactive({\n mode,\n system: mode.system,\n store: mode.store\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDark = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseDark\",\n props: [\"selector\", \"attribute\", \"valueDark\", \"valueLight\", \"onChanged\", \"storageKey\", \"storage\"],\n setup(props, { slots }) {\n const isDark = core.useDark(props);\n const data = vueDemi.reactive({\n isDark,\n toggleDark: shared.useToggle(isDark)\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDeviceMotion = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseDeviceMotion\",\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useDeviceMotion());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDeviceOrientation = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseDeviceOrientation\",\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useDeviceOrientation());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDevicePixelRatio = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseDevicePixelRatio\",\n setup(props, { slots }) {\n const data = vueDemi.reactive({\n pixelRatio: core.useDevicePixelRatio()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDevicesList = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseDevicesList\",\n props: [\"onUpdated\", \"requestPermissions\", \"constraints\"],\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useDevicesList(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDocumentVisibility = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseDocumentVisibility\",\n setup(props, { slots }) {\n const data = vueDemi.reactive({\n visibility: core.useDocumentVisibility()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDraggable = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseDraggable\",\n props: [\n \"storageKey\",\n \"storageType\",\n \"initialValue\",\n \"exact\",\n \"preventDefault\",\n \"stopPropagation\",\n \"pointerTypes\",\n \"as\",\n \"handle\",\n \"axis\",\n \"onStart\",\n \"onMove\",\n \"onEnd\"\n ],\n setup(props, { slots }) {\n const target = vueDemi.ref();\n const handle = vueDemi.computed(() => {\n var _a;\n return (_a = props.handle) != null ? _a : target.value;\n });\n const storageValue = props.storageKey && core.useStorage(\n props.storageKey,\n shared.toValue(props.initialValue) || { x: 0, y: 0 },\n core.isClient ? props.storageType === \"session\" ? sessionStorage : localStorage : void 0\n );\n const initialValue = storageValue || props.initialValue || { x: 0, y: 0 };\n const onEnd = (position, event) => {\n var _a;\n (_a = props.onEnd) == null ? void 0 : _a.call(props, position, event);\n if (!storageValue)\n return;\n storageValue.value.x = position.x;\n storageValue.value.y = position.y;\n };\n const data = vueDemi.reactive(core.useDraggable(target, {\n ...props,\n handle,\n initialValue,\n onEnd\n }));\n return () => {\n if (slots.default)\n return vueDemi.h(props.as || \"div\", { ref: target, style: `touch-action:none;${data.style}` }, slots.default(data));\n };\n }\n});\n\nconst UseElementBounding = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseElementBounding\",\n props: [\"box\", \"as\"],\n setup(props, { slots }) {\n const target = vueDemi.ref();\n const data = vueDemi.reactive(core.useElementBounding(target));\n return () => {\n if (slots.default)\n return vueDemi.h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = vueDemi.ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nconst vElementHover = {\n [shared.directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\") {\n const isHovered = useElementHover(el);\n vueDemi.watch(isHovered, (v) => binding.value(v));\n }\n }\n};\n\nconst UseElementSize = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseElementSize\",\n props: [\"width\", \"height\", \"box\", \"as\"],\n setup(props, { slots }) {\n const target = vueDemi.ref();\n const data = vueDemi.reactive(core.useElementSize(target, { width: props.width, height: props.height }, { box: props.box }));\n return () => {\n if (slots.default)\n return vueDemi.h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = vueDemi.computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]);\n const stopWatch = vueDemi.watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els)\n _el && observer.observe(_el, observerOptions);\n }\n },\n { immediate: true, flush: \"post\", deep: true }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n shared.tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = vueDemi.ref(initialSize.width);\n const height = vueDemi.ref(initialSize.height);\n useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = Number.parseFloat(styles.width);\n height.value = Number.parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n vueDemi.watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n return {\n width,\n height\n };\n}\n\nconst vElementSize = {\n [shared.directiveHooks.mounted](el, binding) {\n var _a;\n const handler = typeof binding.value === \"function\" ? binding.value : (_a = binding.value) == null ? void 0 : _a[0];\n const options = typeof binding.value === \"function\" ? [] : binding.value.slice(1);\n const { width, height } = useElementSize(el, ...options);\n vueDemi.watch([width, height], ([width2, height2]) => handler({ width: width2, height: height2 }));\n }\n};\n\nconst UseElementVisibility = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseElementVisibility\",\n props: [\"as\"],\n setup(props, { slots }) {\n const target = vueDemi.ref();\n const data = vueDemi.reactive({\n isVisible: core.useElementVisibility(target)\n });\n return () => {\n if (slots.default)\n return vueDemi.h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = vueDemi.computed(() => {\n const _target = shared.toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(shared.notNullish);\n });\n let cleanup = shared.noop;\n const isActive = vueDemi.ref(immediate);\n const stopWatch = isSupported.value ? vueDemi.watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = shared.noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : shared.noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n shared.tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget } = options;\n const elementIsVisible = vueDemi.ref(false);\n useIntersectionObserver(\n element,\n ([{ isIntersecting }]) => {\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold: 0\n }\n );\n return elementIsVisible;\n}\n\nconst vElementVisibility = {\n [shared.directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\") {\n const handler = binding.value;\n const isVisible = useElementVisibility(el);\n vueDemi.watch(isVisible, (v) => handler(v), { immediate: true });\n } else {\n const [handler, options] = binding.value;\n const isVisible = useElementVisibility(el, options);\n vueDemi.watch(isVisible, (v) => handler(v), { immediate: true });\n }\n }\n};\n\nconst UseEyeDropper = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseEyeDropper\",\n props: {\n sRGBHex: String\n },\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useEyeDropper());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseFullscreen = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseFullscreen\",\n props: [\"as\"],\n setup(props, { slots }) {\n const target = vueDemi.ref();\n const data = vueDemi.reactive(core.useFullscreen(target));\n return () => {\n if (slots.default)\n return vueDemi.h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nconst UseGeolocation = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseGeolocation\",\n props: [\"enableHighAccuracy\", \"maximumAge\", \"timeout\", \"navigator\"],\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useGeolocation(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseIdle = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseIdle\",\n props: [\"timeout\", \"events\", \"listenForVisibilityChange\", \"initialState\"],\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useIdle(props.timeout, props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = shared.noop,\n onSuccess = shared.noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? vueDemi.shallowRef(initialState) : vueDemi.ref(initialState);\n const isReady = vueDemi.ref(false);\n const isLoading = vueDemi.ref(false);\n const error = vueDemi.shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await shared.promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n shared.until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(shared.toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n vueDemi.watch(\n () => shared.toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst UseImage = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseImage\",\n props: [\n \"src\",\n \"srcset\",\n \"sizes\",\n \"as\",\n \"alt\",\n \"class\",\n \"loading\",\n \"crossorigin\",\n \"referrerPolicy\"\n ],\n setup(props, { slots }) {\n const data = vueDemi.reactive(useImage(props));\n return () => {\n if (data.isLoading && slots.loading)\n return slots.loading(data);\n else if (data.error && slots.error)\n return slots.error(data.error);\n if (slots.default)\n return slots.default(data);\n return vueDemi.h(props.as || \"img\", props);\n };\n }\n});\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = shared.noop,\n onScroll = shared.noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow\n } = options;\n const internalX = vueDemi.ref(0);\n const internalY = vueDemi.ref(0);\n const x = vueDemi.computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = vueDemi.computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n if (!window)\n return;\n const _element = shared.toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = shared.toValue(_y)) != null ? _a : y.value,\n left: (_b = shared.toValue(_x)) != null ? _b : x.value,\n behavior: shared.toValue(behavior)\n });\n }\n const isScrolling = vueDemi.ref(false);\n const arrivedState = vueDemi.reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = vueDemi.reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = shared.useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = target.document ? target.document.documentElement : (_a = target.documentElement) != null ? _a : target;\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? shared.useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = shared.toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100\n } = options;\n const state = vueDemi.reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = vueDemi.ref();\n const isLoading = vueDemi.computed(() => !!promise.value);\n const observedElement = vueDemi.computed(() => {\n return resolveElement(shared.toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value)\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n vueDemi.nextTick(() => checkAndLoad());\n });\n }\n }\n }\n vueDemi.watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading\n };\n}\n\nconst vInfiniteScroll = {\n [shared.directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\")\n useInfiniteScroll(el, binding.value);\n else\n useInfiniteScroll(el, ...binding.value);\n }\n};\n\nconst vIntersectionObserver = {\n [shared.directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\")\n useIntersectionObserver(el, binding.value);\n else\n useIntersectionObserver(el, ...binding.value);\n }\n};\n\nconst UseMouse = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseMouse\",\n props: [\"touch\", \"resetOnTouchEnds\", \"initialValue\"],\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useMouse(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseMouseInElement = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseMouseElement\",\n props: [\"handleOutside\", \"as\"],\n setup(props, { slots }) {\n const target = vueDemi.ref();\n const data = vueDemi.reactive(core.useMouseInElement(target, props));\n return () => {\n if (slots.default)\n return vueDemi.h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nconst UseMousePressed = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseMousePressed\",\n props: [\"touch\", \"initialValue\", \"as\"],\n setup(props, { slots }) {\n const target = vueDemi.ref();\n const data = vueDemi.reactive(core.useMousePressed({ ...props, target }));\n return () => {\n if (slots.default)\n return vueDemi.h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nconst UseNetwork = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseNetwork\",\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useNetwork());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseNow = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseNow\",\n props: [\"interval\"],\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useNow({ ...props, controls: true }));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseObjectUrl = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseObjectUrl\",\n props: [\n \"object\"\n ],\n setup(props, { slots }) {\n const object = shared.toRef(props, \"object\");\n const url = core.useObjectUrl(object);\n return () => {\n if (slots.default && url.value)\n return slots.default(url);\n };\n }\n});\n\nconst UseOffsetPagination = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseOffsetPagination\",\n props: [\n \"total\",\n \"page\",\n \"pageSize\",\n \"onPageChange\",\n \"onPageSizeChange\",\n \"onPageCountChange\"\n ],\n emits: [\n \"page-change\",\n \"page-size-change\",\n \"page-count-change\"\n ],\n setup(props, { slots, emit }) {\n const data = vueDemi.reactive(core.useOffsetPagination({\n ...props,\n onPageChange(...args) {\n var _a;\n (_a = props.onPageChange) == null ? void 0 : _a.call(props, ...args);\n emit(\"page-change\", ...args);\n },\n onPageSizeChange(...args) {\n var _a;\n (_a = props.onPageSizeChange) == null ? void 0 : _a.call(props, ...args);\n emit(\"page-size-change\", ...args);\n },\n onPageCountChange(...args) {\n var _a;\n (_a = props.onPageCountChange) == null ? void 0 : _a.call(props, ...args);\n emit(\"page-count-change\", ...args);\n }\n }));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseOnline = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseOnline\",\n setup(props, { slots }) {\n const data = vueDemi.reactive({\n isOnline: core.useOnline()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePageLeave = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UsePageLeave\",\n setup(props, { slots }) {\n const data = vueDemi.reactive({\n isLeft: core.usePageLeave()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePointer = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UsePointer\",\n props: [\n \"pointerTypes\",\n \"initialValue\",\n \"target\"\n ],\n setup(props, { slots }) {\n const el = vueDemi.ref(null);\n const data = vueDemi.reactive(core.usePointer({\n ...props,\n target: props.target === \"self\" ? el : defaultWindow\n }));\n return () => {\n if (slots.default)\n return slots.default(data, { ref: el });\n };\n }\n});\n\nconst UsePointerLock = /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UsePointerLock\",\n props: [\"as\"],\n setup(props, { slots }) {\n const target = vueDemi.ref();\n const data = vueDemi.reactive(core.usePointerLock(target));\n return () => {\n if (slots.default)\n return vueDemi.h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nconst UsePreferredColorScheme = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UsePreferredColorScheme\",\n setup(props, { slots }) {\n const data = vueDemi.reactive({\n colorScheme: core.usePreferredColorScheme()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePreferredContrast = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UsePreferredContrast\",\n setup(props, { slots }) {\n const data = vueDemi.reactive({\n contrast: core.usePreferredContrast()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePreferredDark = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UsePreferredDark\",\n setup(props, { slots }) {\n const data = vueDemi.reactive({\n prefersDark: core.usePreferredDark()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePreferredLanguages = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UsePreferredLanguages\",\n setup(props, { slots }) {\n const data = vueDemi.reactive({\n languages: core.usePreferredLanguages()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePreferredReducedMotion = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UsePreferredReducedMotion\",\n setup(props, { slots }) {\n const data = vueDemi.reactive({\n motion: core.usePreferredReducedMotion()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = vueDemi.watch(\n () => unrefElement(target),\n (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n },\n { immediate: true }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n shared.tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n const variable = vueDemi.ref(initialValue);\n const elRef = vueDemi.computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = shared.toValue(prop);\n const el = shared.toValue(elRef);\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n vueDemi.watch(\n [elRef, () => shared.toValue(prop)],\n updateCssVar,\n { immediate: true }\n );\n vueDemi.watch(\n variable,\n (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(shared.toValue(prop), val);\n }\n );\n return variable;\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = vueDemi.ref(\"\");\n const right = vueDemi.ref(\"\");\n const bottom = vueDemi.ref(\"\");\n const left = vueDemi.ref(\"\");\n if (shared.isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", shared.useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nconst UseScreenSafeArea = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseScreenSafeArea\",\n props: {\n top: Boolean,\n right: Boolean,\n bottom: Boolean,\n left: Boolean\n },\n setup(props, { slots }) {\n const {\n top,\n right,\n bottom,\n left\n } = useScreenSafeArea();\n return () => {\n if (slots.default) {\n return vueDemi.h(\"div\", {\n style: {\n paddingTop: props.top ? top.value : \"\",\n paddingRight: props.right ? right.value : \"\",\n paddingBottom: props.bottom ? bottom.value : \"\",\n paddingLeft: props.left ? left.value : \"\",\n boxSizing: \"border-box\",\n maxHeight: \"100vh\",\n maxWidth: \"100vw\",\n overflow: \"auto\"\n }\n }, slots.default());\n }\n };\n }\n});\n\nconst vScroll = {\n [shared.directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\") {\n const handler = binding.value;\n const state = useScroll(el, {\n onScroll() {\n handler(state);\n },\n onStop() {\n handler(state);\n }\n });\n } else {\n const [handler, options] = binding.value;\n const state = useScroll(el, {\n ...options,\n onScroll(e) {\n var _a;\n (_a = options.onScroll) == null ? void 0 : _a.call(options, e);\n handler(state);\n },\n onStop(e) {\n var _a;\n (_a = options.onStop) == null ? void 0 : _a.call(options, e);\n handler(state);\n }\n });\n }\n }\n};\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nfunction useScrollLock(element, initialState = false) {\n const isLocked = vueDemi.ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n vueDemi.watch(shared.toRef(element), (el) => {\n const target = resolveElement(shared.toValue(el));\n if (target) {\n const ele = target;\n initialOverflow = ele.style.overflow;\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(shared.toValue(element));\n if (!el || isLocked.value)\n return;\n if (shared.isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const el = resolveElement(shared.toValue(element));\n if (!el || !isLocked.value)\n return;\n shared.isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n el.style.overflow = initialOverflow;\n isLocked.value = false;\n };\n shared.tryOnScopeDispose(unlock);\n return vueDemi.computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction onScrollLock() {\n let isMounted = false;\n const state = vueDemi.ref(false);\n return (el, binding) => {\n state.value = binding.value;\n if (isMounted)\n return;\n isMounted = true;\n const isLocked = useScrollLock(el, binding.value);\n vueDemi.watch(state, (v) => isLocked.value = v);\n };\n}\nconst vScrollLock = onScrollLock();\n\nconst UseTimeAgo = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseTimeAgo\",\n props: [\"time\", \"updateInterval\", \"max\", \"fullDateFormatter\", \"messages\", \"showSecond\"],\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useTimeAgo(() => props.time, { ...props, controls: true }));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseTimestamp = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseTimestamp\",\n props: [\"immediate\", \"interval\", \"offset\"],\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useTimestamp({ ...props, controls: true }));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseVirtualList = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseVirtualList\",\n props: [\n \"list\",\n \"options\",\n \"height\"\n ],\n setup(props, { slots, expose }) {\n const { list: listRef } = vueDemi.toRefs(props);\n const { list, containerProps, wrapperProps, scrollTo } = core.useVirtualList(listRef, props.options);\n expose({ scrollTo });\n typeof containerProps.style === \"object\" && !Array.isArray(containerProps.style) && (containerProps.style.height = props.height || \"300px\");\n return () => vueDemi.h(\"div\", { ...containerProps }, [\n vueDemi.h(\"div\", { ...wrapperProps.value }, list.value.map((item) => vueDemi.h(\"div\", { style: { overFlow: \"hidden\", height: item.height } }, slots.default ? slots.default(item) : \"Please set content!\")))\n ]);\n }\n});\n\nconst UseWindowFocus = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseWindowFocus\",\n setup(props, { slots }) {\n const data = vueDemi.reactive({\n focused: core.useWindowFocus()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseWindowSize = /* @__PURE__ */ /* #__PURE__ */ vueDemi.defineComponent({\n name: \"UseWindowSize\",\n props: [\"initialWidth\", \"initialHeight\"],\n setup(props, { slots }) {\n const data = vueDemi.reactive(core.useWindowSize(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nexports.OnClickOutside = OnClickOutside;\nexports.OnLongPress = OnLongPress;\nexports.UseActiveElement = UseActiveElement;\nexports.UseBattery = UseBattery;\nexports.UseBrowserLocation = UseBrowserLocation;\nexports.UseColorMode = UseColorMode;\nexports.UseDark = UseDark;\nexports.UseDeviceMotion = UseDeviceMotion;\nexports.UseDeviceOrientation = UseDeviceOrientation;\nexports.UseDevicePixelRatio = UseDevicePixelRatio;\nexports.UseDevicesList = UseDevicesList;\nexports.UseDocumentVisibility = UseDocumentVisibility;\nexports.UseDraggable = UseDraggable;\nexports.UseElementBounding = UseElementBounding;\nexports.UseElementSize = UseElementSize;\nexports.UseElementVisibility = UseElementVisibility;\nexports.UseEyeDropper = UseEyeDropper;\nexports.UseFullscreen = UseFullscreen;\nexports.UseGeolocation = UseGeolocation;\nexports.UseIdle = UseIdle;\nexports.UseImage = UseImage;\nexports.UseMouse = UseMouse;\nexports.UseMouseInElement = UseMouseInElement;\nexports.UseMousePressed = UseMousePressed;\nexports.UseNetwork = UseNetwork;\nexports.UseNow = UseNow;\nexports.UseObjectUrl = UseObjectUrl;\nexports.UseOffsetPagination = UseOffsetPagination;\nexports.UseOnline = UseOnline;\nexports.UsePageLeave = UsePageLeave;\nexports.UsePointer = UsePointer;\nexports.UsePointerLock = UsePointerLock;\nexports.UsePreferredColorScheme = UsePreferredColorScheme;\nexports.UsePreferredContrast = UsePreferredContrast;\nexports.UsePreferredDark = UsePreferredDark;\nexports.UsePreferredLanguages = UsePreferredLanguages;\nexports.UsePreferredReducedMotion = UsePreferredReducedMotion;\nexports.UseScreenSafeArea = UseScreenSafeArea;\nexports.UseTimeAgo = UseTimeAgo;\nexports.UseTimestamp = UseTimestamp;\nexports.UseVirtualList = UseVirtualList;\nexports.UseWindowFocus = UseWindowFocus;\nexports.UseWindowSize = UseWindowSize;\nexports.VOnClickOutside = vOnClickOutside;\nexports.VOnLongPress = vOnLongPress;\nexports.vElementHover = vElementHover;\nexports.vElementSize = vElementSize;\nexports.vElementVisibility = vElementVisibility;\nexports.vInfiniteScroll = vInfiniteScroll;\nexports.vIntersectionObserver = vIntersectionObserver;\nexports.vOnClickOutside = vOnClickOutside;\nexports.vOnKeyStroke = vOnKeyStroke;\nexports.vOnLongPress = vOnLongPress;\nexports.vScroll = vScroll;\nexports.vScrollLock = vScrollLock;\n","var VueModule = require('vue')\n\n// get the real Vue https://github.com/vueuse/vue-demi/issues/192\nvar Vue = VueModule.default || VueModule\n\nexports.Vue = Vue\nexports.Vue2 = Vue\nexports.isVue2 = true\nexports.isVue3 = false\nexports.install = function () {}\nexports.warn = Vue.util.warn\n\n// createApp polyfill\nexports.createApp = function (rootComponent, rootProps) {\n var vm\n var provide = {}\n var app = {\n config: Vue.config,\n use: Vue.use.bind(Vue),\n mixin: Vue.mixin.bind(Vue),\n component: Vue.component.bind(Vue),\n provide: function (key, value) {\n provide[key] = value\n return this\n },\n directive: function (name, dir) {\n if (dir) {\n Vue.directive(name, dir)\n return app\n } else {\n return Vue.directive(name)\n }\n },\n mount: function (el, hydrating) {\n if (!vm) {\n vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))\n vm.$mount(el, hydrating)\n return vm\n } else {\n return vm\n }\n },\n unmount: function () {\n if (vm) {\n vm.$destroy()\n vm = undefined\n }\n },\n }\n return app\n}\n\nObject.keys(VueModule).forEach(function (key) {\n exports[key] = VueModule[key]\n})\n\n// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()\nexports.hasInjectionContext = () => !!VueModule.getCurrentInstance()\n","'use strict';\n\nvar shared = require('@vueuse/shared');\nvar vueDemi = require('vue-demi');\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (vueDemi.isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = shared.noop\n } = options;\n const started = vueDemi.ref(!lazy);\n const current = shallow ? vueDemi.shallowRef(initialState) : vueDemi.ref(initialState);\n let counter = 0;\n vueDemi.watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return vueDemi.computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = vueDemi.inject(key);\n if (defaultSource)\n source = vueDemi.inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = vueDemi.inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return vueDemi.computed((ctx) => options(source, ctx));\n } else {\n return vueDemi.computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!vueDemi.isVue3 && !vueDemi.version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = vueDemi.shallowRef();\n const define = /* #__PURE__ */ vueDemi.defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ vueDemi.defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return shared.makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[shared.camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!vueDemi.isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = vueDemi.ref([]);\n function create(...args) {\n const props = vueDemi.shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ vueDemi.defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return vueDemi.h(vueDemi.Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => vueDemi.h(vueDemi.TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => shared.toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = shared.toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = shared.isClient ? window : void 0;\nconst defaultDocument = shared.isClient ? window.document : void 0;\nconst defaultNavigator = shared.isClient ? window.navigator : void 0;\nconst defaultLocation = shared.isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return shared.noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = vueDemi.watch(\n () => [unrefElement(target), shared.toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = shared.isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n shared.tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return;\n if (shared.isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", shared.noop));\n window.document.documentElement.addEventListener(\"click\", shared.noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n if (el)\n shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && shared.toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = vueDemi.computed(() => unrefElement(target));\n let timeout;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n timeout = setTimeout(\n () => handler(ev),\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions);\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], clear, listenerOptions);\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = vueDemi.getCurrentInstance();\n let _trigger = () => {\n };\n const element = vueDemi.customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n shared.tryOnMounted(_trigger);\n vueDemi.onUpdated(_trigger);\n return element;\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = shared.computedWithControl(\n () => null,\n () => getDeepActiveElement()\n );\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n activeElement.trigger();\n }, true);\n useEventListener(window, \"focus\", activeElement.trigger, true);\n }\n return activeElement;\n}\n\nfunction useMounted() {\n const isMounted = vueDemi.ref(false);\n if (vueDemi.getCurrentInstance()) {\n vueDemi.onMounted(() => {\n isMounted.value = true;\n });\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return vueDemi.computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = vueDemi.ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n const delta = timestamp - (previousFrameTimestamp || timestamp);\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n fn({ delta, timestamp });\n previousFrameTimestamp = timestamp;\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n shared.tryOnScopeDispose(pause);\n return {\n isActive: vueDemi.readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (shared.isObject(options)) {\n config = options;\n animateOptions = shared.objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = vueDemi.shallowRef(void 0);\n const store = vueDemi.shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = vueDemi.computed(() => store.pending);\n const playState = vueDemi.computed(() => store.playState);\n const replaceState = vueDemi.computed(() => store.replaceState);\n const startTime = vueDemi.computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = vueDemi.computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = vueDemi.computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = vueDemi.computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n !animate.value && update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n vueDemi.watch(() => unrefElement(target), (el) => {\n el && update();\n });\n vueDemi.watch(() => keyframes, (value) => {\n !animate.value && update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n shared.toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n shared.tryOnMounted(() => {\n vueDemi.nextTick(() => update(true));\n });\n shared.tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n animate.value = el.animate(shared.toValue(keyframes), animateOptions);\n if (commitStyles)\n animate.value.commitStyles();\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = shared.noop,\n onFinished = shared.noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = vueDemi.reactive(initialResult);\n const activeIndex = vueDemi.ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = shared.noop,\n onSuccess = shared.noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? vueDemi.shallowRef(initialState) : vueDemi.ref(initialState);\n const isReady = vueDemi.ref(false);\n const isLoading = vueDemi.ref(false);\n const error = vueDemi.shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await shared.promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n shared.until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = vueDemi.ref(\"\");\n const promise = vueDemi.ref();\n function execute() {\n if (!shared.isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = shared.toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (vueDemi.isRef(target) || typeof target === \"function\")\n vueDemi.watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator);\n const charging = vueDemi.ref(false);\n const chargingTime = vueDemi.ref(0);\n const dischargingTime = vueDemi.ref(0);\n const level = vueDemi.ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = vueDemi.shallowRef(void 0);\n const error = vueDemi.shallowRef(null);\n vueDemi.watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = vueDemi.ref();\n const isConnected = vueDemi.computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n shared.tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n shared.tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = vueDemi.ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = vueDemi.watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(shared.toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n shared.tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetify = {\n xs: 600,\n sm: 960,\n md: 1264,\n lg: 1904\n};\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 600,\n sm: 1024,\n md: 1440,\n lg: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = breakpoints[k];\n if (delta != null)\n v = shared.increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(`(min-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => greaterOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n return Object.assign(shortcutMethods, {\n greater(k) {\n return useMediaQuery(`(min-width: ${getValue(k, 0.1)})`, options);\n },\n greaterOrEqual,\n smaller(k) {\n return useMediaQuery(`(max-width: ${getValue(k, -0.1)})`, options);\n },\n smallerOrEqual(k) {\n return useMediaQuery(`(max-width: ${getValue(k)})`, options);\n },\n between(a, b) {\n return useMediaQuery(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return vueDemi.computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = vueDemi.ref(false);\n const channel = vueDemi.ref();\n const data = vueDemi.ref();\n const error = vueDemi.shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n shared.tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n shared.tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, vueDemi.ref()])\n );\n for (const [key, ref2] of shared.objectEntries(refs)) {\n vueDemi.watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return vueDemi.reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = vueDemi.ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = vueDemi.ref(refValue.value);\n vueDemi.watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const isSupported = vueDemi.computed(() => isClipboardApiSupported.value || legacy);\n const text = vueDemi.ref(\"\");\n const copied = vueDemi.ref(false);\n const timeout = shared.useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = shared.toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value)\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = vueDemi.ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(shared.toValue(source));\n }\n if (!manual && (vueDemi.isRef(source) || typeof source === \"function\")) {\n vueDemi.watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const data = (shallow ? vueDemi.shallowRef : vueDemi.ref)(defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = shared.toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = shared.pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n }\n update();\n return data;\n function write(v) {\n try {\n if (v == null) {\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n const oldValue = storage.getItem(key);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue: serialized,\n storageArea: storage\n }\n }));\n }\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit !== null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n vueDemi.nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = vueDemi.computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? shared.toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = vueDemi.computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n const styleString = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n style.appendChild(document.createTextNode(styleString));\n window.document.head.appendChild(style);\n }\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n vueDemi.watch(state, onChanged, { flush: \"post\", immediate: true });\n shared.tryOnMounted(() => onChanged(state.value));\n const auto = vueDemi.computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = vueDemi.ref(false)) {\n const confirmHook = shared.createEventHook();\n const cancelHook = shared.createEventHook();\n const revealHook = shared.createEventHook();\n let _resolve = shared.noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: vueDemi.computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = vueDemi.watch(\n () => unrefElement(target),\n (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n },\n { immediate: true }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n shared.tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n const variable = vueDemi.ref(initialValue);\n const elRef = vueDemi.computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = shared.toValue(prop);\n const el = shared.toValue(elRef);\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n vueDemi.watch(\n [elRef, () => shared.toValue(prop)],\n updateCssVar,\n { immediate: true }\n );\n vueDemi.watch(\n variable,\n (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(shared.toValue(prop), val);\n }\n );\n return variable;\n}\n\nfunction useCurrentElement() {\n const vm = vueDemi.getCurrentInstance();\n const currentElement = shared.computedWithControl(\n () => null,\n () => vm.proxy.$el\n );\n vueDemi.onUpdated(currentElement.trigger);\n vueDemi.onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = vueDemi.shallowRef(getInitialValue());\n const listRef = shared.toRef(list);\n const index = vueDemi.computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = shared.toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : shared.toValue(list)[0])) != null ? _b : void 0;\n }\n vueDemi.watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\"\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const isDark = vueDemi.computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (mode.system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return vueDemi.markRaw({\n snapshot: dump(source.value),\n timestamp: shared.timestamp()\n });\n }\n const last = vueDemi.ref(_createHistoryRecord());\n const undoStack = vueDemi.ref([]);\n const redoStack = vueDemi.ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = vueDemi.computed(() => [last.value, ...undoStack.value]);\n const canUndo = vueDemi.computed(() => undoStack.value.length > 0);\n const canRedo = vueDemi.computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = shared.pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = shared.watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? shared.debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = shared.bypassFilter\n } = options;\n const acceleration = vueDemi.ref({ x: null, y: null, z: null });\n const rotationRate = vueDemi.ref({ alpha: null, beta: null, gamma: null });\n const interval = vueDemi.ref(0);\n const accelerationIncludingGravity = vueDemi.ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = shared.createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = vueDemi.ref(false);\n const alpha = vueDemi.ref(null);\n const beta = vueDemi.ref(null);\n const gamma = vueDemi.ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = vueDemi.ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n shared.tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = vueDemi.ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = shared.createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = vueDemi.ref([]);\n const videoInputs = vueDemi.computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = vueDemi.computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = vueDemi.computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = vueDemi.ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = vueDemi.ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = vueDemi.shallowRef();\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n vueDemi.watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return vueDemi.ref(\"visible\");\n const visibility = vueDemi.ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target\n } = options;\n const position = vueDemi.ref(\n (_a = shared.toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = vueDemi.ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (shared.toValue(preventDefault))\n e.preventDefault();\n if (shared.toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (shared.toValue(exact) && e.target !== shared.toValue(target))\n return;\n const container = (_a2 = shared.toValue(containerElement)) != null ? _a2 : shared.toValue(target);\n const rect = container.getBoundingClientRect();\n const pos = {\n x: e.clientX - rect.left,\n y: e.clientY - rect.top\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\")\n x = e.clientX - pressedDelta.value.x;\n if (axis === \"y\" || axis === \"both\")\n y = e.clientY - pressedDelta.value.y;\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (shared.isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...shared.toRefs(position),\n position,\n isDragging: vueDemi.computed(() => !!pressedDelta.value),\n style: vueDemi.computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n const isOverDropZone = vueDemi.ref(false);\n const files = vueDemi.shallowRef(null);\n let counter = 0;\n if (shared.isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const getFiles = (event) => {\n var _a, _b;\n const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n return files.value = list.length === 0 ? null : list;\n };\n useEventListener(target, \"dragenter\", (event) => {\n var _a;\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n (_a = _options.onEnter) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragover\", (event) => {\n var _a;\n event.preventDefault();\n (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragleave\", (event) => {\n var _a;\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"drop\", (event) => {\n var _a;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = vueDemi.computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]);\n const stopWatch = vueDemi.watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els)\n _el && observer.observe(_el, observerOptions);\n }\n },\n { immediate: true, flush: \"post\", deep: true }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n shared.tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = vueDemi.ref(0);\n const bottom = vueDemi.ref(0);\n const left = vueDemi.ref(0);\n const right = vueDemi.ref(0);\n const top = vueDemi.ref(0);\n const width = vueDemi.ref(0);\n const x = vueDemi.ref(0);\n const y = vueDemi.ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n vueDemi.watch(() => unrefElement(target), (ele) => !ele && update());\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n shared.tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (shared.toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = vueDemi.ref(null);\n const cb = () => {\n var _a, _b;\n element.value = shared.toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(shared.toValue(x), shared.toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(shared.toValue(x), shared.toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : shared.useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = vueDemi.ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = vueDemi.ref(initialSize.width);\n const height = vueDemi.ref(initialSize.height);\n useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = Number.parseFloat(styles.width);\n height.value = Number.parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n vueDemi.watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n return {\n width,\n height\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = vueDemi.computed(() => {\n const _target = shared.toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(shared.notNullish);\n });\n let cleanup = shared.noop;\n const isActive = vueDemi.ref(immediate);\n const stopWatch = isSupported.value ? vueDemi.watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = shared.noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : shared.noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n shared.tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget } = options;\n const elementIsVisible = vueDemi.ref(false);\n useIntersectionObserver(\n element,\n ([{ isIntersecting }]) => {\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold: 0\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = vueDemi.getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction useEventSource(url, events = [], options = {}) {\n const event = vueDemi.ref(null);\n const data = vueDemi.ref(null);\n const status = vueDemi.ref(\"CONNECTING\");\n const eventSource = vueDemi.ref(null);\n const error = vueDemi.shallowRef(null);\n const {\n withCredentials = false\n } = options;\n const close = () => {\n if (eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n }\n };\n const es = new EventSource(url, { withCredentials });\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n shared.tryOnScopeDispose(() => {\n close();\n });\n return {\n eventSource,\n event,\n data,\n status,\n error,\n close\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = vueDemi.ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = shared.toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n vueDemi.watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && shared.containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries([...headers.entries()]);\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = vueDemi.computed(() => {\n const baseUrl = shared.toValue(config.baseUrl);\n const targetUrl = shared.toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = shared.createEventHook();\n const errorEvent = shared.createEventHook();\n const finallyEvent = shared.createEventHook();\n const isFinished = vueDemi.ref(false);\n const isFetching = vueDemi.ref(false);\n const aborted = vueDemi.ref(false);\n const statusCode = vueDemi.ref(null);\n const response = vueDemi.shallowRef(null);\n const error = vueDemi.shallowRef(null);\n const data = vueDemi.shallowRef(initialData || null);\n const canAbort = vueDemi.computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = shared.useTimeoutFn(abort, timeout, { immediate: false });\n const execute = async (throwOnFailed = false) => {\n var _a2;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = shared.toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: shared.toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return new Promise((resolve, reject) => {\n var _a3;\n fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_a3 = context.options) == null ? void 0 : _a3.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return resolve(fetchResponse);\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n return reject(fetchError);\n return resolve(null);\n }).finally(() => {\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n });\n };\n const refetch = shared.toRef(options.refetch);\n vueDemi.watch(\n [\n refetch,\n shared.toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished,\n statusCode,\n response,\n error,\n data,\n isFetching,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (vueDemi.isRef(config.payload)) {\n vueDemi.watch(\n [\n refetch,\n shared.toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n shared.until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = vueDemi.ref(null);\n const { on: onChange, trigger } = shared.createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const reset = () => {\n files.value = null;\n if (input)\n input.value = \"\";\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n if (shared.hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: vueDemi.readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = vueDemi.ref();\n const data = vueDemi.ref();\n const file = vueDemi.ref();\n const fileName = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...shared.toValue(options), ..._options });\n fileHandle.value = handle;\n await updateFile();\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateFile();\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n const type = shared.toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n vueDemi.watch(() => shared.toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false } = options;\n const innerFocused = vueDemi.ref(false);\n const targetElement = vueDemi.computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = vueDemi.computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus();\n }\n });\n vueDemi.watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = vueDemi.computed(() => unrefElement(target));\n const focused = vueDemi.computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = vueDemi.ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = vueDemi.computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = vueDemi.ref(false);\n const requestMethod = vueDemi.computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = vueDemi.computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = vueDemi.computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n shared.tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return vueDemi.computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = vueDemi.ref([]);\n const onConnectedHook = shared.createEventHook();\n const onDisconnectedHook = shared.createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n ...gamepad,\n id: gamepad.id,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad) {\n const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);\n if (index > -1)\n gamepads.value[index] = stateFromGamepad(gamepad);\n }\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n shared.tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n if (_gamepads) {\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad)\n onGamepadConnected(gamepad);\n }\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = vueDemi.ref(null);\n const error = vueDemi.shallowRef(null);\n const coords = vueDemi.ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n shared.tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = shared.throttleFilter(50)\n } = options;\n const idle = vueDemi.ref(initialState);\n const lastActive = vueDemi.ref(shared.timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = shared.createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = shared.timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(shared.toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n vueDemi.watch(\n () => shared.toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = shared.noop,\n onScroll = shared.noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow\n } = options;\n const internalX = vueDemi.ref(0);\n const internalY = vueDemi.ref(0);\n const x = vueDemi.computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = vueDemi.computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n if (!window)\n return;\n const _element = shared.toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = shared.toValue(_y)) != null ? _a : y.value,\n left: (_b = shared.toValue(_x)) != null ? _b : x.value,\n behavior: shared.toValue(behavior)\n });\n }\n const isScrolling = vueDemi.ref(false);\n const arrivedState = vueDemi.reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = vueDemi.reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = shared.useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = target.document ? target.document.documentElement : (_a = target.documentElement) != null ? _a : target;\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? shared.useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = shared.toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100\n } = options;\n const state = vueDemi.reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = vueDemi.ref();\n const isLoading = vueDemi.computed(() => !!promise.value);\n const observedElement = vueDemi.computed(() => {\n return resolveElement(shared.toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value)\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n vueDemi.nextTick(() => checkAndLoad());\n });\n }\n }\n }\n vueDemi.watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = vueDemi.ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = shared.noop\n } = options;\n const current = vueDemi.reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? vueDemi.reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = vueDemi.computed(() => keys.every((key) => shared.toValue(proxy[key])));\n } else {\n refs[prop] = vueDemi.ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? shared.toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (shared.toValue(source))\n cb(shared.toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = vueDemi.ref(0);\n const duration = vueDemi.ref(0);\n const seeking = vueDemi.ref(false);\n const volume = vueDemi.ref(1);\n const waiting = vueDemi.ref(false);\n const ended = vueDemi.ref(false);\n const playing = vueDemi.ref(false);\n const rate = vueDemi.ref(1);\n const stalled = vueDemi.ref(false);\n const buffered = vueDemi.ref([]);\n const tracks = vueDemi.ref([]);\n const selectedTrack = vueDemi.ref(-1);\n const isPictureInPicture = vueDemi.ref(false);\n const muted = vueDemi.ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = shared.createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n vueDemi.watchEffect(() => {\n if (!document)\n return;\n const el = shared.toValue(target);\n if (!el)\n return;\n const src = shared.toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (shared.isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n shared.tryOnScopeDispose(() => {\n const el = shared.toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n vueDemi.watch([target, volume], () => {\n const el = shared.toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n vueDemi.watch([target, muted], () => {\n const el = shared.toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n vueDemi.watch([target, rate], () => {\n const el = shared.toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n vueDemi.watchEffect(() => {\n if (!document)\n return;\n const textTracks = shared.toValue(options.tracks);\n const el = shared.toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = shared.watchIgnorable(currentTime, (time) => {\n const el = shared.toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = shared.watchIgnorable(playing, (isPlaying) => {\n const el = shared.toValue(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = shared.toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = shared.toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(shared.toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = shared.toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = shared.toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = vueDemi.watch([target], () => {\n const el = shared.toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n shared.tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = vueDemi.reactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => vueDemi.set(data, key, value),\n has: (key) => shared.hasOwn(data, key),\n delete: (key) => vueDemi.del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n vueDemi.del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return vueDemi.reactive(options.cache);\n if (vueDemi.isVue2)\n return getMapVue2Compat();\n return vueDemi.reactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = vueDemi.ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n shared.useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = vueDemi.ref(initialValue.x);\n const y = vueDemi.ref(initialValue.y);\n const sourceType = vueDemi.ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const { x, y, sourceType } = useMouse(options);\n const targetRef = vueDemi.ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = vueDemi.ref(0);\n const elementY = vueDemi.ref(0);\n const elementPositionX = vueDemi.ref(0);\n const elementPositionY = vueDemi.ref(0);\n const elementHeight = vueDemi.ref(0);\n const elementWidth = vueDemi.ref(0);\n const isOutside = vueDemi.ref(true);\n let stop = () => {\n };\n if (window) {\n stop = vueDemi.watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + window.pageXOffset;\n elementPositionY.value = top + window.pageYOffset;\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = vueDemi.ref(initialValue);\n const sourceType = vueDemi.ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = vueDemi.computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = vueDemi.ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = vueDemi.ref(true);\n const saveData = vueDemi.ref(false);\n const offlineAt = vueDemi.ref(void 0);\n const onlineAt = vueDemi.ref(void 0);\n const downlink = vueDemi.ref(void 0);\n const downlinkMax = vueDemi.ref(void 0);\n const rtt = vueDemi.ref(void 0);\n const effectiveType = vueDemi.ref(void 0);\n const type = vueDemi.ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = vueDemi.ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : shared.useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = vueDemi.ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n vueDemi.watch(\n () => shared.toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n shared.tryOnScopeDispose(release);\n return vueDemi.readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || vueDemi.isReadonly(value))\n return vueDemi.computed(() => shared.clamp(shared.toValue(value), shared.toValue(min), shared.toValue(max)));\n const _value = vueDemi.ref(value);\n return vueDemi.computed({\n get() {\n return _value.value = shared.clamp(_value.value, shared.toValue(min), shared.toValue(max));\n },\n set(value2) {\n _value.value = shared.clamp(value2, shared.toValue(min), shared.toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = shared.noop,\n onPageSizeChange = shared.noop,\n onPageCountChange = shared.noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = vueDemi.computed(() => Math.max(\n 1,\n Math.ceil(shared.toValue(total) / shared.toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = vueDemi.computed(() => currentPage.value === 1);\n const isLastPage = vueDemi.computed(() => currentPage.value === pageCount.value);\n if (vueDemi.isRef(page))\n shared.syncRef(page, currentPage);\n if (vueDemi.isRef(pageSize))\n shared.syncRef(pageSize, currentPageSize);\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n vueDemi.watch(currentPage, () => {\n onPageChange(vueDemi.reactive(returnValue));\n });\n vueDemi.watch(currentPageSize, () => {\n onPageSizeChange(vueDemi.reactive(returnValue));\n });\n vueDemi.watch(pageCount, () => {\n onPageCountChange(vueDemi.reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = vueDemi.ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = vueDemi.reactive(useDeviceOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = vueDemi.computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n return \"deviceOrientation\";\n return \"mouse\";\n });\n const roll = vueDemi.computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = -orientation.beta / 90;\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = vueDemi.computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = orientation.gamma / 90;\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = vueDemi.shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n shared.tryOnMounted(update);\n vueDemi.watch(() => shared.toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n shared.tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = vueDemi.ref(false);\n const state = vueDemi.ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = shared.objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...shared.toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument, pointerLockOptions } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = vueDemi.ref();\n const triggerElement = vueDemi.ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e, options2) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock(options2 != null ? options2 : pointerLockOptions);\n return await shared.until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await shared.until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = shared.toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart\n } = options;\n const posStart = vueDemi.reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = vueDemi.reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = vueDemi.computed(() => posStart.x - posEnd.x);\n const distanceY = vueDemi.computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = vueDemi.computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = vueDemi.ref(false);\n const isPointerDown = vueDemi.ref(false);\n const direction = vueDemi.computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"initial\");\n })\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: vueDemi.readonly(isSwiping),\n direction: vueDemi.readonly(direction),\n posStart: vueDemi.readonly(posStart),\n posEnd: vueDemi.readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return vueDemi.computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return vueDemi.computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return vueDemi.ref([\"en\"]);\n const navigator = window.navigator;\n const value = vueDemi.ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return vueDemi.computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = vueDemi.shallowRef(initialValue);\n vueDemi.watch(\n shared.toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return vueDemi.readonly(previous);\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = vueDemi.ref(screenOrientation.type);\n const angle = vueDemi.ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (!isSupported.value)\n return Promise.reject(new Error(\"Not supported\"));\n return screenOrientation.lock(type);\n };\n const unlockOrientation = () => {\n if (isSupported.value)\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = vueDemi.ref(\"\");\n const right = vueDemi.ref(\"\");\n const bottom = vueDemi.ref(\"\");\n const left = vueDemi.ref(\"\");\n if (shared.isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", shared.useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = shared.noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = vueDemi.ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${shared.toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = shared.toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${shared.toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n shared.tryOnMounted(load);\n if (!manual)\n shared.tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nfunction useScrollLock(element, initialState = false) {\n const isLocked = vueDemi.ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n vueDemi.watch(shared.toRef(element), (el) => {\n const target = resolveElement(shared.toValue(el));\n if (target) {\n const ele = target;\n initialOverflow = ele.style.overflow;\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(shared.toValue(element));\n if (!el || isLocked.value)\n return;\n if (shared.isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const el = resolveElement(shared.toValue(element));\n if (!el || !isLocked.value)\n return;\n shared.isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n el.style.overflow = initialOverflow;\n isLocked.value = false;\n };\n shared.tryOnScopeDispose(unlock);\n return vueDemi.computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...shared.toValue(shareOptions),\n ...shared.toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return vueDemi.computed(() => sortFn([...shared.toValue(source)], compareFn));\n vueDemi.watchEffect(() => {\n const result = sortFn(shared.toValue(source), compareFn);\n if (vueDemi.isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = shared.toRef(options.lang || \"en-US\");\n const isListening = vueDemi.ref(false);\n const isFinal = vueDemi.ref(false);\n const result = vueDemi.ref(\"\");\n const error = vueDemi.shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = shared.toValue(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n vueDemi.watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const transcript = Array.from(event.results).map((result2) => {\n isFinal.value = result2.isFinal;\n return result2[0];\n }).map((result2) => result2.transcript).join(\"\");\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = shared.toValue(lang);\n };\n vueDemi.watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n shared.tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = vueDemi.ref(false);\n const status = vueDemi.ref(\"init\");\n const spokenText = shared.toRef(text || \"\");\n const lang = shared.toRef(options.lang || \"en-US\");\n const error = vueDemi.shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = shared.toValue(lang);\n utterance2.voice = shared.toValue(options.voice) || null;\n utterance2.pitch = shared.toValue(pitch);\n utterance2.rate = shared.toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = vueDemi.computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n vueDemi.watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n vueDemi.watch(options.voice, () => {\n synth.cancel();\n });\n }\n vueDemi.watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n shared.tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = vueDemi.ref(steps);\n const stepNames = vueDemi.computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = vueDemi.ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = vueDemi.computed(() => at(index.value));\n const isFirst = vueDemi.computed(() => index.value === 0);\n const isLast = vueDemi.computed(() => index.value === stepNames.value.length - 1);\n const next = vueDemi.computed(() => stepNames.value[index.value + 1]);\n const previous = vueDemi.computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = shared.toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? vueDemi.shallowRef : vueDemi.ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else\n data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n shared.watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = vueDemi.ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = vueDemi.ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = vueDemi.watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n shared.tryOnMounted(load);\n if (!manual)\n shared.tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: vueDemi.readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = vueDemi.reactive({ x: 0, y: 0 });\n const coordsEnd = vueDemi.reactive({ x: 0, y: 0 });\n const diffX = vueDemi.computed(() => coordsStart.x - coordsEnd.x);\n const diffY = vueDemi.computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = vueDemi.computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = vueDemi.ref(false);\n const direction = vueDemi.computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", shared.noop, optionsBlock);\n document.removeEventListener(\"x\", shared.noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = vueDemi.ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n vueDemi.onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = vueDemi.ref(getValue());\n shared.tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return vueDemi.computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = vueDemi.ref(null);\n const text = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = vueDemi.computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = vueDemi.computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n const textarea = vueDemi.ref(options == null ? void 0 : options.element);\n const input = vueDemi.ref(options == null ? void 0 : options.input);\n const textareaScrollHeight = vueDemi.ref(1);\n function triggerResize() {\n var _a, _b;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style.height = \"1px\";\n textareaScrollHeight.value = (_a = textarea.value) == null ? void 0 : _a.scrollHeight;\n if (options == null ? void 0 : options.styleTarget)\n shared.toValue(options.styleTarget).style.height = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style.height = height;\n (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n }\n vueDemi.watch([input, textarea], () => vueDemi.nextTick(triggerResize), { immediate: true });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n vueDemi.watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = shared.throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = vueDemi.computed(() => formatTimeAgo(new Date(shared.toValue(time)), options, shared.toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = shared.useTimeoutFn(loop, interval, { immediate: false });\n const isActive = vueDemi.ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n shared.tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = vueDemi.ref(shared.timestamp() + offset);\n const update = () => ts.value = shared.timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : shared.useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b;\n const {\n document = defaultDocument\n } = options;\n const title = shared.toRef((_a = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _a : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : shared.toValue(template).replace(/%s/g, t);\n }\n vueDemi.watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_b = document.head) == null ? void 0 : _b.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: shared.identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = shared.toValue(from);\n const toVal = shared.toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = shared.toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = shared.toValue(options.transition)) != null ? _b : shared.identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = shared.toValue(source);\n return typeof v === \"number\" ? v : v.map(shared.toValue);\n };\n const outputRef = vueDemi.ref(sourceVal());\n vueDemi.watch(sourceVal, async (to) => {\n var _a, _b;\n if (shared.toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await shared.promiseTimeout(shared.toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(shared.toValue) : shared.toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n vueDemi.watch(() => shared.toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n shared.tryOnScopeDispose(() => {\n currentId++;\n });\n return vueDemi.computed(() => shared.toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return vueDemi.reactive(initialValue);\n const state = vueDemi.reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = shared.pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = vueDemi.ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = vueDemi.ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = vueDemi.ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = vueDemi.shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n vueDemi.watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n vueDemi.watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = vueDemi.getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (vueDemi.isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => shared.isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = vueDemi.ref(initialValue);\n let isUpdating = false;\n vueDemi.watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n vueDemi.nextTick(() => isUpdating = false);\n }\n }\n );\n vueDemi.watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return vueDemi.computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = shared.toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = shared.useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = vueDemi.ref(null);\n const size = useElementSize(containerRef);\n const currentList = vueDemi.ref([]);\n const source = vueDemi.shallowRef(list);\n const state = vueDemi.ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n vueDemi.watch([size.width, size.height, list], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return vueDemi.computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = vueDemi.computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = vueDemi.computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = vueDemi.computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = vueDemi.computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = vueDemi.ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => !!window && \"Notification\" in window);\n const permissionGranted = vueDemi.ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = vueDemi.ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = shared.createEventHook();\n const { on: onShow, trigger: showTrigger } = shared.createEventHook();\n const { on: onError, trigger: errorTrigger } = shared.createEventHook();\n const { on: onClose, trigger: closeTrigger } = shared.createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n shared.tryOnMounted(ensurePermissions);\n shared.tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = vueDemi.ref(null);\n const status = vueDemi.ref(\"CLOSED\");\n const wsRef = vueDemi.ref();\n const urlRef = shared.toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!shared.isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n wsRef.value = void 0;\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = shared.useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n useEventListener(\"beforeunload\", () => close());\n shared.tryOnScopeDispose(close);\n }\n const open = () => {\n if (!shared.isClient)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n vueDemi.watch(urlRef, open, { immediate: true });\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = vueDemi.ref(null);\n const worker = vueDemi.shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n shared.tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps) {\n if (deps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n return `importScripts(${depsString})`;\n}\n\nfunction createWorkerBlobUrl(fn, deps) {\n const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = vueDemi.ref();\n const workerStatus = vueDemi.ref(\"PENDING\");\n const promise = vueDemi.ref({});\n const timeoutId = vueDemi.ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n shared.tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return vueDemi.ref(false);\n const focused = vueDemi.ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow } = options;\n if (!window) {\n return {\n x: vueDemi.ref(0),\n y: vueDemi.ref(0)\n };\n }\n const x = vueDemi.ref(window.scrollX);\n const y = vueDemi.ref(window.scrollY);\n useEventListener(\n window,\n \"scroll\",\n () => {\n x.value = window.scrollX;\n y.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = vueDemi.ref(initialWidth);\n const height = vueDemi.ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n shared.tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n vueDemi.watch(matches, () => update());\n }\n return { width, height };\n}\n\nexports.DefaultMagicKeysAliasMap = DefaultMagicKeysAliasMap;\nexports.StorageSerializers = StorageSerializers;\nexports.TransitionPresets = TransitionPresets;\nexports.asyncComputed = computedAsync;\nexports.breakpointsAntDesign = breakpointsAntDesign;\nexports.breakpointsBootstrapV5 = breakpointsBootstrapV5;\nexports.breakpointsMasterCss = breakpointsMasterCss;\nexports.breakpointsPrimeFlex = breakpointsPrimeFlex;\nexports.breakpointsQuasar = breakpointsQuasar;\nexports.breakpointsSematic = breakpointsSematic;\nexports.breakpointsTailwind = breakpointsTailwind;\nexports.breakpointsVuetify = breakpointsVuetify;\nexports.cloneFnJSON = cloneFnJSON;\nexports.computedAsync = computedAsync;\nexports.computedInject = computedInject;\nexports.createFetch = createFetch;\nexports.createReusableTemplate = createReusableTemplate;\nexports.createTemplatePromise = createTemplatePromise;\nexports.createUnrefFn = createUnrefFn;\nexports.customStorageEventName = customStorageEventName;\nexports.defaultDocument = defaultDocument;\nexports.defaultLocation = defaultLocation;\nexports.defaultNavigator = defaultNavigator;\nexports.defaultWindow = defaultWindow;\nexports.executeTransition = executeTransition;\nexports.formatTimeAgo = formatTimeAgo;\nexports.getSSRHandler = getSSRHandler;\nexports.mapGamepadToXbox360Controller = mapGamepadToXbox360Controller;\nexports.onClickOutside = onClickOutside;\nexports.onKeyDown = onKeyDown;\nexports.onKeyPressed = onKeyPressed;\nexports.onKeyStroke = onKeyStroke;\nexports.onKeyUp = onKeyUp;\nexports.onLongPress = onLongPress;\nexports.onStartTyping = onStartTyping;\nexports.setSSRHandler = setSSRHandler;\nexports.templateRef = templateRef;\nexports.unrefElement = unrefElement;\nexports.useActiveElement = useActiveElement;\nexports.useAnimate = useAnimate;\nexports.useAsyncQueue = useAsyncQueue;\nexports.useAsyncState = useAsyncState;\nexports.useBase64 = useBase64;\nexports.useBattery = useBattery;\nexports.useBluetooth = useBluetooth;\nexports.useBreakpoints = useBreakpoints;\nexports.useBroadcastChannel = useBroadcastChannel;\nexports.useBrowserLocation = useBrowserLocation;\nexports.useCached = useCached;\nexports.useClipboard = useClipboard;\nexports.useCloned = useCloned;\nexports.useColorMode = useColorMode;\nexports.useConfirmDialog = useConfirmDialog;\nexports.useCssVar = useCssVar;\nexports.useCurrentElement = useCurrentElement;\nexports.useCycleList = useCycleList;\nexports.useDark = useDark;\nexports.useDebouncedRefHistory = useDebouncedRefHistory;\nexports.useDeviceMotion = useDeviceMotion;\nexports.useDeviceOrientation = useDeviceOrientation;\nexports.useDevicePixelRatio = useDevicePixelRatio;\nexports.useDevicesList = useDevicesList;\nexports.useDisplayMedia = useDisplayMedia;\nexports.useDocumentVisibility = useDocumentVisibility;\nexports.useDraggable = useDraggable;\nexports.useDropZone = useDropZone;\nexports.useElementBounding = useElementBounding;\nexports.useElementByPoint = useElementByPoint;\nexports.useElementHover = useElementHover;\nexports.useElementSize = useElementSize;\nexports.useElementVisibility = useElementVisibility;\nexports.useEventBus = useEventBus;\nexports.useEventListener = useEventListener;\nexports.useEventSource = useEventSource;\nexports.useEyeDropper = useEyeDropper;\nexports.useFavicon = useFavicon;\nexports.useFetch = useFetch;\nexports.useFileDialog = useFileDialog;\nexports.useFileSystemAccess = useFileSystemAccess;\nexports.useFocus = useFocus;\nexports.useFocusWithin = useFocusWithin;\nexports.useFps = useFps;\nexports.useFullscreen = useFullscreen;\nexports.useGamepad = useGamepad;\nexports.useGeolocation = useGeolocation;\nexports.useIdle = useIdle;\nexports.useImage = useImage;\nexports.useInfiniteScroll = useInfiniteScroll;\nexports.useIntersectionObserver = useIntersectionObserver;\nexports.useKeyModifier = useKeyModifier;\nexports.useLocalStorage = useLocalStorage;\nexports.useMagicKeys = useMagicKeys;\nexports.useManualRefHistory = useManualRefHistory;\nexports.useMediaControls = useMediaControls;\nexports.useMediaQuery = useMediaQuery;\nexports.useMemoize = useMemoize;\nexports.useMemory = useMemory;\nexports.useMounted = useMounted;\nexports.useMouse = useMouse;\nexports.useMouseInElement = useMouseInElement;\nexports.useMousePressed = useMousePressed;\nexports.useMutationObserver = useMutationObserver;\nexports.useNavigatorLanguage = useNavigatorLanguage;\nexports.useNetwork = useNetwork;\nexports.useNow = useNow;\nexports.useObjectUrl = useObjectUrl;\nexports.useOffsetPagination = useOffsetPagination;\nexports.useOnline = useOnline;\nexports.usePageLeave = usePageLeave;\nexports.useParallax = useParallax;\nexports.useParentElement = useParentElement;\nexports.usePerformanceObserver = usePerformanceObserver;\nexports.usePermission = usePermission;\nexports.usePointer = usePointer;\nexports.usePointerLock = usePointerLock;\nexports.usePointerSwipe = usePointerSwipe;\nexports.usePreferredColorScheme = usePreferredColorScheme;\nexports.usePreferredContrast = usePreferredContrast;\nexports.usePreferredDark = usePreferredDark;\nexports.usePreferredLanguages = usePreferredLanguages;\nexports.usePreferredReducedMotion = usePreferredReducedMotion;\nexports.usePrevious = usePrevious;\nexports.useRafFn = useRafFn;\nexports.useRefHistory = useRefHistory;\nexports.useResizeObserver = useResizeObserver;\nexports.useScreenOrientation = useScreenOrientation;\nexports.useScreenSafeArea = useScreenSafeArea;\nexports.useScriptTag = useScriptTag;\nexports.useScroll = useScroll;\nexports.useScrollLock = useScrollLock;\nexports.useSessionStorage = useSessionStorage;\nexports.useShare = useShare;\nexports.useSorted = useSorted;\nexports.useSpeechRecognition = useSpeechRecognition;\nexports.useSpeechSynthesis = useSpeechSynthesis;\nexports.useStepper = useStepper;\nexports.useStorage = useStorage;\nexports.useStorageAsync = useStorageAsync;\nexports.useStyleTag = useStyleTag;\nexports.useSupported = useSupported;\nexports.useSwipe = useSwipe;\nexports.useTemplateRefsList = useTemplateRefsList;\nexports.useTextDirection = useTextDirection;\nexports.useTextSelection = useTextSelection;\nexports.useTextareaAutosize = useTextareaAutosize;\nexports.useThrottledRefHistory = useThrottledRefHistory;\nexports.useTimeAgo = useTimeAgo;\nexports.useTimeoutPoll = useTimeoutPoll;\nexports.useTimestamp = useTimestamp;\nexports.useTitle = useTitle;\nexports.useTransition = useTransition;\nexports.useUrlSearchParams = useUrlSearchParams;\nexports.useUserMedia = useUserMedia;\nexports.useVModel = useVModel;\nexports.useVModels = useVModels;\nexports.useVibrate = useVibrate;\nexports.useVirtualList = useVirtualList;\nexports.useWakeLock = useWakeLock;\nexports.useWebNotification = useWebNotification;\nexports.useWebSocket = useWebSocket;\nexports.useWebWorker = useWebWorker;\nexports.useWebWorkerFn = useWebWorkerFn;\nexports.useWindowFocus = useWindowFocus;\nexports.useWindowScroll = useWindowScroll;\nexports.useWindowSize = useWindowSize;\nObject.keys(shared).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n enumerable: true,\n get: function () { return shared[k]; }\n });\n});\n","var VueModule = require('vue')\n\n// get the real Vue https://github.com/vueuse/vue-demi/issues/192\nvar Vue = VueModule.default || VueModule\n\nexports.Vue = Vue\nexports.Vue2 = Vue\nexports.isVue2 = true\nexports.isVue3 = false\nexports.install = function () {}\nexports.warn = Vue.util.warn\n\n// createApp polyfill\nexports.createApp = function (rootComponent, rootProps) {\n var vm\n var provide = {}\n var app = {\n config: Vue.config,\n use: Vue.use.bind(Vue),\n mixin: Vue.mixin.bind(Vue),\n component: Vue.component.bind(Vue),\n provide: function (key, value) {\n provide[key] = value\n return this\n },\n directive: function (name, dir) {\n if (dir) {\n Vue.directive(name, dir)\n return app\n } else {\n return Vue.directive(name)\n }\n },\n mount: function (el, hydrating) {\n if (!vm) {\n vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))\n vm.$mount(el, hydrating)\n return vm\n } else {\n return vm\n }\n },\n unmount: function () {\n if (vm) {\n vm.$destroy()\n vm = undefined\n }\n },\n }\n return app\n}\n\nObject.keys(VueModule).forEach(function (key) {\n exports[key] = VueModule[key]\n})\n\n// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()\nexports.hasInjectionContext = () => !!VueModule.getCurrentInstance()\n","'use strict';\n\nvar vueDemi = require('vue-demi');\n\nfunction computedEager(fn, options) {\n var _a;\n const result = vueDemi.shallowRef();\n vueDemi.watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return vueDemi.readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = vueDemi.ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n vueDemi.watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = vueDemi.customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (vueDemi.getCurrentScope()) {\n vueDemi.onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (param) => {\n return Promise.all(Array.from(fns).map((fn) => fn(param)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = vueDemi.effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = vueDemi.getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n vueDemi.provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = vueDemi.getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return vueDemi.inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(\"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = vueDemi.effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!vueDemi.isVue3 && !vueDemi.version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (vueDemi.isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return vueDemi.unref(obj);\n return vueDemi.unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return vueDemi.unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : vueDemi.unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? vueDemi.unref : toValue;\n return function(...args) {\n return vueDemi.computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!vueDemi.isRef(objectRef))\n return vueDemi.reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return vueDemi.unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (vueDemi.isRef(objectRef.value[p]) && !vueDemi.isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return vueDemi.reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(vueDemi.computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(vueDemi.toRefs(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(vueDemi.toRefs(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && /* @__PURE__ */ /iP(ad|hone|od)/.test(window.navigator.userAgent);\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = vueDemi.ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: vueDemi.readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: vueDemi.isVue3 ? \"mounted\" : \"inserted\",\n updated: vueDemi.isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: vueDemi.isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return vueDemi.toRef(...args);\n const r = args[0];\n return typeof r === \"function\" ? vueDemi.readonly(vueDemi.customRef(() => ({ get: r, set: noop }))) : vueDemi.ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(vueDemi.toRefs(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return vueDemi.customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = vueDemi.ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n vueDemi.watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return vueDemi.computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = vueDemi.ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n vueDemi.watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = vueDemi.customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (vueDemi.isVue2) {\n vueDemi.set(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return vueDemi.watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, options = {}) {\n var _a, _b;\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options;\n const watchers = [];\n const transformLTR = (_a = transform.ltr) != null ? _a : (v) => v;\n const transformRTL = (_b = transform.rtl) != null ? _b : (v) => v;\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return vueDemi.watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!vueDemi.isRef(objectRef))\n return vueDemi.toRefs(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = vueDemi.customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true) {\n if (vueDemi.getCurrentInstance())\n vueDemi.onBeforeMount(fn);\n else if (sync)\n fn();\n else\n vueDemi.nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn) {\n if (vueDemi.getCurrentInstance())\n vueDemi.onBeforeUnmount(fn);\n}\n\nfunction tryOnMounted(fn, sync = true) {\n if (vueDemi.getCurrentInstance())\n vueDemi.onMounted(fn);\n else if (sync)\n fn();\n else\n vueDemi.nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn) {\n if (vueDemi.getCurrentInstance())\n vueDemi.onUnmounted(fn);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = vueDemi.watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!vueDemi.isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = vueDemi.watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return vueDemi.computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return vueDemi.computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return vueDemi.computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return vueDemi.computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return vueDemi.computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return vueDemi.computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return vueDemi.computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return vueDemi.computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return vueDemi.computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return vueDemi.computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return vueDemi.computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return vueDemi.computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = vueDemi.unref(initialValue);\n const count = vueDemi.ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return vueDemi.computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = vueDemi.ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (vueDemi.isRef(interval) || typeof interval === \"function\") {\n const stopWatch = vueDemi.watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = vueDemi.ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = vueDemi.ref((_a = options.initialValue) != null ? _a : null);\n vueDemi.watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = vueDemi.ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: vueDemi.readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = vueDemi.computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return vueDemi.computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return vueDemi.computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = vueDemi.isRef(initialValue);\n const _value = vueDemi.ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return vueDemi.watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = vueDemi.ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n vueDemi.nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return vueDemi.watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = vueDemi.ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = vueDemi.watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = vueDemi.ref(0);\n const syncCounter = vueDemi.ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n vueDemi.watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n vueDemi.watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return vueDemi.watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = vueDemi.watch(source, (...args) => {\n vueDemi.nextTick(() => stop());\n return cb(...args);\n }, options);\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (vueDemi.isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return vueDemi.watch(\n source,\n (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n },\n options\n );\n}\n\nexports.assert = assert;\nexports.autoResetRef = refAutoReset;\nexports.bypassFilter = bypassFilter;\nexports.camelize = camelize;\nexports.clamp = clamp;\nexports.computedEager = computedEager;\nexports.computedWithControl = computedWithControl;\nexports.containsProp = containsProp;\nexports.controlledComputed = computedWithControl;\nexports.controlledRef = controlledRef;\nexports.createEventHook = createEventHook;\nexports.createFilterWrapper = createFilterWrapper;\nexports.createGlobalState = createGlobalState;\nexports.createInjectionState = createInjectionState;\nexports.createReactiveFn = reactify;\nexports.createSharedComposable = createSharedComposable;\nexports.createSingletonPromise = createSingletonPromise;\nexports.debounceFilter = debounceFilter;\nexports.debouncedRef = refDebounced;\nexports.debouncedWatch = watchDebounced;\nexports.directiveHooks = directiveHooks;\nexports.eagerComputed = computedEager;\nexports.extendRef = extendRef;\nexports.formatDate = formatDate;\nexports.get = get;\nexports.hasOwn = hasOwn;\nexports.hyphenate = hyphenate;\nexports.identity = identity;\nexports.ignorableWatch = watchIgnorable;\nexports.increaseWithUnit = increaseWithUnit;\nexports.injectLocal = injectLocal;\nexports.invoke = invoke;\nexports.isClient = isClient;\nexports.isDef = isDef;\nexports.isDefined = isDefined;\nexports.isIOS = isIOS;\nexports.isObject = isObject;\nexports.makeDestructurable = makeDestructurable;\nexports.noop = noop;\nexports.normalizeDate = normalizeDate;\nexports.notNullish = notNullish;\nexports.now = now;\nexports.objectEntries = objectEntries;\nexports.objectOmit = objectOmit;\nexports.objectPick = objectPick;\nexports.pausableFilter = pausableFilter;\nexports.pausableWatch = watchPausable;\nexports.promiseTimeout = promiseTimeout;\nexports.provideLocal = provideLocal;\nexports.rand = rand;\nexports.reactify = reactify;\nexports.reactifyObject = reactifyObject;\nexports.reactiveComputed = reactiveComputed;\nexports.reactiveOmit = reactiveOmit;\nexports.reactivePick = reactivePick;\nexports.refAutoReset = refAutoReset;\nexports.refDebounced = refDebounced;\nexports.refDefault = refDefault;\nexports.refThrottled = refThrottled;\nexports.refWithControl = refWithControl;\nexports.resolveRef = resolveRef;\nexports.resolveUnref = resolveUnref;\nexports.set = set;\nexports.syncRef = syncRef;\nexports.syncRefs = syncRefs;\nexports.throttleFilter = throttleFilter;\nexports.throttledRef = refThrottled;\nexports.throttledWatch = watchThrottled;\nexports.timestamp = timestamp;\nexports.toReactive = toReactive;\nexports.toRef = toRef;\nexports.toRefs = toRefs;\nexports.toValue = toValue;\nexports.tryOnBeforeMount = tryOnBeforeMount;\nexports.tryOnBeforeUnmount = tryOnBeforeUnmount;\nexports.tryOnMounted = tryOnMounted;\nexports.tryOnScopeDispose = tryOnScopeDispose;\nexports.tryOnUnmounted = tryOnUnmounted;\nexports.until = until;\nexports.useArrayDifference = useArrayDifference;\nexports.useArrayEvery = useArrayEvery;\nexports.useArrayFilter = useArrayFilter;\nexports.useArrayFind = useArrayFind;\nexports.useArrayFindIndex = useArrayFindIndex;\nexports.useArrayFindLast = useArrayFindLast;\nexports.useArrayIncludes = useArrayIncludes;\nexports.useArrayJoin = useArrayJoin;\nexports.useArrayMap = useArrayMap;\nexports.useArrayReduce = useArrayReduce;\nexports.useArraySome = useArraySome;\nexports.useArrayUnique = useArrayUnique;\nexports.useCounter = useCounter;\nexports.useDateFormat = useDateFormat;\nexports.useDebounce = refDebounced;\nexports.useDebounceFn = useDebounceFn;\nexports.useInterval = useInterval;\nexports.useIntervalFn = useIntervalFn;\nexports.useLastChanged = useLastChanged;\nexports.useThrottle = refThrottled;\nexports.useThrottleFn = useThrottleFn;\nexports.useTimeout = useTimeout;\nexports.useTimeoutFn = useTimeoutFn;\nexports.useToNumber = useToNumber;\nexports.useToString = useToString;\nexports.useToggle = useToggle;\nexports.watchArray = watchArray;\nexports.watchAtMost = watchAtMost;\nexports.watchDebounced = watchDebounced;\nexports.watchDeep = watchDeep;\nexports.watchIgnorable = watchIgnorable;\nexports.watchImmediate = watchImmediate;\nexports.watchOnce = watchOnce;\nexports.watchPausable = watchPausable;\nexports.watchThrottled = watchThrottled;\nexports.watchTriggerable = watchTriggerable;\nexports.watchWithFilter = watchWithFilter;\nexports.whenever = whenever;\n","var VueModule = require('vue')\n\n// get the real Vue https://github.com/vueuse/vue-demi/issues/192\nvar Vue = VueModule.default || VueModule\n\nexports.Vue = Vue\nexports.Vue2 = Vue\nexports.isVue2 = true\nexports.isVue3 = false\nexports.install = function () {}\nexports.warn = Vue.util.warn\n\n// createApp polyfill\nexports.createApp = function (rootComponent, rootProps) {\n var vm\n var provide = {}\n var app = {\n config: Vue.config,\n use: Vue.use.bind(Vue),\n mixin: Vue.mixin.bind(Vue),\n component: Vue.component.bind(Vue),\n provide: function (key, value) {\n provide[key] = value\n return this\n },\n directive: function (name, dir) {\n if (dir) {\n Vue.directive(name, dir)\n return app\n } else {\n return Vue.directive(name)\n }\n },\n mount: function (el, hydrating) {\n if (!vm) {\n vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))\n vm.$mount(el, hydrating)\n return vm\n } else {\n return vm\n }\n },\n unmount: function () {\n if (vm) {\n vm.$destroy()\n vm = undefined\n }\n },\n }\n return app\n}\n\nObject.keys(VueModule).forEach(function (key) {\n exports[key] = VueModule[key]\n})\n\n// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()\nexports.hasInjectionContext = () => !!VueModule.getCurrentInstance()\n","// Axios v1.6.2 Copyright (c) 2023 Matt Zabriskie and contributors\n'use strict';\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n};\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz';\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n};\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0];\n }\n\n return str;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nvar utils$1 = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils$1.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils$1.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils$1.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n// eslint-disable-next-line strict\nvar httpAdapter = null;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils$1.isPlainObject(thing) || utils$1.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils$1.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils$1.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils$1.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils$1.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);\n\n if (!utils$1.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils$1.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils$1.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils$1.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils$1.isArray(value) && isFlatArray(value)) ||\n ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils$1.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils$1.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils$1.forEach(value, function each(el, key) {\n const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils$1.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils$1.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils$1.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nvar InterceptorManager$1 = InterceptorManager;\n\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\nvar platform$1 = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hasBrowserEnv: hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv: hasStandardBrowserEnv\n});\n\nvar platform = {\n ...utils,\n ...platform$1\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils$1.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils$1.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils$1.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils$1.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils$1.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils$1.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {\n const obj = {};\n\n utils$1.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils$1.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils$1.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils$1.isObject(data);\n\n if (isObjectPayload && utils$1.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils$1.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils$1.isArrayBuffer(data) ||\n utils$1.isBuffer(data) ||\n utils$1.isStream(data) ||\n utils$1.isFile(data) ||\n utils$1.isBlob(data)\n ) {\n return data;\n }\n if (utils$1.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils$1.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nvar defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils$1.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils$1.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils$1.isString(value)) return;\n\n if (utils$1.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils$1.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils$1.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils$1.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils$1.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils$1.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils$1.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils$1.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils$1.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils$1.forEach(this, (value, header) => {\n const key = utils$1.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils$1.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils$1.freezeMethods(AxiosHeaders);\n\nvar AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils$1.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils$1.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\nvar cookies = platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils$1.isString(path) && cookie.push('path=' + path);\n\n utils$1.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nvar isURLSameOrigin = platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils$1.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders$1.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils$1.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils$1.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n};\n\nutils$1.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;\n\nvar adapters = {\n getAdapter: (adapters) => {\n adapters = utils$1.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {\n return utils$1.merge.call({caseless}, target, source);\n } else if (utils$1.isPlainObject(source)) {\n return utils$1.merge({}, source);\n } else if (utils$1.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nconst VERSION = \"1.6.2\";\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nvar validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils$1.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils$1.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils$1.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nvar Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nvar CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils$1.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nvar HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils$1.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\n\n/**\n * Regular expression that matches a unicode punctuation character.\n */\nexport const unicodePunctuationRegex =\n /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Text} Text\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Content | Root} Node\n * @typedef {Extract<Node, MdastParent>} Parent\n * @typedef {Exclude<Parent, Root>} ContentParent\n *\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[Root, ...Array<ContentParent>, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array<string>`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array<PhrasingContent> | PhrasingContent | string | false | undefined | null}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array<Node>`, replace with those nodes\n *\n * @typedef {string | RegExp} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array<FindAndReplaceTuple>} FindAndReplaceList\n * Several find and replaces, in array form.\n * @typedef {Record<string, Replace>} FindAndReplaceSchema\n * Several find and replaces, in object form.\n * @typedef {[Find, Replace]} FindAndReplaceTuple\n * Find and replace in tuple form.\n * @typedef {string | ReplaceFunction} Replace\n * Thing to replace with.\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n * @typedef {Array<Pair>} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore.\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param tree\n * Tree to change.\n * @param find\n * Patterns to find.\n * @param replace\n * Things to replace with (when `find` is `Find`) or configuration.\n * @param options\n * Configuration (when `find` is not `Find`).\n * @returns\n * Given, modified, tree.\n */\n// To do: next major: remove `find` & `replace` combo, remove schema.\nexport const findAndReplace =\n /**\n * @type {(\n * (<Tree extends Node>(tree: Tree, find: Find, replace?: Replace | null | undefined, options?: Options | null | undefined) => Tree) &\n * (<Tree extends Node>(tree: Tree, schema: FindAndReplaceSchema | FindAndReplaceList, options?: Options | null | undefined) => Tree)\n * )}\n **/\n (\n /**\n * @template {Node} Tree\n * @param {Tree} tree\n * @param {Find | FindAndReplaceSchema | FindAndReplaceList} find\n * @param {Replace | Options | null | undefined} [replace]\n * @param {Options | null | undefined} [options]\n * @returns {Tree}\n */\n function (tree, find, replace, options) {\n /** @type {Options | null | undefined} */\n let settings\n /** @type {FindAndReplaceSchema|FindAndReplaceList} */\n let schema\n\n if (typeof find === 'string' || find instanceof RegExp) {\n // @ts-expect-error don’t expect options twice.\n schema = [[find, replace]]\n settings = options\n } else {\n schema = find\n // @ts-expect-error don’t expect replace twice.\n settings = replace\n }\n\n if (!settings) {\n settings = {}\n }\n\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(schema)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n // To do next major: don’t return the given tree.\n return tree\n\n /** @type {import('unist-util-visit-parents/complex-types.js').BuildVisitor<Root, 'text'>} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parent | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n\n if (\n ignored(\n parent,\n // @ts-expect-error: TS doesn’t understand but it’s perfect.\n grandparent ? grandparent.children.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array<Parent>} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n // @ts-expect-error: TS is wrong, some of these children can be text.\n const index = parent.children.indexOf(node)\n let change = false\n /** @type {Array<PhrasingContent>} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n // @ts-expect-error: stack is fine.\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value !== false) {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n }\n )\n\n/**\n * Turn a schema into pairs.\n *\n * @param {FindAndReplaceSchema | FindAndReplaceList} schema\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(schema) {\n /** @type {Pairs} */\n const result = []\n\n if (typeof schema !== 'object') {\n throw new TypeError('Expected array or object as schema')\n }\n\n if (Array.isArray(schema)) {\n let index = -1\n\n while (++index < schema.length) {\n result.push([\n toExpression(schema[index][0]),\n toFunction(schema[index][1])\n ])\n }\n } else {\n /** @type {string} */\n let key\n\n for (key in schema) {\n if (own.call(schema, key)) {\n result.push([toExpression(key), toFunction(schema[key])])\n }\n }\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function' ? replace : () => replace\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n */\n\n/**\n * @typedef {Content | Root} Node\n */\n\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/**\n * Turn normal line endings into hard breaks.\n *\n * @param {Node} tree\n * Tree to change.\n * @returns {void}\n * Nothing.\n */\nexport function newlineToBreak(tree) {\n findAndReplace(tree, /\\r?\\n|\\r/g, replace)\n}\n\n/**\n * Replace line endings.\n *\n * @type {ReplaceFunction}\n */\nfunction replace() {\n return {type: 'break'}\n}\n","/**\n * @typedef {import('mdast').Root} Root\n */\n\nimport {newlineToBreak} from 'mdast-util-newline-to-break'\n\n/**\n * Plugin to support hard breaks without needing spaces or escapes (turns enters\n * into `<br>`s).\n *\n * @type {import('unified').Plugin<void[], Root>}\n */\nexport default function remarkBreaks() {\n return newlineToBreak\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s.\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML.\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} value\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Node}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {void}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array<unknown>} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {})\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * @param {Array<unknown>} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array<unknown>} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n let previous\n return contentStart\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n if (previous) {\n previous.next = token\n }\n previous = token\n return data(code)\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n}\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array<StackItem>} */\n const stack = []\n let continued = 0\n /** @type {TokenizeContext | undefined} */\n let childFlow\n /** @type {Token | undefined} */\n let childToken\n /** @type {number} */\n let lineStartOffset\n return start\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n }\n\n // Done.\n return checkNewContainers(code)\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n if (childFlow) {\n closeFlow()\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point | undefined} */\n let point\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n let index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n return checkNewContainers(code)\n }\n return start(code)\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n }\n\n // Check if there is a new container.\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState])\n // Try another.\n return documentContinued(code)\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow'))\n // Get ready for the next line.\n continued = 0\n self.interrupt = undefined\n return start\n }\n effects.consume(code)\n return flowContinue\n }\n\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {void}\n */\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream)\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset &&\n // …and either is not ended yet…\n (!childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean | undefined} */\n let seen\n /** @type {Point | undefined} */\n let point\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n seen = true\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n }\n }\n\n /**\n * @param {number} size\n * @returns {void}\n */\n function exitContainers(size) {\n let index = stack.length\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n stack.length = size\n }\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code)\n ? factorySpace(effects, after, 'linePrefix')(code)\n : after(code)\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */\n\nimport {splice} from 'micromark-util-chunked'\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} events\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\nexport function subtokenize(events) {\n /** @type {Record<string, number>} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n let event\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number} */\n let otherIndex\n /** @type {Event} */\n let otherEvent\n /** @type {Array<Event>} */\n let parameters\n /** @type {Array<Event>} */\n let subevents\n /** @type {boolean | undefined} */\n let more\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n event = events[index]\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start)\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n return !more\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {Array<Event>} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {Array<number>} */\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {Array<[number, number]>} */\n const jumps = []\n /** @type {Record<string, number>} */\n const gaps = {}\n /** @type {Array<Chunk>} */\n let stream\n /** @type {Token | undefined} */\n let previous\n let index = -1\n /** @type {Token | undefined} */\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start]\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition)\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n if (!current.next) {\n stream.push(null)\n }\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n tokenizer.write(stream)\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n }\n\n // Unravel the next token.\n previous = current\n current = current.next\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start)\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n }\n\n // Help GC.\n tokenizer.events = []\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n index = -1\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n\n/** @type {Construct} */\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous\n return chunkStart\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return chunkInside(code)\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n }\n\n // Data.\n effects.consume(code)\n return chunkInside\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return chunkInside\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1]\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true\n }\n const list = constructs[code]\n let index = -1\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n enter = undefined\n }\n }\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n while (index--) {\n const chunk = chunks[index]\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n eventIndex++\n }\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record<string, number>} */\n const columnStart = {}\n /** @type {Array<Construct>} */\n const resolveAllConstructs = []\n /** @type {Array<Chunk>} */\n let chunks = []\n /** @type {Array<Token>} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n main()\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n }\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array<Construct>} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n return Array.isArray(constructs) /* c8 ignore next 1 */\n ? handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array<Construct>} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n if (list.length === 0) {\n return bogusState\n }\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true\n info.restore()\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'end' | 'start'>} token\n * @returns {Array<Chunk>}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array<Chunk>} */\n let view\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n view.shift()\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array<string>} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n case -4: {\n value = '\\n'\n break\n }\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n atTab = chunk === -2\n result.push(value)\n }\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('thematicBreak')\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit('thematicBreak')\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n effects.exit('thematicBreakSequence')\n return markdownSpace(code)\n ? factorySpace(effects, atBreak, 'whitespace')(code)\n : atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this\n return contStart\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n contBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return contBefore(code)\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code)\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return enclosedBefore\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return raw(code)\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return enclosed(code)\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return enclosedBefore(code)\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? enclosedEscape : enclosed\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return enclosed\n }\n return enclosed(code)\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (\n !balance &&\n (code === null || code === 41 || markdownLineEndingOrSpace(code))\n ) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n if (balance < limit && code === 40) {\n effects.consume(code)\n balance++\n return raw\n }\n if (code === 41) {\n effects.consume(code)\n balance--\n return raw\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? rawEscape : raw\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return raw\n }\n return raw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n let seen\n return start\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (\n size > 999 ||\n code === null ||\n code === 91 ||\n (code === 93 && !seen) ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return labelInside(code)\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n if (!seen) seen = !markdownSpace(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return begin\n }\n return nok(code)\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n return atBreak(code)\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return begin(marker)\n }\n if (code === null) {\n return nok(code)\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atBreak, 'linePrefix')\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return inside(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n return code === 92 ? escape : inside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return inside\n }\n return inside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n\n/** @type {Construct} */\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n let identifier\n return start\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter('definition')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n return markerAfter\n }\n return nok(code)\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, destinationBefore)(code)\n : destinationBefore(code)\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(\n effects,\n destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )(code)\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code)\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code)\n ? factorySpace(effects, afterWhitespace, 'whitespace')(code)\n : afterWhitespace(code)\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier)\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, beforeMarker)(code)\n : nok(code)\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(\n effects,\n titleAfter,\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code)\n ? factorySpace(effects, titleAfterOptionalWhitespace, 'whitespace')(code)\n : titleAfterOptionalWhitespace(code)\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n\n/** @type {Construct} */\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter('codeIndented')\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? atBreak(code)\n : nok(code)\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code)\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return inside(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return atBreak(code)\n }\n effects.consume(code)\n return inside\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit('codeIndented')\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this\n return furtherStart\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return furtherStart\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? furtherStart(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n let content\n /** @type {Token} */\n let text\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n }\n\n // Suffix whitespace, part of the closing.\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter('atxHeading')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('atxHeadingSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return sequenceOpen\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n return nok(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequenceFurther(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code)\n return sequenceFurther\n }\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return atBreak(code)\n }\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = 'setextHeadingText'\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n marker = code\n return before(code)\n }\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('setextHeadingLineSequence')\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n effects.exit('setextHeadingLineSequence')\n return markdownSpace(code)\n ? factorySpace(effects, after, 'lineSuffix')(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n\n/** @type {Construct} */\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n\n/** @type {Construct} */\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n}\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n}\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start\n // Remove the line prefix.\n events.splice(index - 2, 2)\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n let marker\n /** @type {boolean} */\n let closingTag\n /** @type {string} */\n let buffer\n /** @type {number} */\n let index\n /** @type {Code} */\n let markerB\n return start\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n closingTag = true\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n marker = 3\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n marker = 2\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n marker = 5\n index = 0\n return cdataOpenInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n marker = 4\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n const slash = code === 47\n const name = buffer.toLowerCase()\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6\n if (slash) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n marker = 7\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : closingTag\n ? completeClosingTagAfter(code)\n : completeAttributeNameBefore(code)\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n return completeEnd(code)\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n return completeEnd(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n return completeAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n return completeAttributeNameBefore(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n markerB = code\n return completeAttributeValueQuoted\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n return completeAttributeValueUnquoted(code)\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code)\n markerB = null\n return completeAttributeValueQuotedAfter\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 47 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n if (code === 60 && marker === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n if (code === 62 && marker === 4) {\n effects.consume(code)\n return continuationClose\n }\n if (code === 63 && marker === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n if (code === 93 && marker === 5) {\n effects.consume(code)\n return continuationCdataInside\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit('htmlFlowData')\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationStart(code)\n }\n effects.consume(code)\n return continuation\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code)\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return continuationBefore\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code)\n }\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&amp;b\n * ^\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&amp;b\n * ^\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&amp;b\n * ^^^\n * > | a&#123;b\n * ^^^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array<Event>} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array<Event>} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = []\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code> | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array<Chunk>}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > 126 && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract<Node, UnistParent>} Parent\n *\n * @typedef {Omit<UnistParent, 'type' | 'children'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array<string>} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array<Transform>} transforms\n * Tree transforms.\n *\n * @typedef {Partial<Config>} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array<Node | Fragment>} stack\n * Stack of nodes.\n * @property {Array<TokenTuple>} tokenStack\n * Stack of tokens.\n * @property {<Key extends keyof CompileData>(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {<Key extends keyof CompileData>(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {<Kind extends Node>(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don’t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array<number>} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we’ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array<StaticPhrasingContent>} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Extension | Array<Extension>>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * @this {import('unified').Processor}\n * @type {import('unified').Plugin<[Options?] | void[], string, Root>}\n */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction<Root>} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n if (index === -1) {\n state.footnoteOrder.push(id)\n state.footnoteCounts[id] = 1\n counter = state.footnoteOrder.length\n } else {\n state.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = state.footnoteCounts[id]\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + state.clobberPrefix + 'fn-' + safeId,\n id:\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Reference>} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {References} node\n * Reference node (image, link).\n * @returns {ElementContent | Array<ElementContent>}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return {type: 'text', value: '![' + node.alt + suffix}\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array<ElementContent>} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * Node.\n * @returns {Position}\n * Position.\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start' | 'end'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n // To do: next major: don’t return points when invalid.\n return {\n // @ts-expect-error: in practice, null is allowed.\n line: point.line || null,\n // @ts-expect-error: in practice, null is allowed.\n column: point.column || null,\n // @ts-expect-error: in practice, null is allowed.\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n /** @type {Properties} */\n const properties = {}\n\n if (lang) {\n properties.className = ['language-' + lang]\n }\n\n // Create `<code>`.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `<pre>`.\n result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n state.patch(node, result)\n return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strikethrough(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'del',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function emphasis(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'em',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * <https://github.com/micromark/micromark-extension-footnote>\n// * <https://github.com/syntax-tree/mdast-util-footnote>\n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Footnote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnote(state, node) {\n const footnoteById = state.footnoteById\n let no = 1\n\n while (no in footnoteById) no++\n\n const identifier = String(no)\n\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier,\n children: [{type: 'paragraph', children: node.children}],\n position: node.position\n }\n\n return footnoteReference(state, {\n type: 'footnoteReference',\n identifier,\n position: node.position\n })\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function heading(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'h' + node.depth,\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Raw | Element | null}\n * hast node.\n */\nexport function html(state, node) {\n if (state.dangerous) {\n /** @type {Raw} */\n const result = {type: 'raw', value: node.value}\n state.patch(node, result)\n return state.applyData(node, result)\n }\n\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n * hast node.\n */\nexport function imageReference(state, node) {\n const def = state.definition(node.identifier)\n\n if (!def) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function image(state, node) {\n /** @type {Properties} */\n const properties = {src: normalizeUri(node.url)}\n\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt\n }\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function inlineCode(state, node) {\n /** @type {Text} */\n const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n state.patch(node, text)\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: [text]\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n * hast node.\n */\nexport function linkReference(state, node) {\n const def = state.definition(node.identifier)\n\n if (!def) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {href: normalizeUri(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function link(state, node) {\n /** @type {Properties} */\n const properties = {href: normalizeUri(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function list(state, node) {\n /** @type {Properties} */\n const properties = {}\n const results = state.all(node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n properties.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < results.length) {\n const child = results[index]\n\n if (\n child.type === 'element' &&\n child.tagName === 'li' &&\n child.properties &&\n Array.isArray(child.properties.className) &&\n child.properties.className.includes('task-list-item')\n ) {\n properties.className = ['contains-task-list']\n break\n }\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: node.ordered ? 'ol' : 'ul',\n properties,\n children: state.wrap(results, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function paragraph(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastRoot | HastElement}\n * hast node.\n */\nexport function root(state, node) {\n /** @type {HastRoot} */\n const result = {type: 'root', children: state.wrap(state.all(node))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strong(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'strong',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function table(state, node) {\n const rows = state.all(node)\n const firstRow = rows.shift()\n /** @type {Array<Element>} */\n const tableContent = []\n\n if (firstRow) {\n /** @type {Element} */\n const head = {\n type: 'element',\n tagName: 'thead',\n properties: {},\n children: state.wrap([firstRow], true)\n }\n state.patch(node.children[0], head)\n tableContent.push(head)\n }\n\n if (rows.length > 0) {\n /** @type {Element} */\n const body = {\n type: 'element',\n tagName: 'tbody',\n properties: {},\n children: state.wrap(rows, true)\n }\n\n const start = pointStart(node.children[1])\n const end = pointEnd(node.children[node.children.length - 1])\n if (start.line && end.line) body.position = {start, end}\n tableContent.push(body)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'table',\n properties: {},\n children: state.wrap(tableContent, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'td', // Assume body cell.\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1\n const tagName = rowIndex === 0 ? 'th' : 'td'\n const align = parent && parent.type === 'table' ? parent.align : undefined\n const length = align ? align.length : node.children.length\n let cellIndex = -1\n /** @type {Array<ElementContent>} */\n const cells = []\n\n while (++cellIndex < length) {\n // Note: can also be undefined.\n const cell = node.children[cellIndex]\n /** @type {Properties} */\n const properties = {}\n const alignValue = align ? align[cellIndex] : undefined\n\n if (alignValue) {\n properties.align = alignValue\n }\n\n /** @type {Element} */\n let result = {type: 'element', tagName, properties, children: []}\n\n if (cell) {\n result.children = state.all(cell)\n state.patch(cell, result)\n result = state.applyData(node, result)\n }\n\n cells.push(result)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'tr',\n properties: {},\n children: state.wrap(cells, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastText | HastElement}\n * hast node.\n */\nexport function text(state, node) {\n /** @type {HastText} */\n const result = {type: 'text', value: trimLines(String(node.value))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function thematicBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'hr',\n properties: {},\n children: []\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record<string, unknown>} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<string | Props | TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array<AssertAnything>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<Ancestor>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor<import('./complex-types.js').Matches<import('./complex-types.js').InclusiveDescendant<Tree>, Check>, Extract<import('./complex-types.js').InclusiveDescendant<Tree>, Parent>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor<Node>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Record<string, unknown>} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {}\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<Parent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {ActionTuple}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor<Visited, ParentsOf<Ancestor, Visited>>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches<Descendant, Check>,\n * Extract<Descendant, Parent>\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n * Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n * Identifier of definition.\n * @returns {Definition | null}\n * Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n * Tree to check.\n * @returns {GetDefinition}\n * Getter.\n */\nexport function definitions(tree) {\n /** @type {Record<string, Definition>} */\n const cache = Object.create(null)\n\n if (!tree || !tree.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(tree, 'definition', (definition) => {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n })\n\n return definition\n\n /** @type {GetDefinition} */\n function definition(identifier) {\n const id = clean(identifier)\n // To do: next major: return `undefined` when not found.\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract<MdastNodes, MdastParent>} MdastParents\n *\n * @typedef EmbeddedHastFields\n * hast fields.\n * @property {string | null | undefined} [hName]\n * Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n * Generate an element with these properties instead.\n * @property {Array<HastElementContent> | null | undefined} [hChildren]\n * Generate an element with this content instead.\n *\n * @typedef {Record<string, unknown> & EmbeddedHastFields} MdastData\n * mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n * mdast node with embedded hast data.\n *\n * @typedef PointLike\n * Point-like value.\n * @property {number | null | undefined} [line]\n * Line.\n * @property {number | null | undefined} [column]\n * Column.\n * @property {number | null | undefined} [offset]\n * Offset.\n *\n * @typedef PositionLike\n * Position-like value.\n * @property {PointLike | null | undefined} [start]\n * Point-like value.\n * @property {PointLike | null | undefined} [end]\n * Point-like value.\n *\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * hast node.\n *\n * @callback HFunctionProps\n * Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {HastProperties} props\n * Properties.\n * @param {Array<HastElementContent> | null | undefined} [children]\n * hast content.\n * @returns {HastElement}\n * Compiled element.\n *\n * @callback HFunctionNoProps\n * Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {Array<HastElementContent> | null | undefined} [children]\n * hast content.\n * @returns {HastElement}\n * Compiled element.\n *\n * @typedef HFields\n * Info on `state`.\n * @property {boolean} dangerous\n * Whether HTML is allowed.\n * @property {string} clobberPrefix\n * Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n * Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n * HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n * Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n * Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n * Definition cache.\n * @property {Record<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Record<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {Handler} unknownHandler\n * Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n * Copy a node’s positional info.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => Type | HastElement} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array<HastElementContent> | null | undefined} one\n * Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastContent>(nodes: Array<Type>, loose?: boolean | null | undefined) => Array<Type | HastText>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n * Like `state` but lower-level and usable on non-elements.\n * Deprecated: use `patch` and `applyData`.\n * @property {Array<string>} passThrough\n * List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` attribute on footnotes to prevent it from\n * *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n * Label to use from backreferences back to their footnote call (affects\n * screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (note that `id: 'footnote-label'`\n * is always added as footnote calls use it with `aria-describedby` to\n * provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes.\n * @property {Array<string> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes.\n *\n * @typedef {Record<string, Handler>} Handlers\n * Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n * Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || {}\n const dangerous = settings.allowDangerousHtml || false\n /** @type {Record<string, MdastFootnoteDefinition>} */\n const footnoteById = {}\n\n // To do: next major: add `options` to state, remove:\n // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n // `unknownHandler`.\n\n // To do: next major: move to `state.options.allowDangerousHtml`.\n state.dangerous = dangerous\n // To do: next major: move to `state.options`.\n state.clobberPrefix =\n settings.clobberPrefix === undefined || settings.clobberPrefix === null\n ? 'user-content-'\n : settings.clobberPrefix\n // To do: next major: move to `state.options`.\n state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n // To do: next major: move to `state.options`.\n state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n // To do: next major: move to `state.options`.\n state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n className: ['sr-only']\n }\n // To do: next major: move to `state.options`.\n state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n // To do: next major: move to `state.options`.\n state.unknownHandler = settings.unknownHandler\n // To do: next major: move to `state.options`.\n state.passThrough = settings.passThrough\n\n state.handlers = {...handlers, ...settings.handlers}\n\n // To do: next major: replace utility with `definitionById` object, so we\n // only walk once (as we need footnotes too).\n state.definition = definitions(tree)\n state.footnoteById = footnoteById\n /** @type {Array<string>} */\n state.footnoteOrder = []\n /** @type {Record<string, number>} */\n state.footnoteCounts = {}\n\n state.patch = patch\n state.applyData = applyData\n state.one = oneBound\n state.all = allBound\n state.wrap = wrap\n // To do: next major: remove `augment`.\n state.augment = augment\n\n visit(tree, 'footnoteDefinition', (definition) => {\n const id = String(definition.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition\n }\n })\n\n // @ts-expect-error Hush, it’s fine!\n return state\n\n /**\n * Finalise the created `right`, a hast node, from `left`, an mdast node.\n *\n * @param {MdastNodeWithData | PositionLike | null | undefined} left\n * @param {HastElementContent} right\n * @returns {HastElementContent}\n */\n /* c8 ignore start */\n // To do: next major: remove.\n function augment(left, right) {\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && 'data' in left && left.data) {\n /** @type {MdastData} */\n const data = left.data\n\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n }\n }\n\n right.tagName = data.hName\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = {...right.properties, ...data.hProperties}\n }\n\n if ('children' in right && right.children && data.hChildren) {\n right.children = data.hChildren\n }\n }\n\n if (left) {\n const ctx = 'type' in left ? left : {position: left}\n\n if (!generated(ctx)) {\n // @ts-expect-error: fine.\n right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n }\n }\n\n return right\n }\n /* c8 ignore stop */\n\n /**\n * Create an element for `node`.\n *\n * @type {HFunctionProps}\n */\n /* c8 ignore start */\n // To do: next major: remove.\n function state(node, tagName, props, children) {\n if (Array.isArray(props)) {\n children = props\n props = {}\n }\n\n // @ts-expect-error augmenting an element yields an element.\n return augment(node, {\n type: 'element',\n tagName,\n properties: props || {},\n children: children || []\n })\n }\n /* c8 ignore stop */\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | null | undefined} [parent]\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * Resulting hast node.\n */\n function oneBound(node, parent) {\n // @ts-expect-error: that’s a state :)\n return one(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n function allBound(parent) {\n // @ts-expect-error: that’s a state :)\n return all(state, parent)\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {void}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {Type | HastElement}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {Type | HastElement} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent is likely to keep the content around (otherwise: pass\n // `hChildren`).\n else {\n result = {\n type: 'element',\n tagName: hName,\n properties: {},\n children: []\n }\n\n // To do: next major: take the children from the `root`, or inject the\n // raw/text/comment or so into the element?\n // if ('children' in node) {\n // // @ts-expect-error: assume `children` are allowed in elements.\n // result.children = node.children\n // } else {\n // // @ts-expect-error: assume `node` is allowed in elements.\n // result.children.push(node)\n // }\n }\n }\n\n if (result.type === 'element' && hProperties) {\n result.properties = {...result.properties, ...hProperties}\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n // @ts-expect-error: assume valid children are defined.\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | null | undefined} [parent]\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n const type = node && node.type\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`')\n }\n\n if (own.call(state.handlers, type)) {\n return state.handlers[type](state, node, parent)\n }\n\n if (state.passThrough && state.passThrough.includes(type)) {\n // To do: next major: deep clone.\n // @ts-expect-error: types of passed through nodes are expected to be added manually.\n return 'children' in node ? {...node, children: all(state, node)} : node\n }\n\n if (state.unknownHandler) {\n return state.unknownHandler(state, node, parent)\n }\n\n return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n /** @type {Array<HastElementContent>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = one(state, nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = result.value.replace(/^\\s+/, '')\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = head.value.replace(/^\\s+/, '')\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastText | HastElement}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastText | HastElement} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: all(state, node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n * Whether to add line endings at start and end.\n * @returns {Array<Type | HastText>}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array<Type | HastText>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n * Node to check.\n * @returns {boolean}\n * Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n return (\n !node ||\n !node.position ||\n !node.position.start ||\n !node.position.start.line ||\n !node.position.start.column ||\n !node.position.end ||\n !node.position.end.line ||\n !node.position.end.column\n )\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\nexport function footer(state) {\n /** @type {Array<ElementContent>} */\n const listItems = []\n let index = -1\n\n while (++index < state.footnoteOrder.length) {\n const def = state.footnoteById[state.footnoteOrder[index]]\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array<ElementContent>} */\n const backReferences = []\n\n while (++referenceIndex <= state.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: state.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: state.clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: state.footnoteLabelTagName,\n properties: {\n // To do: use structured clone.\n ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: state.footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor<any, any, any, any>} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason` at `place` from `origin`.\n *\n * When an error is passed in as `reason`, the `stack` is copied.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n *\n * > 👉 **Note**: you should use markdown.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // To do: next major: expose `undefined` everywhere instead of `null`.\n constructor(reason, place, origin) {\n /** @type {[string | null, string | null]} */\n const parts = [null, null]\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {line: null, column: null},\n // @ts-expect-error: \"\n end: {line: null, column: null}\n }\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = undefined\n }\n\n if (typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n // To do: next major: deep clone.\n // @ts-expect-error: looks like a position.\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n // @ts-expect-error: looks like a position.\n // To do: next major: deep clone.\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n // To do: next major: deep clone.\n position.start = place\n }\n }\n\n // Fields from `Error`.\n /**\n * Serialized positional info of error.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(place) || '1:1'\n\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = typeof reason === 'object' ? reason.message : reason\n\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack = ''\n\n if (typeof reason === 'object' && reason.stack) {\n this.stack = reason.stack\n }\n\n /**\n * Reason for message.\n *\n * > 👉 **Note**: you should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /* eslint-disable no-unused-expressions */\n /**\n * State of problem.\n *\n * * `true` — marks associated file as no longer processable (error)\n * * `false` — necessitates a (potential) change (warning)\n * * `null | undefined` — for things that might not need changing (info)\n *\n * @type {boolean | null | undefined}\n */\n this.fatal\n\n /**\n * Starting line of error.\n *\n * @type {number | null}\n */\n this.line = position.start.line\n\n /**\n * Starting column of error.\n *\n * @type {number | null}\n */\n this.column = position.start.column\n\n /**\n * Full unist position.\n *\n * @type {Position | null}\n */\n this.position = position\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | null}\n */\n this.source = parts[0]\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | null}\n */\n this.ruleId = parts[1]\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | null}\n */\n this.file\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | null}\n */\n this.actual\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | null}\n */\n this.expected\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | null}\n */\n this.url\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | null}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * Check if `fileUrlOrPath` looks like a URL.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileUrlOrPath) {\n return (\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.href &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.origin\n )\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {Record<string, unknown> & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n *\n * This is a copy of the types from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>\n *\n * @typedef {Options | URL | Value | VFile} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {Value | null | undefined} [value]\n * Set `value`.\n * @property {string | null | undefined} [cwd]\n * Set `cwd`.\n * @property {Array<string> | null | undefined} [history]\n * Set `history`.\n * @property {URL | string | null | undefined} [path]\n * Set `path`.\n * @property {string | null | undefined} [basename]\n * Set `basename`.\n * @property {string | null | undefined} [stem]\n * Set `stem`.\n * @property {string | null | undefined} [extname]\n * Set `extname`.\n * @property {string | null | undefined} [dirname]\n * Set `dirname`.\n * @property {Data | null | undefined} [data]\n * Set `data`.\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array<string>} sources\n * An array of URLs to the original source files.\n * @property {Array<string>} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array<string> | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template {ReporterSettings} Settings\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array<VFile>} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport bufferLike from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n *\n * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}\n */\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Buffer` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n options = value\n }\n\n /**\n * Place to store custom information (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * List of filepaths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {string | URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the parent path (example: `'~'`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Buffer`\n * (default: `'utf8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n return (this.value || '').toString(encoding || undefined)\n }\n\n /**\n * Create a warning message associated with the file.\n *\n * Its `fatal` is set to `false` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Create an info message associated with the file.\n *\n * Its `fatal` is set to `null` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Create a fatal error associated with the file.\n *\n * Its `fatal` is set to `true` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * > 👉 **Note**: a fatal error means that a file is no longer processable.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Message.\n * @throws {VFileMessage}\n * Message.\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {void}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is a buffer.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Buffer}\n * Whether `value` is a Node.js buffer.\n */\nfunction buffer(value) {\n return bufferLike(value)\n}\n","/// <reference lib=\"dom\" />\n\nimport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>\n\n/**\n * @param {string | URL} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record<string, unknown>} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record<string, unknown>} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record<string, unknown>|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable<unknown[]>} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value\n addPlugin(plugin, ...options)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise<Node>|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise<VFile>|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record<string, unknown>} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef {import('unist').Node} Node\n */\n\n/**\n * @typedef {Array<Node> | string} ChildrenOrValue\n * List to use as `children` or value to use as `value`.\n *\n * @typedef {Record<string, unknown>} Props\n * Other fields to add to the node.\n */\n\n/**\n * Build a node.\n *\n * @param type\n * Node type.\n * @param props\n * Fields assigned to node.\n * @param value\n * Children of node or value of `node` (cast to string).\n * @returns\n * Built node.\n */\nexport const u =\n /**\n * @type {(\n * (<T extends string>(type: T) => {type: T}) &\n * (<T extends string, P extends Props>(type: T, props: P) => {type: T} & P) &\n * (<T extends string>(type: T, value: string) => {type: T, value: string}) &\n * (<T extends string, P extends Props>(type: T, props: P, value: string) => {type: T, value: string} & P) &\n * (<T extends string, C extends Array<Node>>(type: T, children: C) => {type: T, children: C}) &\n * (<T extends string, P extends Props, C extends Array<Node>>(type: T, props: P, children: C) => {type: T, children: C} & P)\n * )}\n */\n (\n /**\n * @param {string} type\n * @param {Props | ChildrenOrValue | null | undefined} [props]\n * @param {ChildrenOrValue | null | undefined} [value]\n * @returns {Node}\n */\n function (type, props, value) {\n /** @type {Node} */\n const node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n // @ts-expect-error: create a parent.\n node.children = value\n } else if (value !== undefined && value !== null) {\n // @ts-expect-error: create a literal.\n node.value = String(value)\n }\n\n return node\n }\n )\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record<string, unknown>} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<string | Props | TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array<AssertAnything>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<Ancestor>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor<import('./complex-types.js').Matches<import('./complex-types.js').InclusiveDescendant<Tree>, Check>, Extract<import('./complex-types.js').InclusiveDescendant<Tree>, Parent>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor<Node>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Record<string, unknown>} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {}\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<Parent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {ActionTuple}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor<Visited, ParentsOf<Ancestor, Visited>>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches<Descendant, Check>,\n * Extract<Descendant, Parent>\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n"],"names":["getCssDimensions","element","css","width","parseFloat","height","hasOffset","offsetWidth","offsetHeight","shouldFallback","$","unwrapElement","contextElement","getScale","domElement","rect","getBoundingClientRect","x","y","Number","isFinite","noOffsets","getVisualOffsets","win","visualViewport","offsetLeft","offsetTop","includeScale","isFixedStrategy","offsetParent","clientRect","scale","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","left","top","offsetWin","currentIFrame","frameElement","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","scrollLeft","getClientRectFromClippingAncestor","clippingAncestor","strategy","html","clientWidth","clientHeight","visualViewportBased","getViewportRect","scroll","body","ownerDocument","scrollWidth","scrollHeight","scrollTop","direction","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","parentNode","position","getRectRelativeToOffsetParent","isOffsetParentAnElement","documentElement","offsets","offsetRect","getTrueOffsetParent","polyfill","getOffsetParent","window","platform","convertOffsetParentRelativeRectToViewportRelativeRect","_ref","getDocumentElement","getClippingRect","boundary","rootBoundary","clippingAncestors","cache","cachedResult","get","result","filter","el","currentContainingBlockComputedStyle","elementIsFixed","currentNode","computedStyle","currentNodeIsContaining","includes","ancestor","set","getClippingElementAncestors","this","_c","concat","firstClippingAncestor","clippingRect","reduce","accRect","right","bottom","getElementRects","async","reference","floating","getOffsetParentFn","getDimensionsFn","getDimensions","getClientRects","Array","from","isElement","isRTL","autoUpdate","update","options","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","forEach","addEventListener","passive","cleanupIo","onMove","timeoutId","io","root","cleanup","clearTimeout","disconnect","refresh","skip","threshold","rootMargin","isFirstUpdate","handleObserve","entries","ratio","intersectionRatio","setTimeout","e","observe","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","target","unobserve","cancelAnimationFrame","requestAnimationFrame","prevRefRect","frameLoop","nextRefRect","removeEventListener","computePosition","Map","mergedOptions","platformWithCache","Object","defineProperty","exports","value","clearAll","sessionStorage","localStorage","map","s","clearStorage","clearNonPersistent","k","startsWith","_scopedstorage","default","GLOBAL_SCOPE_PERSISTENT","getBuilder","appId","_storagebuilder","_interopRequireDefault","obj","__esModule","storage","pred","keys","removeItem","bind","ICAL","uuid","AbstractParser","constructor","TypeError","_options","assign","_name","_color","_sourceURL","_refreshInterval","_calendarTimezone","_errors","getName","getColor","offersWebcalFeed","getSourceURL","getRefreshInterval","getCalendarTimezone","parse","data","getItemIterator","getAllItems","containsVEvents","containsVJournals","containsVTodos","containsVFreeBusy","hasErrors","length","getErrorList","slice","getItemCount","_getOption","name","defaultValue","prototype","hasOwnProperty","call","getMimeTypes","ModificationNotAllowedError","Error","lockableTrait","baseClass","args","super","_mutable","isLocked","lock","unlock","_modify","_modifyContent","ExpectedICalJSError","lc","str","toLowerCase","uc","toUpperCase","ucFirst","charAt","startStringWith","startWith","GLOBAL_CONFIG","getConfig","key","createProperty","propertyName","Property","observerTrait","_subscribers","subscribe","handler","push","unsubscribe","index","indexOf","splice","_notifySubscribers","Parameter","_value","getFirstValue","isMultiValue","getValueIterator","Symbol","iterator","isArray","clone","parameter","AbstractValue","icalValue","_innerValue","toICALJs","BinaryValue","rawValue","decodeValue","decodedValue","setEncodedValue","fromRawValue","fromICALJs","icalBinary","Binary","fromDecodedValue","DurationValue","weeks","days","hours","minutes","seconds","isNegative","totalSeconds","toSeconds","fromSeconds","compare","otherDuration","addDuration","normalize","subtractDuration","icalDuration","Duration","fromData","DateTimeValue","year","month","day","hour","minute","second","timezoneId","zone","tzid","timezone","isDate","unixTime","toUnixTime","jsDate","toJSDate","duration","subtractDateWithoutTimezone","other","subtractDate","subtractDateWithTimezone","subtractDateTz","compareDateOnlyInGivenTimezone","compareDateOnlyTz","toICALTimezone","getInTimezone","clonedICALTime","convertToZone","getICALTimezone","getInICALTimezone","getInUTC","Timezone","utcTimezone","silentlyReplaceTimezone","Time","replaceTimezone","utcOffset","isFloatingTime","fromJSDate","useUTC","undefined","SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","DEFAULT_WEEK_START","PeriodValue","_start","start","_end","_duration","end","getEnd","getDuration","fromDataWithEnd","icalPeriod","Period","fromDataWithDuration","ALLOWED_FREQ","RecurValue","until","_until","interval","parseInt","weekStart","wkst","count","frequency","freq","setToInfinite","isByCount","addComponent","componentName","setComponent","parts","removeComponent","getComponent","isRuleValid","icalRecur","Recur","UTCOffsetValue","factor","icalUTCOffset","UtcOffset","UnknownICALTypeError","getConstructorForICALType","icaltype","parameters","parent","_parameters","_root","_parent","_setParametersFromConstructor","addValue","hasValue","removeValue","setParameter","getParameter","parameterName","getParametersIterator","values","getParameterFirstValue","hasParameter","has","deleteParameter","delete","updateParameterIfExist","isDecoratedValue","_cloneValue","val","icalProperty","isDecorated","getValues","toJSON","paramName","setValues","setValue","firstValue","AttachmentProperty","formatType","fmtType","uri","encoding","binaryValue","property","fromLink","AttendeeProperty","role","allowed","userType","rsvp","commonName","participationStatus","vobjectType","VEVENT","VJOURNAL","VTODO","language","email","member","members","isOrganizer","fromNameAndEMail","fromNameEMailRoleUserTypeAndRSVP","design","icalendar","conference","defaultType","param","feature","valueType","multiValue","ConferenceProperty","getFeatureIterator","listAllFeatures","addFeature","featureToAdd","hasFeature","removeFeature","clearAllFeatures","label","fromURILabelAndFeatures","features","FreeBusyProperty","type","fromPeriodAndType","period","GeoProperty","latitude","lat","longitude","long","fromPosition","ImageProperty","display","RelationProperty","relationType","relatedId","fromRelTypeAndId","relType","relId","RequestStatusProperty","statusCode","toString","Math","floor","statusMessage","exceptionData","isPending","isSuccessful","isClientError","isSchedulingError","fromCodeAndMessage","code","message","SUCCESS","SUCCESS_FALLBACK","SUCCESS_PROP_IGNORED","SUCCESS_PROPPARAM_IGNORED","SUCCESS_NONSTANDARD_PROP_IGNORED","SUCCESS_NONSTANDARD_PROPPARAM_IGNORED","SUCCESS_COMP_IGNORED","SUCCESS_FORWARDED","SUCCESS_REPEATING_IGNORED","SUCCESS_TRUNCATED_END","SUCCESS_REPEATING_VTODO_IGNORED","SUCCESS_UNBOUND_RRULE_CLIPPED","CLIENT_INVALID_PROPNAME","CLIENT_INVALID_PROPVALUE","CLIENT_INVALID_PROPPARAM","CLIENT_INVALID_PROPPARAMVALUE","CLIENT_INVALUD_CALENDAR_COMP_SEQ","CLIENT_INVALID_DATE_TIME","CLIENT_INVALID_RRULE","CLIENT_INVALID_CU","CLIENT_NO_AUTHORITY","CLIENT_UNSUPPORTED_VERSION","CLIENT_TOO_LARGE","CLIENT_REQUIRED_COMP_OR_PROP_MISSING","CLIENT_UNKNOWN_COMP_OR_PROP","CLIENT_UNSUPPORTED_COMP_OR_PROP","CLIENT_UNSUPPORTED_CAPABILITY","SCHEDULING_EVENT_CONFLICT","SERVER_REQUEST_NOT_SUPPORTED","SERVER_SERVICE_UNAVAILABLE","SERVER_INVALID_CALENDAR_SERVICE","SERVER_NO_SCHEDULING_FOR_USER","TextProperty","alternateText","altRep","TriggerProperty","related","isRelative","fromAbsolute","alarmTime","fromRelativeAndRelated","alarmOffset","relatedToStart","getConstructorForPropertyName","propName","AbstractComponent","properties","components","_properties","_components","_setPropertiesFromConstructor","_setComponentsFromConstructor","getPropertyIterator","component","getComponentIterator","getFirstProperty","getFirstPropertyFirstValue","updatePropertyWithValue","newProperty","addProperty","hasProperty","_getAllOfPropertyByLang","lang","_getFirstOfPropertyByLang","next","arr","deleteProperty","deleteAllProperties","getFirstComponent","hasComponent","deleteComponent","deleteAllComponents","Component","newComponent","icalProp","getAllProperties","icalComp","getAllSubcomponents","_getConstructorForComponentName","prop","comp","addSubcomponent","advertiseSingleOccurrenceProperty","advertiseValueOnly","iCalendarName","pluralName","allowedValues","unknownValue","getDefaultOncePropConfig","advertiseMultipleOccurrenceProperty","getDefaultMultiplePropConfig","advertiseMultiValueStringPropertySeparatedByLang","languageParameter","dateFactory","Date","RecurringWithoutDtStartError","RecurrenceManager","masterItem","_masterItem","_recurrenceExceptionItems","_rangeRecurrenceExceptionItemsIndex","_rangeRecurrenceExceptionItemsDiffCache","_rangeRecurrenceExceptionItems","getRecurrenceExceptionIterator","getRecurrenceExceptionList","hasRecurrenceExceptionForId","recurrenceId","getRecurrenceException","hasRangeRecurrenceExceptionForId","getRangeRecurrenceExceptionForId","helpers","binsearchInsert","a","b","getRangeRecurrenceExceptionDiff","recurrenceException","originalRecurrenceId","difference","startDate","relateRecurrenceException","recurrenceExceptionItem","_getRecurrenceIdKey","modifiesFuture","recurrenceManager","removeRecurrenceException","removeRecurrenceExceptionByRecurrenceId","getRecurrenceRuleIterator","getRecurrenceRuleList","addRecurrenceRule","recurrenceRule","resetCache","removeRecurrenceRule","clearAllRecurrenceRules","getRecurrenceDateIterator","_getPropertiesForRecurrenceDate","listAllRecurrenceDates","addRecurrenceDate","_getValueTypeByValue","first","markPropertyAsDirty","_getPropertyNameByIsNegative","hasRecurrenceDate","getRecurrenceDate","valueToCheck","removeRecurrenceDate","allValues","clearAllRecurrenceDates","every","rule","isEmptyRecurrenceSet","_getRecurExpansionObject","getOccurrenceAtExactly","isRecurring","getReferenceRecurrenceId","icalRecurrenceId","_getOccurrenceAtRecurrenceId","getClosestOccurrence","previous","dateTimeValue","countAllOccurrencesBetween","queriedTimeRangeStart","queriedTimeRangeEnd","isInTimeFrame","queriedICALJsTimeRangeStart","queriedICALJsTimeRangeEnd","getAllOccurrencesBetweenIterator","recurrenceIdKeys","maximumRecurrenceId","max","apply","occurrence","compareDate","endDate","isRecurrenceException","size","getAllOccurrencesBetween","updateUID","newUID","updateStartDateOfMasterItem","newStartDate","oldStartDate","exdate","rrule","canCreateRecurrenceExceptions","forkItem","rangeRecurrenceException","dtstart","last","ruleIterators","ruleDateInc","ruleDates","ruleDate","exDates","ruleValue","rDateValue","exDateValue","exDateInc","exDate","RecurExpansion","complete","ics","_timezoneId","_ics","_initialized","offsetForArray","_initialize","time","timestampToArray","ms","fromUnixTime","local","jCal","utc","localTimezone","AlarmComponent","addAttendeeFromNameAndEMail","attendeeProperty","trigger","setTriggerFromAbsolute","triggerProperty","setTriggerFromRelative","AbstractRecurringComponent","_primaryItem","_isExactForkOfPrimary","_originalRecurrenceId","_recurrenceManager","_dirty","_significantChange","_cachedId","primaryItem","isExactForkOfPrimary","isMasterItem","id","encodeURIComponent","uid","join","isPartOfRecurrenceSet","startDiff","originalTimezone","dtStartValue","recurrenceDate","dtEnd","due","resetDirty","primaryIsRecurring","createRecurrenceException","thisAndAllFuture","previousPrimaryItem","_overridePrimaryItem","removeThisOccurrence","v4","addRelation","fromEmpty","attendee","getAttendeeIterator","recurDate","valueDateTimeRecurDate","recurValue","exceptionDate","exception","_addAttendee","addAttendeeFromNameEMailRoleUserTypeAndRSVP","setOrganizerFromNameAndEMail","addAttachmentFromData","addAttachmentFromLink","addContact","contact","addComment","comment","addImageFromData","addImageFromLink","addRequestStatus","addAbsoluteAlarm","action","alarmComp","addRelativeAlarm","markDirty","markChangesAsSignificant","markSubComponentAsDirty","isDirty","undirtify","sequence","getTypeOfBirthdayEvent","eventComponent","getDefaultMultipleCompConfig","EventComponent","isAllDay","canModifyAllDay","dtend","setGeographicalPositionFromLatitudeAndLongitude","addConference","addDurationToStart","addDurationToEnd","shiftByDuration","delta","allDay","defaultTimezone","defaultAllDayDuration","defaultTimedDuration","currentAllDay","isBirthdayEvent","getIconForBirthdayEvent","getIconForBirthday","getAgeForBirthdayEvent","yearOfOccurrence","yearOfBirth","getAgeOfBirthday","toICSEntireSeries","toICS","toICSThisOccurrence","FreeBusyComponent","getFreeBusyIterator","JournalComponent","addDescription","description","TimezoneComponent","toTimezone","ToDoComponent","propertiesToCheck","propertyToCheck","dueTime","geographicalPosition","getConstructorForComponentName","compName","CalendarComponent","getTimezoneIterator","getVObjectIterator","getEventIterator","getJournalIterator","getTodoIterator","getFreebusyIterator","cleanUpTimezones","vObject","icalRoot","updateTimezones","additionalProps","fromMethod","method","AbstractRepairStep","repair","input","priority","ICalendarAddMissingUIDRepairStep","replace","match","vobjectName","vObjectBlock","ICalendarAddMissingValueDateDoubleColonRepairStep","date","ICalendarAddMissingValueDateRepairStep","_","ICalendarEmptyTriggerRepairStep","ICalendarIllegalCreatedRepairStep","ICalendarMultipleVCalendarBlocksRepairStep","containsProdId","containsVersion","containsCalscale","includedTimezones","Set","tzidMatcher","add","ICalendarRemoveXNCGroupIdRepairStep","tzData","version","aliases","aliasTo","GMT","GMT0","Greenwich","UCT","Universal","Z","Zulu","zones","TimezoneManager","_aliases","_timezones","getTimezoneForId","_getTimezoneForIdRec","level","console","error","resolvedTimezoneId","hasTimezoneForId","isAlias","listAllTimezones","includeAliases","timezones","registerTimezone","registerDefaultTimezones","debug","registerTimezoneFromICS","registerAlias","aliasName","unregisterTimezones","unregisterAlias","clearAllTimezones","timezoneManager","getTimezoneManager","ICalendarParser","_rawData","_calendarComponent","_containsVEvents","_containsVJournals","_containsVTodos","_containsVFreeBusy","_items","_masterItems","_forgedMasterItems","_requiredTimezones","_defaultTimezoneManager","_applyRepairSteps","_extractTimezones","_registerTimezones","_createCalendarComponent","_extractProperties","_processVObjects","_processVFreeBusy","itemList","calendarComp","_addRequiredTimezonesToCalendarComp","item","RepairStep","getRepairSteps","step","_extractPropertyAndPutResultIntoVariable","names","variableName","matches","_addItem","_markCompTypeAsSeen","_addRecurrenceException","_addRequiredTimezone","alarm","getAlarmIterator","recurrenceExceptionList","master","forgedMaster","stampTime","requiredTimezone","_replaceTimezoneWithAnotherOne","timezoneComponent","calendarComponent","searchTimezone","ParserManager","_parsers","getAllSupportedFileTypes","allFileTypes","parser","getParserForFileType","fileType","Parser","find","registerParser","getParserManager","parserManager","TimezoneAdapter","_timezoneManager","register","remove","reset","IllegalValueError","getReadableTimezoneName","split","TimezoneService","createEvent","calendar","createFreeBusyRequest","organizer","attendees","freeBusyComponent","clonedAttendee","getSortedTimezoneList","timezoneList","additionalTimezones","globalTimezoneName","sortedByContinent","sortedList","continent","shift","regions","cities","additionalTimezone","sort","isOlsonTimezone","tzName","hasSlash","hasSpace","startsWithETC","startsWithUS","parseICSAndGetAllOccurrencesBetween","icsParser","firstVObject","setConfig","factory","GetText","GettextBuilder","translations","setLanguage","locale","detectLocale","document","addTranslation","enableDebugMode","build","GettextWrapper","gt","sourceLocale","addTranslations","setLocale","subtitudePlaceholders","translated","vars","r","gettext","original","placeholders","ngettext","singular","plural","buffer","_interopDefaultLegacy","isSvg__default","readAsText","svg","Promise","resolve","isFile","fileReader_1","FileReader","onload","sanitizeSVG","thisArg","_arguments","generator","svgText","div","svgEl","attributes","hasScriptAttr","f","t","g","sent","trys","ops","verb","n","v","op","done","pop","__generator","_a","Buffer","isBuffer","File","createElement","innerHTML","firstElementChild","attr","getElementsByTagName","P","reject","fulfilled","rejected","then","XMLParser","XMLValidator","isSvg","trim","validate","jsonObject","module","___CSS_LOADER_EXPORT___","validator","XMLBuilder","exportName","VENDOR_PREFIXES","TEST_ELEMENT","TYPE_FUNCTION","round","abs","now","setTimeoutContext","fn","timeout","context","bindFn","invokeArrayArg","arg","each","i","deprecate","deprecationMessage","stack","log","warn","arguments","output","source","nextKey","extend","dest","src","merge","inherit","child","base","childP","baseP","create","_super","boolOrFn","ifUndefined","val1","val2","addEventListeners","types","splitStr","removeEventListeners","hasParent","node","inStr","inArray","findByKey","toArray","uniqueArray","results","prefixed","prefix","camelProp","_uniqueId","getWindowForElement","doc","defaultView","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","test","navigator","userAgent","INPUT_TYPE_TOUCH","INPUT_TYPE_MOUSE","COMPUTE_INTERVAL","INPUT_START","INPUT_END","INPUT_CANCEL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","PROPS_XY","PROPS_CLIENT_XY","Input","manager","callback","self","inputTarget","domHandler","ev","enable","init","inputHandler","eventType","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","timeStamp","deltaTime","angle","getAngle","distance","getDistance","offset","offsetDelta","prevDelta","prevInput","deltaX","deltaY","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","rotation","getRotation","maxPointers","velocity","velocityX","velocityY","lastInterval","computeIntervalInputData","srcEvent","computeInputData","emit","recognize","clientX","clientY","p1","p2","props","sqrt","atan2","PI","evEl","evTarget","evWin","destroy","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","MouseInput","pressed","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","store","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SingleTouchInput","started","normalizeSingleTouches","all","touches","changed","changedTouches","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","TouchInput","targetIds","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","touch","DEDUP_TIMEOUT","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","style","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","TouchAction","compute","actions","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","preventDefault","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_POSSIBLE","STATE_FAILED","Recognizer","defaults","state","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","Hammer","preset","Manager","handlers","oldCssProps","inputClass","toggleCssProps","recognizeWith","requireFailure","cssProps","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","event","additionalEvent","tryEmit","canEmit","inputDataClone","process","attrTest","optionPointers","isRecognized","isValid","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","stop","force","stopped","curRecognizer","existing","on","events","off","gestureEvent","initEvent","gesture","dispatchEvent","triggerDomEvent","INPUT_MOVE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","Tap","Pan","Swipe","Pinch","Rotate","Press","getTime","o","d","enumerable","toStringTag","Anchors","Category","J","Emoji","W","EmojiData","EmojiIndex","q","EmojiView","R","Picker","oe","Preview","Search","K","Skins","X","frequently","w","sanitize","N","c","uncompress","JSON","stringify","setNamespace","setHandlers","getter","setter","u","l","h","unified","non_qualified","has_img_apple","has_img_google","has_img_twitter","has_img_facebook","keywords","sheet","emoticons","text","short_names","added_in","m","return","getOwnPropertyNames","freeze","p","compressed","emojis","unshift","sheet_x","sheet_y","toFixed","search","j","min","reverse","activity","custom","flags","foods","nature","objects","smileys","people","places","recent","symbols","C","render","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","beforeCreate","i18n","required","color","String","categories","activeCategory","created","svgs","$createElement","_self","staticClass","attrs","_l","class","click","$emit","domProps","_s","_v","backgroundColor","E","S","configurable","writable","O","fromCodePoint","RangeError","fromCharCode","A","M","I","F","z","L","T","emojisToShowFilter","include","exclude","recentLength","_data","_emojisFilter","_include","_exclude","_custom","_recent","_emojis","_nativeEmojis","_emoticons","_categories","_recentCategory","_customCategory","_searchIndex","buildIndex","isCategoryNeeded","addEmoji","addCustomEmoji","hasEmoji","emoji","getSkin","substr","isEmojiNeeded","native","_skins","skin_variations","skin_tone","_sanitized","short_name","Boolean","_emoji","_native","_skin","_set","_fallback","canRender","_canRender","cssClass","_cssClass","cssStyle","_cssStyle","content","_content","title","ariaLabel","_isCustom","_isNative","_hasEmoji","_emojiType","backgroundImage","getEmoji","imageUrl","backgroundSize","backgroundPosition","getPosition","fontSize","colons","skin","D","B","tooltip","fallback","Function","tag","H","perLine","maxSearchResults","emojiSize","defaultSkin","emojiTooltip","autoFocus","showPreview","showSearch","showCategories","showSkinTones","infiniteScroll","pickerStyles","U","getOwnPropertySymbols","getOwnPropertyDescriptor","V","getOwnPropertyDescriptors","defineProperties","emits","computed","view","emojiObject","sanitizedData","findEmoji","methods","onClick","onMouseEnter","onMouseLeave","mouseenter","mouseleave","_e","emojiProps","activeClass","selectedEmoji","selectedEmojiCategory","isVisible","isSearch","hasResults","emojiObjects","emojiView","onEnter","onLeave","notfound","opened","idleEmoji","skinProps","onSkinChange","emojiData","emojiShortNames","emojiEmoticons","change","G","onSearch","onArrowLeft","onArrowRight","onArrowDown","onArrowUp","emojiIndex","watch","clear","mounted","$el","querySelector","focus","directives","rawName","expression","placeholder","keydown","_k","keyCode","composing","Q","Y","_vm","_perLine","searchEmojis","previewEmoji","previewEmojiCategoryIdx","previewEmojiIdx","$refs","filteredCategories","getCategoryComponent","updatePreviewEmoji","emojisLength","$nextTick","ee","te","ie","ne","activeSkin","customStyles","calculateWidth","previewEmojiCategory","onEmojiEnter","onEmojiLeave","onEmojiClick","overflow","appendChild","removeChild","mergedI18n","firstEmoji","onScroll","waitingForPaint","onScrollPaint","onAnchorClick","onTextSelect","stopPropagation","re","allCategories","_t","ref","arrowLeft","arrowRight","arrowDown","arrowUp","enter","select","refInFor","propertyIsEnumerable","horizontal","pushOtherPanes","dblClickSplitter","rtl","firstSplitter","provide","requestUpdate","onPaneAdd","onPaneRemove","onPaneClick","container","ready","panes","mouseDown","dragging","activeSplitter","splitterTaps","splitter","panesCount","indexedPanes","updatePaneComponents","bindEvents","onMouseMove","onMouseUp","unbindEvents","onMouseDown","calculatePanesSize","getCurrentMouseDrag","onSplitterClick","onSplitterDblClick","getCurrentDragPercentage","prevPanesSize","sumPrevPanesSize","nextPanesSize","sumNextPanesSize","prevReachedMinPanes","nextReachedMinPanes","doPushOtherPanes","sums","panesToResize","findPrevExpandedPane","findNextExpandedPane","checkSplitpanesNodes","children","classList","contains","addSplitter","onmousedown","ontouchstart","onclick","ondblclick","insertBefore","removeSplitter","redoSplitters","className","_uid","some","minSize","maxSize","isNaN","givenSize","resetPaneSizes","addedPane","findIndex","removedPane","removed","equalizeAfterAddOrRemove","equalize","initialPanesSizing","readjustSizes","deep","immediate","querySelectorAll","beforeDestroy","$slots","inject","sizeNumber","minSizeNumber","maxSizeNumber","Pane","Splitpanes","ampersandTest","nativeURLSearchParams","URLSearchParams","isSupportObjectConstructor","decodesPlusesCorrectly","isSupportSize","__URLSearchParams__","encodesAmpersandsCorrectly","append","URLSearchParamsPolyfill","iterable","appendTo","dict","getAll","query","encode","propValue","useProxy","Proxy","construct","USPProto","parseToDict","items","makeIterator","prev","cur","decode","decodeURIComponent","pairs","_nil","_parse","_stringify","_v2","_v3","_v4","_validate","_version","getOutputLength","inputLength8","safeAdd","lsw","md5cmn","num","cnt","md5ff","md5gg","md5hh","md5ii","bytes","msg","unescape","Uint8Array","charCodeAt","length32","hexTab","hex","md5ToHexEncodedArray","len","olda","oldb","oldc","oldd","wordsToMd5","length8","Uint32Array","bytesToWords","_default","randomUUID","crypto","getRandomValues","rnds8","ROTL","ceil","pow","unsafeStringify","byteToHex","_rng","_nodeId","_clockseq","_lastMSecs","_lastNSecs","buf","clockseq","seedBytes","random","rng","msecs","nsecs","dt","tl","tmh","_md","URL","DNS","hashfunc","generateUUID","namespace","_namespace","stringToBytes","err","rnds","_sha","_regex","sources","mappings","sourcesContent","sourceRoot","hash","needQuotes","btoa","media","sourceMap","layer","references","updater","byIndex","domAPI","HTMLIFrameElement","contentDocument","head","setAttributes","insert","nc","setAttribute","insertStyleElement","styleTagTransform","styleSheet","cssText","firstChild","createTextNode","baseURI","location","href","TO","hs","zR","gs","Js","xQ","uy","Bt","Iw","ji","ih","Qi","Iz","na","xU","oa","rr","va","L1","ya","L_","Ra","O3","ga","Mb","Qa","ZJ","Ka","Yx","Va","yS","dr","ZL","Tr","_I","Sr","eq","Br","tn","hX","co","zQ","To","AR","yo","NI","wo","MX","Xo","V$","is","Xu","Ns","j1","Mv","$c","Xn","ze","$U","Ls","fg","P2","si","rw","El","qF","Ll","JN","Wl","YJ","sA","_2","tA","kC","Kn","P4","$n","fA","SL","I6","FA","ar","YA","nR","bt","FK","Xe","hx","PA","Ic","ln","lb","Xt","lQ","me","Jc","Ho","Z2","tc","qH","sc","qf","vc","pS","Di","Fh","Ot","Rs","Ht","Tz","kc","wQ","Yc","Xj","Np","rE","gp","Op","QG","Cn","iR","$p","gE","Qp","h3","Zi","cY","En","uq","iu","Oa","BW","Ry","Uc","jc","gP","au","rm","se","tq","Ae","bf","De","iQ","Re","s9","before","util","$destroy","beforeUpdate","getText","isLongText","mixins","icon","closeAfterClick","ariaHidden","nameTitleFallback","isIconUrl","$parent","closeMenu","disabled","isFocusable","locals","focusable","textContent","defineComponent","_setupProxy","checked","checkInput","onChange","checkbox","ctrlKey","shiftKey","altKey","metaKey","for","Actions","Activities","Choose","Close","Custom","Favorite","Flags","Global","Next","Objects","Open","Previous","Settings","Submit","Symbols","pluralId","msgid","msgid_plural","msgstr","tt","et","nt","it","detectUser","setApp","at","rt","st","lt","At","ct","pt","ut","mt","ht","highlight","ranges","chunks","Ct","Tt","vt","NcHighlight","needsTruncate","part1","part2","highlight1","highlight2","ft","Et","xt","yt","St","Dt","_nc_focus_trap","kt","Dropdown","inheritAttrs","popoverBaseClass","focusTrap","setReturnFocus","HTMLElement","SVGElement","clearFocusTrap","useFocusTrap","popover","popperContent","$focusTrap","createFocusTrap","escapeDeactivates","allowOutsideClick","trapStack","activate","deactivate","afterShow","afterHide","wt","Nt","Ft","Rt","_g","_b","scopedSlots","_u","proxy","$attrs","$listeners","Zt","iconIsUrl","Mt","Yt","It","Gt","Lt","NcPopoverMenuItem","download","rel","longtext","active","submit","model","_i","$set","_q","menu","$t","jt","Ut","Pt","zt","Wt","appearance","colors","qt","Qt","Kt","Vt","Jt","viewBox","fill","ae","excludeClickOutsideSelectors","excludeClickOutsideClasses","clickOutsideOptions","ignore","isFullscreen","_isFullscreen","beforeMount","_onResize","outerHeight","screen","le","isMobile","handleWindowResize","$on","onIsMobileChanged","$off","ce","de","iconUrl","primary","avatarUrl","getAvatarUrl","mentionText","generateUrl","user","pe","ue","contenteditable","he","ge","Ce","defaultProtocol","Te","be","ve","fe","Ee","xe","ye","RegExp","Se","userData","renderContent","flat","genSelectTemplate","parseContent","autocompleteTribute","current","collection","renderComponentHtml","propsData","$mount","ke","we","Ne","Fe","hasStatus","userStatus","status","fetchUserStatus","getCapabilities","user_status","enabled","getCurrentUser","generateOcsUrl","userId","ocs","response","Be","Oe","Ze","Me","Ye","persist","Ie","setItem","Ge","ClickOutside","vOnClickOutside","DotsHorizontal","NcLoadingIcon","NcPopover","NcPopoverMenu","url","iconClass","showUserStatus","showUserStatusCompact","preloadedUserStatus","isGuest","displayName","allowPlaceholder","disableTooltip","disableMenu","tooltipMessage","isNoUser","menuPosition","menuContainer","Element","avatarUrlLoaded","avatarSrcSetLoaded","userDoesNotExist","isAvatarLoaded","isMenuLoaded","contactsMenuLoading","contactsMenuActions","contactsMenuOpenState","avatarAriaLabel","hasMenu","canDisplayUserStatus","showUserStatusIconOnAvatar","getUserIdentifier","isDisplayNameDefined","isUserDefined","isUrlDefined","shouldShowPlaceholder","avatarStyle","lineHeight","initialsWrapperStyle","initialsStyle","initials","codePointAt","hyperlink","loadAvatarUrl","handleUserStatusUpdated","handlePopoverAfterShow","popoverMenu","handlePopoverAfterHide","main","toggleMenu","fetchContactsMenu","post","topAction","updateImageIfValid","avatarUrlGenerator","getComputedStyle","getPropertyValue","oc_userconfig","avatar","getItem","Image","onerror","srcset","Le","$e","je","Ue","Pe","tabindex","alt","placement","shown","He","We","cleanSvg","qe","Qe","Ke","Ve","Je","NcAvatar","NcIconSvgWrapper","subtitle","iconSvg","iconTitle","avatarSize","noMargin","margin","hasIcon","hasIconSvg","isValidSubtitle","isSizeBigEnough","cssVars","en","nn","an","rn","sn","An","cn","ChevronDown","NcEllipsisedOption","NcListItemIcon","VueSelect","appendToBody","calculatePosition","closeOnSelect","Deselect","fillColor","cursor","limit","filterBy","inputId","keyboardFocusBorder","loading","multiple","noWrap","localCalculatePosition","toggle","middleware","flip","limiter","limitShift","localFilterBy","toLocaleLowerCase","localLabel","propsToForward","$props","dn","pn","un","mn","hn","gn","$scopedSlots","Tn","NcSelect","selectedTimezone","i8","Ao","j3","isSelectable","matchTimezoneId","bn","vn","clearable","selectable","xn","yn","Sn","Dn","kn","wn","Nn","Fn","datetime","week","Rn","CalendarBlank","DatePicker","NcTimezonePicker","Web","minuteStep","format","formatter","showTimezoneSelect","highlightTimezone","showWeekNumber","showTimezonePopover","tzVal","defaultLang","formatLocale","months","getMonthNames","monthsShort","getMonthNamesShort","weekdays","getDayNames","weekdaysShort","getDayNamesShort","weekdaysMin","getDayNamesMin","firstDayOfWeek","getFirstDay","monthFormat","defaultPlaceholder","formatTypeMap","handleSelectYear","datepicker","currentValue","setFullYear","selectDate","handleSelectMonth","setMonth","toggleTimezonePopover","Bn","_n","On","Zn","Mn","Yn","In","Gn","Ln","jn","Un","hideLabel","formattedValue","formatValue","formattedMin","formattedMax","listeners","valueAsNumber","yyyy","MM","dd","getReadableDate","getMonth","padStart","hh","mm","getTimezoneOffset","getFullYear","getDate","getHours","getMinutes","Pn","zn","Hn","Wn","qn","Qn","Vn","Jn","ti","ei","nativeType","wide","to","exact","navigate","isActive","isExactActive","ni","ii","ai","ri","oi","li","Ai","ci","di","pi","NcButton","AlertCircle","Check","labelOutside","labelVisible","showTrailingButton","trailingButtonLabel","success","helperText","computedId","inputName","hasLeadingIcon","hasTrailingIcon","hasPlaceholder","computedPlaceholder","isValidLabel","handleInput","handleTrailingButtonClick","ui","mi","hi","gi","Ci","Ti","bi","vi","fi","Ei","NcInputField","Eye","EyeOff","checkPasswordStrength","minlength","maxlength","isPasswordHidden","internalHelpMessage","passwordPolicy","loadState","password_policy","computedError","computedSuccess","computedHelperText","rules","minLength","trailingButtonLabelPassword","checkPassword","inputField","togglePasswordVisibility","password","passed","reason","xi","yi","Si","ki","wi","Ni","Fi","Ri","ArrowRight","Undo","trailingButtonIcon","clearTextLabel","Bi","Oi","Mi","NcDatetimePicker","NcDateTimePickerNative","NcPasswordField","NcTextField","idNativeDateTimePicker","isNativePicker","isMultiselectType","nativeDatePickerType","datePickerType","datetimepicker","closePopup","onInput","onSubmit","Yi","Ii","Gi","Li","$i","form","requestSubmit","Ui","Pi","zi","Hi","Wi","qi","Ki","toggleInput","radio","Vi","Ji","Xi","ta","ea","ia","aa","ra","nativeOn","sa","la","open","forceMenu","forceTitle","menuTitle","defaultIcon","boundariesElement","inline","focusIndex","randomId","triggerBtnType","isValidSingleAction","componentOptions","Ctor","extendOptions","openMenu","returnFocus","menuButton","onOpen","focusFirstAction","onMouseFocusAction","activeElement","closest","focusAction","onKeydown","focusPreviousAction","focusNextAction","focusLastAction","removeCurrentActive","preventIfEvent","onFocus","onBlur","origin","blur","slot","delay","handleResize","show","hide","Aa","ca","da","pa","ua","ma","ha","Ta","ba","fa","Ea","xa","Sa","Da","ka","wa","Na","Fa","Ba","themes","VTooltip","Za","toggleAppNavigationButton","Ma","Ya","Ia","Ga","La","$a","ja","Ua","NcAppDetailsToggle","allowSwipeNavigation","listSize","listMinWidth","listMaxWidth","paneConfigKey","showDetails","pageHeading","contentHeight","hasList","listPaneSize","restorePaneConfig","paneConfigID","info","detailsPaneSize","paneDefaults","details","list","updated","checkListSlot","mc","handleSwipe","pageX","handlePaneResize","hideDetails","Pa","za","Ha","Wa","qa","resized","selection","showdetails","Ja","Xa","tr","er","nr","MenuIcon","MenuOpenIcon","toggleNavigation","ir","NcAppNavigationToggle","modifiers","auto","toggleNavigationByEventBus","unmounted","or","sr","lr","Ar","cr","pr","NcActions","hasActions","ur","mr","hr","gr","Cr","br","highlighted","vr","fr","Er","xr","yr","Dr","formattedColor","kr","wr","Nr","Fr","Rr","_r","vnodes","Or","Zr","Mr","ChevronUp","labelButton","Yr","Ir","Gr","Lr","labelConfirm","labelCancel","valueModel","confirm","cancel","focusInput","$r","jr","Ur","Pr","zr","Hr","Wr","qr","Qr","Kr","Vr","NcActionButton","NcAppNavigationIconCollapsible","NcInputConfirmCancel","NcVNodes","Pencil","allowCollapse","editable","editLabel","editPlaceholder","pinned","undo","menuOpen","menuIcon","menuPlacement","ariaDescription","forceDisplayActions","inlineActions","editingValue","editingActive","hasChildren","menuOpenLocalValue","focused","isRouterLink","collapsible","canHaveChildren","_componentTag","hasUtils","counter","editButtonAriaLabel","undoButtonAriaLabel","actionsBoundariesElement","updateSlotInfo","onMenuToggle","toggleCollapse","handleEdit","editingInput","cancelEditing","handleEditingDone","handleUndo","handleFocus","handleBlur","handleTab","isExternal","Jr","Xr","eo","no","ao","buttonId","ro","oo","so","lo","po","newItemValue","newItemActive","handleNewItem","newItemInput","cancelNewItem","handleNewItemDone","uo","mo","ho","go","Co","bo","vo","fo","Cog","clickOutsideConfig","Eo","xo","Do","ko","No","pause","getTimeLeft","getStateRunning","Fo","Ro","Bo","_o","Oo","Zo","Mo","Yo","Io","ChevronLeft","ChevronRight","Pause","Play","hasPrevious","hasNext","outTransition","enableSlideshow","slideshowDelay","slideshowPaused","enableSwipe","spreadNavigation","canClose","dark","closeButtonContained","additionalTrapElements","playing","slideshowTimeout","iconSize","randId","internalShow","showModal","modalTransitionName","playPauseTitle","cssVariables","closeButtonAriaLabel","prevButtonAriaLabel","nextButtonAriaLabel","mask","updateContainerElements","handleKeydown","lastChild","destroyed","resetSlideshow","close","togglePlayPause","handleSlideshow","clearSlideshowTimeout","fallbackFocus","Go","Lo","$o","jo","Uo","Po","appear","stroke","cx","cy","currentTarget","invisible","zo","Wo","NcModal","showNavigation","selectedSection","linkClicked","addedScrollListener","scroller","hasNavigation","settingsNavigationAriaLabel","settingsScroller","handleScroll","getSettingsNavigation","handleSettingsNavigationClick","getElementById","scrollIntoView","behavior","handleCloseModal","unfocusNavigationItem","handleLinkKeydown","qo","Qo","Ko","Vo","Jo","ts","htmlId","es","ns","as","registerTab","unregisterTab","getActiveTab","activeTab","tabs","hasMultipleTabs","currentTabIndex","updateActive","setActive","focusPreviousTab","focusActiveTab","focusNextTab","focusFirstTab","focusLastTab","focusActiveTabContent","order","OC","Util","naturalSortCompare","rs","os","ss","renderIcon","ls","hasTitle","hasDescription","As","cs","ds","ps","us","inserted","linkify","Cs","Ts","bs","vs","fs","NcAppSidebarTabs","NcEmptyContent","Star","StarOutline","Tooltip","titleEditable","titlePlaceholder","subtitleTooltip","background","starred","starLoading","compact","empty","linkifyTitle","titleTooltip","changeTitleTranslated","closeTranslated","favoriteTranslated","isStarred","canStar","hasFigure","header","hasFigureClickListener","onBeforeEnter","onAfterEnter","onBeforeLeave","onAfterLeave","closeSidebar","onFigureClick","toggleStarred","editTitle","titleInput","onTitleInput","onSubmitTitle","onDismissEditing","onUpdateActive","Es","xs","ys","Ss","Ds","ks","ws","Fs","expose","Bs","Os","disableDrop","hovering","crumbId","linkAttributes","onOpenChange","dropped","dragEnter","dragLeave","relatedTarget","crumb","Zs","Ms","Ys","Is","Gs","draggable","dragstart","drop","dragover","dragenter","dragleave","_d","$s","js","Us","Ps","zs","Hs","NcActionRouter","NcActionLink","NcBreadcrumb","IconFolder","rootIcon","hiddenIndices","menuBreadcrumbProps","breadcrumbsRefs","delayedResize","hideCrumbs","closeActions","actionsBreadcrumb","getTotalWidth","breadcrumb__actions","getWidth","elm","arraysEqual","minWidth","dragStart","dragOver","isBreadcrumb","Fragment","Ws","qs","Qs","Ks","Vs","Xs","nl","il","al","rl","ol","sl","ll","Al","cl","dl","pl","ul","ml","hl","gl","buttonVariant","buttonVariantGrouped","indeterminate","wrapperElement","inputType","isChecked","checkboxRadioIconElement","onToggle","getInputsSet","getElementsByName","Cl","Tl","bl","vl","fl","xl","yl","Sl","Dl","kl","ArrowLeft","Chrome","advancedFields","palette","currentColor","advanced","ariaBack","ariaMore","handleConfirm","handleClose","handleBack","handleMoreSettings","pickColor","wl","Nl","Fl","Rl","Bl","mode","Ol","appName","Zl","Ml","Yl","Il","Gl","$l","counterClassObject","jl","Ul","Pl","zl","Hl","ql","targetUrl","avatarUsername","avatarIsNoUser","overlayIconUrl","mainText","subText","itemMenu","hovered","gotMenu","gotOverlayIcon","onLinkClick","Ql","Kl","Vl","Jl","Xl","mouseover","eA","NcDashboardWidgetItem","showMoreUrl","showMoreLabel","showItemsAndEmptyContent","emptyContentMessage","halfEmptyContentMessage","displayedItems","maxItemNumber","showHalfEmptyContentArea","halfEmptyContentString","showMore","nA","iA","aA","rA","oA","_m","lA","AA","cA","dA","pA","uA","activeSet","allowUnselect","previewFallbackEmoji","previewFallbackTitle","setup","clearSearch","unselect","picker","checkKeyEvent","mA","hA","gA","CA","TA","bA","vA","EA","xA","yA","SA","DA","kA","wA","NA","RA","shortcutsDisabled","OCP","Accessibility","disableKeyboardShortcuts","onKeyDown","BA","_A","OA","ZA","MA","IA","NcCounterBubble","anchorId","bold","linkAriaLabel","actionsAriaLabel","counterNumber","counterType","hasSubtitle","displayActionsOnHoverFocus","hasIndicator","hasDetails","oneLine","showAdditionalElements","computedActionsAriaLabel","checkSlots","handleMouseover","showActions","hideActions","handleMouseleave","handleActionsUpdateOpen","indicator","GA","LA","$A","jA","UA","extra","zA","HA","WA","qA","VueMultiselect","trackBy","autoLimit","tagWidth","elWidth","ariaExpanded","maxOptions","limitString","localValue","willCloseOnSelect","updateWidth","getOptionLabel","formatLimitTitle","QA","KA","VA","JA","option","XA","ec","nodeType","nodeName","nodeValue","hasChildNodes","childNodes","DOMParser","parseFromString","canAssign","userAssignable","userVisible","ic","NcMultiselect","tags","inputValue","getValueObject","availableOptions","NextcloudVueDocs","generateRemoteUrl","tagLabel","ac","rc","oc","Ac","cc","dc","pc","showAlert","heading","shouldShowAlert","hc","gc","Cc","Tc","bc","fc","Ec","xc","yc","Sc","Dc","wc","labelTranslated","resourceTitle","Nc","Fc","Rc","NcResource","providerId","itemId","fileInfo","appEnabled","appswebroots","related_resources","headerTranslated","resources","hasResourceInfo","isFiles","fetchRelatedResources","Bc","Oc","Zc","Mc","subline","haveStatus","Gc","Lc","_vue_richtext_widgets","_registerWidget","onDestroy","Pc","hasCustomWidget","richObjectType","noAccess","accessible","descriptionStyle","lineClamp","webkitLineClamp","compactLink","openGraphObject","link","substring","renderWidget","observer","contentRect","customWidget","richObject","zc","Hc","Wc","thumb","qc","Qc","Kc","NcReferenceWidget","referenceData","displayedReferences","firstReference","fetch","exec","catch","Vc","Xc","td","ed","nd","autolink","useMarkdown","visit","ad","SKIP","rd","tagName","od","sd","ld","Ad","cd","pd","ud","md","hd","gd","Cd","NcReferenceList","referenceLimit","markdownCssClasses","strong","em","h1","h2","h4","h5","h6","table","pre","blockquote","renderPlaintext","renderMarkdown","use","processSync","Td","bd","vd","fd","Ed","xd","yd","_vue_richtext_custom_picker_elements","Sd","_registerCustomPickerElement","Dd","provider","isRegistered","renderResult","renderElement","object","_isVue","onCancel","detail","kd","wd","Nd","Fd","Rd","icon_url","imagePath","_vue_richtext_reference_providers","search_providers_ids","Zd","_vue_richtext_reference_provider_timestamps","Od","Md","Yd","Id","Gd","Ld","$d","LinkVariantIcon","selectedProvider","multiselectPlaceholder","isLink","onProviderSelected","jd","Ud","Pd","zd","abortController","inputPlaceholder","isLinkValid","onClear","abort","updateReference","AbortController","signal","Hd","Wd","qd","keyup","Qd","entry","Kd","Vd","Jd","rounded","thumbnailUrl","Xd","tp","ep","DotsHorizontalIcon","MagnifyIcon","NcSearchResult","showEmptyContent","searchPlaceholder","searchQuery","selectedResult","resultsBySearchProvider","searching","searchingMoreOf","mySearchPlaceholder","searchProviderIds","rawLinkEntry","formattedSearchResults","resourceUrl","isRawLink","isCustomGroupTitle","isPaginated","isMore","isLoading","resetResults","cancelSearchRequests","onSearchInput","updateSearch","onSelectResultSelected","searchMoreOf","searchProviders","searchOneProvider","allSettled","term","np","ip","ap","rp","providerList","standardLinkInput","searchInput","customElement","sp","NcCustomPickerElement","NcProviderList","NcRawLinkInput","NcSearch","initialProvider","focusOnCreate","MODES","pickerWrapperStyle","onEscapePressed","deselectProvider","cancelProviderSelection","cancelCustomElement","cancelSearch","cancelRawLinkInput","submitLink","timestamp","put","lp","Ap","cp","NcReferencePicker","ArrowLeftIcon","CloseIcon","isInsideViewer","backButtonTitle","closeButtonTitle","closeButtonLabel","isProviderSelected","showBackButton","modalSize","showModalTitle","modalTitle","modal_content","onProviderSelect","onBackClicked","referencePicker","dp","pp","up","mp","hp","Cp","Tp","bp","vp","fp","autoComplete","multiline","emojiAutocomplete","linkAutocomplete","textSmiles","tribute","autocompleteOptions","allowSpaces","fillAttr","lookup","menuItemTemplate","noMatchTemplate","selectTemplate","debouncedAutoComplete","emojiOptions","containerClass","itemClass","linkOptions","getLink","isComposing","isEmptyValue","isFF","isOverMaxlength","tooltipString","canEdit","paste","updateContent","attach","emojiTribute","linkTribute","contentEditable","detach","Bd","replaceWith","setCursorAfter","updateValue","createRange","setEndAfter","collapse","getSelection","removeAllRanges","addRange","onPaste","clipboardData","files","getData","rangeCount","getRangeAt","deleteFromDocument","insertNode","setStart","endOffset","onDelete","isCollapsed","commonAncestorContainer","startOffset","anchorNode","selectNodeContents","setEndBefore","anchorOffset","setEnd","cloneContents","deleteContents","onCtrlEnter","onKeyUp","stopImmediatePropagation","Ep","xp","yp","Sp","Dp","kp","wp","compositionstart","compositionend","Fp","saving","indicatorColor","Rp","Bp","_p","Zp","Mp","Yp","fetchTags","optionsFilter","passthru","availableTags","Ip","Gp","Lp","jp","Up","HelpCircle","docUrl","limitWidth","docTitleTranslated","hasDocUrl","Pp","zp","Hp","Wp","qp","Kp","Vp","NcUserBubbleDiv","avatarImage","isPopoverComponent","popoverEmpty","isAvatarUrl","isCustomAvatar","hasUrl","isLinkComponent","styles","borderRadius","marginLeft","Jp","Xp","tu","eu","nu","global","valueOf","http","listCollection","collectionId","renameCollection","collectionName","getCollectionsByResource","resourceType","resourceId","createCollection","addResource","removeResource","params","observable","collections","addCollections","addCollection","removeCollection","updateCollection","fetchCollectionsByResource","baseResourceType","baseResourceId","addResourceToCollection","detailsOpen","newName","getIcon","typeClass","limitedResources","mimetype","MimeType","getIconUrl","toggleDetails","openRename","shouldshake","rename","autocomplete","autocapitalize","leading","maxWait","trailing","flush","searchCollections","CollectionListItem","selectIsOpen","generatingCodes","codes","Collaboration","getTypes","getLabel","setError","showSelect","hideSelect","isVueComponent","Config","_shareConfig","isPublicUploadEnabled","allowPublicUploads","isShareWithLinkAllowed","federatedShareDocLink","appConfig","core","federatedCloudShareDoc","defaultExpirationDate","isDefaultExpireDateEnabled","setDate","defaultExpireDate","defaultInternalExpirationDate","isDefaultInternalExpireDateEnabled","defaultInternalExpireDate","defaultRemoteExpirationDateString","isDefaultRemoteExpireDateEnabled","defaultRemoteExpireDate","enforcePasswordForPublicLink","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","defaultExpireDateEnabled","isDefaultInternalExpireDateEnforced","defaultInternalExpireDateEnforced","isDefaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnforced","defaultInternalExpireDateEnabled","defaultRemoteExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isMailShareAllowed","capabilities","files_sharing","sharebymail","public","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","enforced","shouldAlwaysShowUnique","sharee","always_show_unique","allowGroupSharing","maxAutocompleteResults","config","minSearchStringLength","Share","ocsData","hide_download","mail_send","_share","share_type","permissions","owner","uid_owner","ownerDisplayName","displayname_owner","shareWith","share_with","shareWithDisplayName","share_with_displayname","shareWithDisplayNameUnique","share_with_displayname_unique","shareWithLink","share_with_link","shareWithAvatar","share_with_avatar","uidFileOwner","uid_file_owner","displaynameFileOwner","displayname_file_owner","createdTime","stime","expireDate","expiration","token","note","mailSend","hideDownload","passwordExpirationTime","password_expiration_time","sendPasswordByTalk","send_password_by_talk","path","itemType","item_type","fileSource","file_source","fileTarget","file_target","fileParent","file_parent","hasReadPermission","PERMISSION_READ","hasCreatePermission","PERMISSION_CREATE","hasDeletePermission","PERMISSION_DELETE","hasUpdatePermission","PERMISSION_UPDATE","hasSharePermission","PERMISSION_SHARE","hasDownloadPermission","scope","attrUpdate","can_edit","canDelete","can_delete","viaFileid","via_fileid","viaPath","via_path","storageId","storage_id","itemSource","item_source","SHARE_TYPES","ShareTypes","isUnique","ariaExpandedValue","SharingEntrySimple","copied","copySuccess","internalLink","protocol","host","copyLinkTooltip","internalLinkSubtitle","copyLink","clipboard","writeText","showSuccess","shareEntrySimple","actionsComponent","api","generate","request","axios","showError","array","passwordSet","shareUrl","createShare","shareType","publicUpload","share","errorMessage","meta","Notification","showTemporary","deleteShare","updateShare","openSharingDetails","shareRequestObject","suggestions","mapShareRequestToShareObject","shareDetails","openShareDetailsForCustomSettings","setCustomPermissions","is_no_user","ShareRequests","ShareDetails","shares","linkShares","reshare","canReshare","recommendations","ShareSearch","OCA","Sharing","externalResults","allowRemoteSharing","isValidQuery","noResultText","getRecommendations","asyncFind","debounceGetSuggestions","getSuggestions","query_lookup_default","SHARE_TYPE_USER","SHARE_TYPE_GROUP","SHARE_TYPE_REMOTE","SHARE_TYPE_REMOTE_GROUP","SHARE_TYPE_CIRCLE","SHARE_TYPE_ROOM","SHARE_TYPE_GUEST","SHARE_TYPE_DECK","SHARE_TYPE_SCIENCEMESH","SHARE_TYPE_EMAIL","perPage","rawExactSuggestions","elem","rawSuggestions","exactSuggestions","filterOutExistingShares","formatForMultiselect","lookupEntry","lookupEnabled","condition","allSuggestions","nameCounts","desc","debounce","rawRecommendations","sharesObj","shareTypeToIcon","server","shareWithDescription","addShare","$children","GeneratePassword","sharePermissions","default_permissions","shareAttributes","newPassword","clear-search-on-blur","$$v","ATOMIC_PERMISSIONS","NONE","READ","UPDATE","CREATE","DELETE","SHARE","BUNDLED_PERMISSIONS","READ_ONLY","UPLOAD_AND_UPDATE","FILE_DROP","ALL","ALL_FILE","SharesRequests","errors","updateQueue","PQueue","concurrency","reactiveState","hasNote","dateTomorrow","dayNamesShort","monthNamesShort","firstDay","isFolder","isPublicShare","SHARE_TYPE_LINK","isShareOwner","isExpiryDateEnforced","isRemoteShare","hasCustomPermissions","checkShare","expirationDate","parseDateString","formatDateToString","UTC","toISOString","onExpirationChange","onExpirationDisable","onNoteChange","onNoteSubmit","newNote","$delete","queueUpdate","_len","propertyNames","_key","updatedShare","onSyncError","propertyEl","debounceQueueUpdate","NcActionText","SharesMixin","viaFileTargetUrl","fileid","viaFolderName","basename","initiator","folder","$event","SharingEntryInherited","loaded","showInheritedShares","showInheritedSharesIcon","mainTitle","subTitle","toggleTooltip","fullPath","resetState","toggleInheritedShares","fetchInheritedShares","removeShare","DropdownIcon","selectedOption","showDropdown","canViewText","canEditText","fileDropText","customPermissionsText","preSelectedOption","supportsFileDrop","dropDownPermissionValue","dropdownId","toggleValue","initializeComponent","handleClickOutside","toggleDropdown","closeDropdown","selectOption","dropdownContainer","quickShareDropdownContainer","dropdownElement","quickShareDropdown","shiftFocusForward","nextElement","nextElementSibling","shiftFocusBackward","previousElement","previousElementSibling","lastElementChild","handleArrowUp","handleArrowDown","ExternalShareAction","NcActionInput","NcActionSeparator","Tune","QuickShareSelect","pending","ExternalLegacyLinkActions","ExternalLinkActions","ExternalShareActions","isEmailShareType","dateMaxEnforced","isPasswordProtected","Vue","expirationTime","moment","diff","fromNow","isTalkEnabled","spreed","isPasswordProtectedByTalkAvailable","isPasswordProtectedByTalk","canTogglePasswordProtectedByTalkAvailable","hasUnsavedPassword","pendingPassword","pendingEnforcedPassword","pendingExpirationDate","shareLink","actionsTooltip","externalLegacyLinkActions","externalLinkActions","isPasswordPolicyEnabled","canChangeHideDownload","shareAttribute","onNewLinkShare","shareDefaults","pushNewLinkShare","newShare","copyButton","onPasswordChange","onPasswordDisable","onPasswordSubmit","onPasswordProtectedByTalkChange","onMenuClose","toggleQuickShareSelect","SharingEntryLink","canLinkShare","hasLinkShares","hasShares","awaitForShare","SharingEntry","NcDateTimePicker","NcCheckboxRadioSwitch","CircleIcon","EditIcon","LinkIcon","GroupIcon","ShareIcon","UserIcon","UploadIcon","ViewIcon","MenuDownIcon","MenuUpIcon","shareRequestValue","writeNoteToRecipientIsChecked","sharingPermission","revertSharingPermission","passwordError","advancedSectionAccordionExpanded","bundledPermissions","isFirstComponentLoad","creating","updateAtomicPermissions","isEditChecked","canCreate","isCreateChecked","isDeleteChecked","isReshareChecked","canDownload","isDownloadChecked","hasRead","isReadChecked","hasExpirationDate","isValidShareAttribute","defaultExpiryDate","maxExpirationDateEnforced","isSetDownloadButtonVisible","isPasswordEnforced","isGroupShare","isUserShare","isNewShare","allowsFileDrop","hasFileDropPermissions","shareButtonText","canSetEdit","canSetCreate","canSetDelete","canSetReshare","canSetDownload","customPermissionsList","translatedPermissions","permission","hasPermissions","initialPermissionSet","permissionsToCheck","getLanguage","advancedControlExpandedValue","initializePermissions","initializeAttributes","quickPermissions","expandCustomPermissions","toggleCustomPermissions","selectedPermission","isCustomPermissions","toDateString","saveShare","permissionsAndAttributes","sharePermissionsSet","incomingShare","getShareTypeIcon","EmailIcon","CollectionList","SharingEntryInternal","SharingInherited","SharingInput","SharingLinkList","SharingList","SharingDetailsTab","deleteEvent","expirationInterval","sharedWithMe","sections","ShareTabSections","getSections","projectsEnabled","showSharingDetailsView","shareDetailsData","isSharedWithMe","getShares","fetchShares","reshares","fetchSharedWithMe","shared_with_me","processSharedWithMe","processShares","clearInterval","updateExpirationSubtitle","unix","relativetime","relativeModifiedDate","_ref2","group","escape","circle","conversation","shareWithTitle","setInterval","shareOwnerId","currentUser","shareOwner","shareList","listComponent","linkShareList","toggleShareDetailsView","emptyContentWithSections","section","IS_HTMLDDA","stat","dontCallGetSet","forced","sham","globalThis","hasOwn","withoutSetter","unsafe","nonConfigurable","nonWritable","foo","filterReject","Deno","versions","v8","callee","EXISTS","PROPER","CONFIGURABLE","write","ActiveXObject","domain","contentWindow","isPrototypeOf","lastIndex","BROKEN_CARET","raw","groups","sticky","copyright","license","NaN","proto","$isLabel","$groupLabel","isOpen","preferredOpenDirection","optimizedHeight","maxHeight","internalSearch","searchable","clearOnSelect","hideSelected","allowEmpty","resetAfter","customLabel","taggable","tagPlaceholder","tagPosition","optionsLimit","groupValues","groupLabel","groupSelect","blockKeys","preserveSearch","preselectFirst","preventAutofocus","internalValue","filteredOptions","filterAndFlat","isSelected","isExistingOption","isTag","valueKeys","optionKeys","flatAndStrip","currentOptionLabel","getValue","isOptionDisabled","$isDisabled","selectGroup","pointerDirty","removeElement","wholeGroupSelected","wholeGroupDisabled","removeLastElement","adjustPosition","pointer","innerHeight","openDirection","showPointer","optionHeight","pointerPosition","visibleElements","pointerAdjust","optionHighlight","groupHighlight","addPointerElement","pointerReset","pointerForward","pointerBackward","pointerSet","selectLabel","selectGroupLabel","selectedLabel","deselectLabel","deselectGroupLabel","showLabels","limitText","showNoOptions","showNoResults","hasOptionGroup","isSingleLabelVisible","singleValue","visibleValues","isPlaceholderVisible","deselectLabelText","deselectGroupLabelText","selectLabelText","selectGroupLabelText","selectedLabelText","inputStyle","padding","contentStyle","isAbove","showSearchInput","hasSingleSelectedSlot","visibleSingleValue","inspectSource","WeakMap","facade","enforce","getterFor","NATIVE","POLYFILL","hasIndices","ignoreCase","dotAll","unicode","unicodeSets","arity","trunc","setPrototypeOf","__proto__","MISSED_STICKY","UNSUPPORTED_Y","esModule","keypress","spellcheck","eval","Axios","auth","router","__assign","__awaiter","SuppressedError","RETRY_KEY","RETRY_DELAY_KEY","client","headers","requesttoken","getRequestToken","cancelableClient","CancelToken","isCancel","interceptors","responseURL","retryDelay_1","retryIfMaintenanceMode","onError$1","reloadExpiredSession","reload","onRequestTokenUpdate","vueDemi","shared","OnClickOutside","slots","onClickOutside","unrefElement","elRef","plain","toValue","defaultWindow","isClient","useEventListener","noop","cleanups","stopWatch","options2","optionsClone","isObject","flatMap","listener","tryOnScopeDispose","_iOSWorkaround","capture","detectIframe","isIOS","shouldListen","shouldIgnore","target2","composedPath","directiveHooks","binding","bubble","__onClickOutside_stop","onKeyStroke","eventName","dedupe","predicate","keyFilter","repeat","vOnKeyStroke","onLongPress","elementRef","listenerOptions","once","_a2","_b2","prevent","OnLongPress","vOnLongPress","UseActiveElement","reactive","useActiveElement","UseBattery","useBattery","UseBrowserLocation","useBrowserLocation","_global","globalKey","getHandlers","getSSRHandler","StorageSerializers","boolean","read","number","any","string","customStorageEventName","useSupported","isMounted","getCurrentInstance","onMounted","useMounted","UseColorMode","selector","attribute","initialValue","storageKey","listenToStorageChanges","storageRef","emitAuto","disableTransition","modes","light","preferredDark","isSupported","matchMedia","mediaQuery","removeListener","watchEffect","addListener","useMediaQuery","usePreferredDark","system","toRef","writeDefaults","mergeDefaults","shallow","eventFilter","onError","shallowRef","rawInit","guessSerializerType","serializer","pauseWatch","resume","resumeWatch","pausableWatch","serialized","oldValue","CustomEvent","newValue","storageArea","nextTick","useStorage","updateHTMLAttrs","selector2","attribute2","styleString","opacity","defaultOnChanged","onChanged","tryOnMounted","useColorMode","UseDark","isDark","useDark","toggleDark","useToggle","UseDeviceMotion","useDeviceMotion","UseDeviceOrientation","useDeviceOrientation","UseDevicePixelRatio","pixelRatio","useDevicePixelRatio","UseDevicesList","useDevicesList","UseDocumentVisibility","visibility","useDocumentVisibility","UseDraggable","handle","storageValue","storageType","useDraggable","onEnd","UseElementBounding","useElementBounding","vElementHover","isHovered","delayEnter","delayLeave","timer","entering","useElementHover","UseElementSize","useElementSize","box","vElementSize","initialSize","isSVG","namespaceURI","observerOptions","targets","els","_el","useResizeObserver","boxSize","borderBoxSize","contentBoxSize","devicePixelContentBoxSize","$elem","formatBoxSize","acc","inlineSize","blockSize","ele","width2","height2","UseElementVisibility","useElementVisibility","useIntersectionObserver","_target","notNullish","targets2","root2","scrollTarget","elementIsVisible","isIntersecting","vElementVisibility","UseEyeDropper","sRGBHex","useEyeDropper","UseFullscreen","useFullscreen","UseGeolocation","useGeolocation","UseIdle","useIdle","useImage","asyncStateOptions","promise","initialState","onSuccess","resetOnExecute","throwError","isReady","execute","delay2","promiseTimeout","_promise","shell","onFulfilled","onRejected","toBe","useAsyncState","img","sizes","clazz","crossorigin","referrerPolicy","crossOrigin","loadImage","UseImage","ARRIVED_STATE_THRESHOLD_PIXELS","useScroll","throttle","idle","onStop","eventListenerOptions","internalX","internalY","x2","scrollTo","y2","_x","_y","_element","Document","isScrolling","arrivedState","directions","onScrollEnd","onScrollEndDebounced","useDebounceFn","setArrivedState","flexDirection","onScrollHandler","eventTarget","useThrottleFn","measure","resolveElement","Window","useInfiniteScroll","onLoadMore","observedElement","isElementVisible","checkAndLoad","isNarrower","finally","vInfiniteScroll","vIntersectionObserver","UseMouse","useMouse","UseMouseInElement","useMouseInElement","UseMousePressed","useMousePressed","UseNetwork","useNetwork","UseNow","useNow","controls","UseObjectUrl","useObjectUrl","UseOffsetPagination","useOffsetPagination","onPageChange","onPageSizeChange","onPageCountChange","UseOnline","isOnline","useOnline","UsePageLeave","isLeft","usePageLeave","UsePointer","usePointer","UsePointerLock","usePointerLock","UsePreferredColorScheme","colorScheme","usePreferredColorScheme","UsePreferredContrast","contrast","usePreferredContrast","UsePreferredDark","prefersDark","UsePreferredLanguages","languages","usePreferredLanguages","UsePreferredReducedMotion","motion","usePreferredReducedMotion","useCssVar","variable","updateCssVar","mutationOptions","MutationObserver","useMutationObserver","attributeFilter","setProperty","topVarName","rightVarName","bottomVarName","leftVarName","UseScreenSafeArea","topCssVar","rightCssVar","bottomCssVar","leftCssVar","useScreenSafeArea","paddingRight","paddingBottom","boxSizing","maxWidth","vScroll","checkOverflowScroll","overflowX","overflowY","rawEvent","vScrollLock","initialOverflow","stopTouchMoveListener","useScrollLock","onScrollLock","UseTimeAgo","useTimeAgo","UseTimestamp","useTimestamp","UseVirtualList","listRef","toRefs","containerProps","wrapperProps","useVirtualList","overFlow","UseWindowFocus","useWindowFocus","UseWindowSize","useWindowSize","VOnClickOutside","VOnLongPress","VueModule","Vue2","isVue2","isVue3","install","createApp","rootComponent","rootProps","vm","app","mixin","directive","dir","mount","hydrating","unmount","hasInjectionContext","computedAsync","evaluationCallback","optionsOrRef","isRef","evaluating","lazy","onInvalidate","counterAtBeginning","hasFinished","cancelCallback","keysToCamelKebabCase","newObj","camelize","defaultDocument","defaultNavigator","defaultLocation","computedWithControl","getDeepActiveElement","useRafFn","fpsLimit","intervalLimit","previousFrameTimestamp","rafId","loop","readonly","whenAborted","aborted","fromEntries","null","blobToBase64","blob","readAsDataURL","WRITABLE_PROPERTIES","cloneFnJSON","useCurrentElement","currentElement","onUpdated","fnBypass","fnSetSource","defaultDump","defaultParse","useManualRefHistory","dump","setSource","_createHistoryRecord","markRaw","snapshot","undoStack","redoStack","_setSource","record","history","canUndo","canRedo","commit","capacity","POSITIVE_INFINITY","redo","useRefHistory","composedFilter","resumeTracking","isTracking","pausableFilter","ignoreUpdates","ignorePrevAsyncUpdates","watchIgnorable","manualHistory","source2","manualCommit","commitNow","batch","canceled","dispose","isAbsolute","alpha","beta","gamma","absolute","usePermission","permissionDesc","permissionStatus","createSingletonPromise","payloadMapping","json","isFetchOptions","containsProp","headersToObject","Headers","combineCallbacks","combination","callbacks","ctx","useFetch","supportsAbort","fetchOptions","refetch","updateDataOnError","payload","initialData","responseEvent","createEventHook","errorEvent","finallyEvent","isFinished","isFetching","canAbort","controller","onabort","useTimeoutFn","throwOnFailed","defaultFetchOptions","payloadType","getPrototypeOf","FormData","isCanceled","beforeFetch","responseData","_a3","fetchResponse","ok","statusText","afterFetch","fetchError","errorData","onFetchError","refetch2","onFetchResponse","onFetchFinally","setMethod","patch","setType","arrayBuffer","formData","waitUntilFinished","error2","DEFAULT_OPTIONS","accept","eventHandlers","defaultEvents$1","defaultEvents","DefaultMagicKeysAliasMap","ctrl","command","cmd","down","usingElRef","cb","tracksToArray","tracks","kind","activeCues","cues","inBandMetadataTrackDispatchType","defaultOptions","UseMouseBuiltinExtractors","page","pageY","screenX","screenY","movement","Touch","movementX","movementY","resetOnTouchEnds","_prevMouseEvent","sourceType","extractor","mouseHandler","touchHandler","scrollHandler","pos","MouseEvent","scrollX","scrollY","mouseHandlerWrapper","touchHandlerWrapper","scrollHandlerWrapper","handleOutside","targetRef","elementX","elementY","elementPositionX","elementPositionY","elementHeight","elementWidth","isOutside","pageXOffset","pageYOffset","elX","elY","saveData","offlineAt","onlineAt","downlink","downlinkMax","rtt","effectiveType","connection","updateNetworkInformation","onLine","exposeControls","useIntervalFn","useClamp","isReadonly","clamp","value2","defaultState","pressure","tiltX","tiltY","twist","defaultSortFn","compareFn","defaultCompare","_id","DEFAULT_UNITS","DEFAULT_MESSAGES","justNow","past","future","invalid","DEFAULT_FORMATTER","formatTimeAgo","messages","fullDateFormatter","units","showSecond","rounding","roundFn","absDiff","diff2","unit","applyFormat","isPast","unitMax","idx","_TransitionPresets","easeInSine","easeOutSine","easeInOutSine","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInBack","easeOutBack","easeInOutBack","TransitionPresets","linear","identity","lerp","toVec","executeTransition","fromVal","toVal","v1","v2","startedAt","endAt","trans","transition","ease","p0","p3","a1","a2","calcBezier","getSlope","aGuessT","currentSlope","getTforX","createEasingFunction","tick","useVModel","shouldEmit","_emit","modelOptions","cloneFn","isDef","triggerEmit","isUpdating","useVirtualListResources","containerRef","currentList","createGetViewCapacity","itemSize","containerSize","sum","createGetOffset","scrollDirection","createCalculateRange","overscan","getOffset","getViewCapacity","viewCapacity","createGetDistance","useWatchForSizes","calculateRange","createComputedTotalSize","scrollToDictionaryForElementScrollKey","vertical","createScrollTo","DEFAULT_PING_MESSAGE","resolveNestedOptions","jobRunner","userFunc","userFuncArgs","postMessage","createWorkerBlobUrl","deps","blobCode","dep","depsParser","Blob","createObjectURL","asyncComputed","breakpointsAntDesign","sm","lg","xxl","breakpointsBootstrapV5","breakpointsMasterCss","breakpointsPrimeFlex","breakpointsQuasar","breakpointsSematic","mobileS","mobileM","mobileL","tablet","laptop","laptopL","desktop4K","breakpointsTailwind","breakpointsVuetify","computedInject","defaultSource","treatDefaultAsFactory","createFetch","_combination","_fetchOptions","computedUrl","baseUrl","isAbsoluteURL","endsWith","createReusableTemplate","define","reuse","vnode","makeDestructurable","createTemplatePromise","instances","renderList","TransitionGroup","singleton","shallowReactive","isResolving","_resolve","_reject","index2","createUnrefFn","mapGamepadToXbox360Controller","gamepad","buttons","bumper","triggers","stick","axes","dpad","back","onKeyPressed","onStartTyping","document2","hasAttribute","isFocusedElementEditable","isTypedCharValid","setSSRHandler","templateRef","instance","_trigger","customRef","track","useAnimate","keyframes","animateOptions","objectOmit","commitStyles","playbackRate","_playbackRate","onReady","animate","startTime","currentTime","timeline","playState","replaceState","syncResume","syncPause","effect","KeyframeEffect","resumeRef","pauseRef","play","finish","useAsyncQueue","tasks","interrupt","onFinished","promiseState","initialResult","activeIndex","updateResult","res","curr","prevRes","currentRes","race","useBase64","base64","ArrayBuffer","HTMLCanvasElement","toDataURL","quality","HTMLImageElement","cloneNode","imgLoaded","canvas","getContext","drawImage","_serializeFn","getDefaultSerialization","charging","chargingTime","dischargingTime","battery","updateBatteryInfo","getBattery","_battery","useBluetooth","acceptAllDevices","filters","optionalServices","device","gatt","connect","connectToBluetoothGATTServer","isConnected","connected","requestDevice","bluetooth","useBreakpoints","breakpoints","increaseWithUnit","greaterOrEqual","shortcutMethods","shortcuts","greater","smaller","smallerOrEqual","between","isGreater","isGreaterOrEqual","isSmaller","isSmallerOrEqual","isInBetween","points","useBroadcastChannel","isClosed","channel","BroadcastChannel","data2","refs","ref2","objectEntries","buildState","state2","useCached","refValue","comparator","watchOptions","cachedValue","useClipboard","copiedDuring","legacy","isClipboardApiSupported","readText","copy","execCommand","legacyCopy","useCloned","cloned","manual","sync","useConfirmDialog","revealed","confirmHook","cancelHook","revealHook","isRevealed","reveal","onReveal","onConfirm","useCycleList","targetList","getIndexOf","fallbackIndex","valueDark","valueLight","mode2","defaultHandler","modeVal","useDebouncedRefHistory","debounceFilter","bypassFilter","acceleration","rotationRate","accelerationIncludingGravity","createFilterWrapper","observe2","devicePixelRatio","cleanup2","requestPermissions","constraints","audio","video","devices","videoInputs","audioInputs","audioOutputs","mediaDevices","enumerateDevices","permissionGranted","stream","getTracks","ensurePermissions","getUserMedia","useDisplayMedia","getDisplayMedia","constraint","_stop","visibilityState","pointerTypes","onStart","axis","draggingElement","containerElement","draggingHandle","pressedDelta","filterEvent","handleEvent","move","isDragging","useDropZone","isOverDropZone","onDrop","getFiles","dataTransfer","onOver","windowResize","windowScroll","useElementByPoint","elementsFromPoint","elementFromPoint","useEventBus","getCurrentScope","_off","_listener","useEventSource","eventSource","withCredentials","EventSource","onopen","onmessage","event_name","openOptions","eyeDropper","EyeDropper","useFavicon","newIcon","favicon","elements","applyIcon","useFileDialog","onchange","localOptions","useFileSystemAccess","_window","dataType","fileHandle","file","fileName","fileMIME","fileSize","fileLastModified","lastModified","saveAs","showSaveFilePicker","writableStream","createWritable","updateFile","getFile","updateData","showOpenFilePicker","save","useFocus","focusVisible","innerFocused","targetElement","useFocusWithin","useFps","fps","performance","ticks","autoExit","requestMethod","exitMethod","fullscreenEnabled","fullscreenElementMethod","isElementFullScreen","exit","handlerCallback","isElementFullScreenValue","useGamepad","gamepads","onConnectedHook","onDisconnectedHook","stateFromGamepad","hapticActuators","vibrationActuator","touched","_gamepads","getGamepads","onGamepadConnected","onGamepadDisconnected","onConnected","onDisconnected","enableHighAccuracy","maximumAge","locatedAt","coords","accuracy","altitude","altitudeAccuracy","speed","updatePosition","watcher","geolocation","watchPosition","clearWatch","listenForVisibilityChange","throttleFilter","lastActive","onEvent","hidden","useKeyModifier","modifier","initial","listenerEvent","evt","getModifierState","useLocalStorage","useMagicKeys","useReactive","aliasMap","onEventFired","metaDeps","usedKeys","setRefs","updateRefs","key2","rec","Reflect","useMediaControls","seeking","volume","waiting","ended","rate","stalled","buffered","selectedTrack","isPictureInPicture","muted","supportsPictureInPicture","sourceErrorEvent","disableTrack","textTracks","src2","load","isDefault","srcLang","srclang","ignoreCurrentTimeUpdates","ignorePlayingUpdates","isPlaying","timeRanges","timeRangeToArray","enableTrack","disableTracks","togglePictureInPicture","exitPictureInPicture","requestPictureInPicture","onSourceError","useMemoize","resolver","del","getMapVue2Compat","generateKey","getKey","_loadData","memoized","useMemory","memory","immediateCallback","drag","onPressed","srcType","onReleased","useNavigatorLanguage","release","revokeObjectURL","newObject","total","pageSize","currentPageSize","pageCount","currentPage","isFirstPage","isLastPage","syncRef","returnValue","toElement","useParallax","deviceOrientationTiltAdjust","deviceOrientationRollAdjust","mouseTiltAdjust","mouseRollAdjust","orientation","roll","tilt","useParentElement","parentElement","usePerformanceObserver","performanceOptions","PerformanceObserver","isInside","objectPick","pointerLockOptions","triggerElement","pointerLockElement","Event","requestPointerLock","exitPointerLock","toBeNull","usePointerSwipe","onSwipe","onSwipeEnd","onSwipeStart","posStart","posEnd","updatePosEnd","distanceX","distanceY","isThresholdExceeded","isSwiping","isPointerDown","eventIsAllowed","isReleasingButton","isPrimaryButton","stops","setPointerCapture","updatePosStart","isLight","isLess","isCustom","isReduced","usePrevious","useScreenOrientation","screenOrientation","lockOrientation","unlockOrientation","useScriptTag","onLoaded","noModule","defer","scriptTag","waitForScriptLoad","resolveWithElement","el2","shouldAppend","loadScript","unload","tryOnUnmounted","useSessionStorage","useShare","shareOptions","_navigator","overrideOptions","granted","canShare","useSorted","dirty","sortFn","useSpeechRecognition","interimResults","continuous","isListening","SpeechRecognition","webkitSpeechRecognition","recognition","onstart","lang2","onresult","transcript","result2","onend","useSpeechSynthesis","pitch","synth","speechSynthesis","spokenText","bindEventsForUtterance","utterance2","voice","onpause","onresume","utterance","newUtterance","SpeechSynthesisUtterance","speak","useStepper","steps","initialStep","stepsRef","stepNames","isLast","goTo","isAfter","goToNext","goToPrevious","goBackTo","isNext","isPrevious","isCurrent","isBefore","useStorageAsync","watchWithFilter","useStyleTag","isLoaded","cssRef","useSwipe","coordsStart","coordsEnd","diffX","diffY","getTouchEventCoords","updateCoordsEnd","isPassiveEventSupported","supportsPassive","optionsBlock","checkPassiveEventSupport","updateCoordsStart","lengthX","lengthY","useTemplateRefsList","onBeforeUpdate","useTextDirection","getAttribute","removeAttribute","useTextSelection","getRangesFromSelection","rects","range","useTextareaAutosize","textarea","textareaScrollHeight","triggerResize","styleTarget","onResize","useThrottledRefHistory","updateInterval","timeAgo","useTimeoutPoll","timeoutPollOptions","useTitle","newTitle","template","titleTemplate","childList","useTransition","currentId","sourceVal","outputRef","onStarted","useUrlSearchParams","removeNullishValues","removeFalsyValues","enableWrite","getRawParams","updateState","unusedKeys","paramsForKey","mapEntry","shouldUpdate","pathname","stringified","constructQuery","useUserMedia","autoSwitch","getDeviceOptions","restart","useVModels","ret","useVibrate","pattern","patternRef","intervalControls","vibrate","pattern2","containerStyle","itemHeight","getDistanceTop","totalHeight","marginTop","useVerticalVirtualList","itemWidth","getDistanceLeft","totalWidth","useHorizontalVirtualList","useWakeLock","wakeLock","released","useWebNotification","_requestForPermissions","defaultWebNotificationOptions","notification","requestPermission","clickTrigger","onShow","showTrigger","errorTrigger","onClose","closeTrigger","overrides","onshow","onclose","useWebSocket","onMessage","autoClose","protocols","wsRef","urlRef","heartbeatPause","heartbeatResume","pongTimeoutWait","explicitlyClosed","retried","bufferedData","_sendBuffer","send","resetHeartbeat","useBuffer","_init","WebSocket","autoReconnect","retries","onFailed","heartbeat","pongTimeout","useWebWorker","arg0","workerOptions","worker","Worker","terminate","useWebWorkerFn","dependencies","workerStatus","workerTerminate","_url","workerFn","fnArgs","blobUrl","newWorker","generateWorker","callWorker","hasFocus","useWindowScroll","initialWidth","initialHeight","listenOrientation","includeScrollbar","innerWidth","computedEager","_track","isExtensible","onScopeDispose","localProvidedStateMap","provideLocal","injectLocal","extendRef","unwrap","unref","resolveUnref","reactify","unrefFn","computedGetter","toReactive","objectRef","receiver","ownKeys","reactiveComputed","getIsIOS","invoke","maxTimer","lastRejector","_clearTimeout","timer2","maxDuration","rejectOnCancel","lastValue","lastExec","isLeading","_invoke","elapsed","extendFilter","cacheStringFunction","hyphenateRE","hyphenate","camelizeRE","throwOnTimeout","resolveRef","refAutoReset","afterMs","refDebounced","debounced","refThrottled","throttled","refWithControl","tracking","triggering","old","onBeforeChange","untrackedGet","silentSet","peek","lay","controlledRef","watchPausable","createUntil","isNot","toMatch","promises","changedTimes","toContains","not","toBeTruthy","toBeNaN","toBeUndefined","defaultComparator","othVal","REGEX_PARSE","REGEX_FORMAT","defaultMeridiem","isLowercase","hasPeriod","formatDate","formatStr","years","getSeconds","milliseconds","getMilliseconds","getDay","meridiem","customMeridiem","YY","YYYY","MMM","toLocaleDateString","locales","MMMM","DD","HH","SSS","weekday","ddd","dddd","$1","normalizeDate","clean","intervalValue","watchDebounced","filteredCb","disposables","ignoreCounter","syncCounter","syncCounterPrev","watchThrottled","assert","infos","autoResetRef","controlledComputed","fns","offFn","createGlobalState","stateFactory","initialized","effectScope","run","createInjectionState","composable","injectionKey","createReactiveFn","createSharedComposable","subscribers","wrapper","_prev","debouncedRef","debouncedWatch","eagerComputed","ignorableWatch","isDefined","omitUndefined","rand","reactifyObject","optionsOrKeys","includeOwnProperties","reactiveOmit","flatKeys","reactivePick","refDefault","transform","watchers","transformLTR","ltr","transformRTL","syncRefs","throttledRef","throttledWatch","replaceRef","tryOnBeforeMount","onBeforeMount","tryOnBeforeUnmount","onBeforeUnmount","onUnmounted","useArrayDifference","useArrayEvery","useArrayFilter","useArrayFind","useArrayFindIndex","useArrayFindLast","findLast","useArrayIncludes","formIndex","fromIndex","useArrayJoin","separator","useArrayMap","useArrayReduce","reducer","reduceCallback","resolved","useArraySome","useArrayUnique","resolvedList","uniq","useCounter","_initialValue","NEGATIVE_INFINITY","inc","dec","useDateFormat","useDebounce","useInterval","useLastChanged","useThrottle","useTimeout","useToNumber","radix","nanToZero","useToString","truthyValue","falsyValue","valueIsRef","truthy","watchArray","oldList","newList","onCleanup","oldListRemains","added","found","watchAtMost","watchDeep","watchImmediate","watchOnce","watchTriggerable","cleanupFn","_cb","onEffect","res2","isReactive","getOldValue","whenever","ov","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isPlainObject","isBlob","isFileList","isURLSearchParams","allOwnKeys","findKey","isContextDefined","isTypedArray","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","descriptors","reducedDescriptors","descriptor","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","utils$1","isFormData","isArrayBufferView","isView","isBoolean","isStream","pipe","caseless","assignValue","targetKey","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","searchString","forEachEntry","pair","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","delimiter","toCamelCase","toFiniteNumber","generateString","alphabet","isSpecCompliantForm","toJSONObject","reducedValue","isThenable","AxiosError","captureStackTrace","lineNumber","columnNumber","prototype$1","isVisitable","removeBrackets","renderKey","dots","customProps","axiosError","cause","predicates","toFormData","metaTokens","indexes","visitor","defaultVisitor","useBlob","convertValue","isFlatArray","exposedHelpers","encode$1","charMap","AxiosURLSearchParams","_pairs","buildURL","_encode","serializeFn","serialize","serializedParams","hashmarkIndex","encoder","InterceptorManager$1","synchronous","runWhen","eject","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","platform$1","isBrowser","classes","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","formDataToJSON","buildPath","isNumericKey","arrayToObject","parsePropPath","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","isNode","toURLEncodedForm","formSerializer","_FormData","env","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","defaults$1","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","parseHeaders","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","normalized","char","formatHeader","asStrings","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","AxiosHeaders$1","transformData","__CANCEL__","CanceledError","ERR_CANCELED","cookies","expires","secure","cookie","toGMTString","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","hostname","port","requestURL","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","samplesCount","timestamps","firstSampleTS","tail","chunkLength","bytesCount","speedometer","lengthComputable","progressBytes","progress","estimated","knownAdapters","xhr","XMLHttpRequest","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","username","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","responseText","paramsSerializer","onreadystatechange","readyState","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","setRequestHeader","onDownloadProgress","onUploadProgress","upload","parseProtocol","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","validators$1","deprecatedWarnings","formatMessage","opt","opts","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","validators","instanceConfig","configOrUrl","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","getUri","generateHTTPMethod","isForm","Axios$1","executor","resolvePromise","_listeners","onfulfilled","CancelToken$1","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","HttpStatusCode$1","createInstance","defaultConfig","Cancel","spread","isAxiosError","formToJSON","getAdapter","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","own","findAndReplace","tree","settings","ignored","toExpression","toFunction","toPairs","pairIndex","parents","grandparent","nodes","matchObject","newlineToBreak","remarkBreaks","emptyOptions","one","includeImageAlt","includeHtml","chunkStart","syntaxExtension","extension","hook","constructs","factorySpace","effects","consume","tokenize","contentStart","attempt","contentInitial","lineStart","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","point","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","_gfmTableDynamicInterruptHack","check","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flow","_tokenizer","flowContinue","writeToChild","eof","sliceStream","defineSkip","seen","nok","disable","blankLine","after","partial","subtokenize","jumps","lineIndex","otherIndex","otherEvent","subevents","more","_isInFirstContentOfListItem","subcontent","_container","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","adjust","breaks","_gfmTasklistFirstContentOfListItem","chunkInside","contentEnd","continuationConstruct","contentContinue","sliceSerialize","flowInitial","afterConstruct","resolveAll","createResolver","initializeFactory","field","notText","atBreak","resolveAllLineSuffixes","extraResolver","bufferIndex","chunk","column","_index","_bufferIndex","called","createTokenizer","initialize","columnStart","resolveAllConstructs","consumed","accountForPotentialSkip","fields","constructFactory","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","chunkIndex","expectedCode","startIndex","startBufferIndex","endIndex","endBufferIndex","sliceChunks","restore","onreturn","returnState","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","def","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","resolveTo","thematicBreak","marker","atMarker","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","contBefore","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","begin","factoryWhitespace","normalizeIdentifier","definition","labelAfter","markerAfter","destinationBefore","destinationAfter","titleBefore","afterWhitespace","defined","beforeMarker","titleAfter","titleAfterOptionalWhitespace","codeIndented","afterPrefix","furtherStart","headingAtx","sequenceOpen","sequenceFurther","setextUnderline","paragraph","htmlBlockNames","htmlRawNames","htmlFlow","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","blankLineBefore","continuationAfter","nonLazyContinuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","nonLazyContinuation","codeFenced","closeStart","beforeSequenceClose","sequenceClose","sizeOpen","sequenceCloseAfter","initialPrefix","beforeSequenceOpen","infoBefore","atNonLazyBreak","metaBefore","contentBefore","beforeContentChunk","contentChunk","characterReference","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","labelEndNok","resourceConstruct","labelEndOk","referenceFullConstruct","referenceNotFull","referenceCollapsedConstruct","insideSpan","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFullAfter","referenceFullMissing","referenceCollapsedOpen","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","closingSequence","nextEvents","movePoint","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","instruction","tagOpen","declaration","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","tailExitIndex","headEnterIndex","decodeNumericCharacterReference","characterEscapeOrReference","$0","$2","fromMarkdown","transforms","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeText","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreakEscape","hardBreak","hardBreakTrailing","htmlFlowData","htmlText","htmlTextData","image","listItem","_spread","listItemValue","setData","listOrdered","listUnordered","referenceString","resourceDestinationString","resourceTitleString","setextHeading","closer","atxHeadingSequence","depth","onexitdata","characterEscapeValue","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","codeFencedFence","onexithardbreak","referenceType","fragment","labelText","decodeString","resource","setextHeadingLineSequence","setextHeadingText","configure","mdastExtensions","tokenStack","listStack","prepareList","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","and","errorHandler","onExitError","ordered","compiler","postprocess","extensions","combineExtensions","atCarriageReturn","endPosition","preprocess","combined","remarkParse","normalizeUri","footnoteReference","safeId","footnoteOrder","footnoteCounts","reuseCounter","clobberPrefix","dataFootnoteRef","ariaDescribedBy","sup","applyData","revert","subtype","suffix","contents","listItemLoose","pointStart","pointEnd","wrap","break","footnote","footnoteById","dangerous","imageReference","inlineCode","linkReference","loose","listLoose","rows","firstRow","tableContent","tableCell","tableRow","siblings","align","cellIndex","cells","cell","alignValue","toml","yaml","footnoteDefinition","convert","castFactory","tests","checks","anyFactory","propsFactory","subresult","grandparents","toResult","visitParents","hName","hChildren","hProperties","passThrough","unknownHandler","defaultUnknownHandler","toHast","allowDangerousHtml","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","footnoteBackLabel","definitions","augment","createState","foot","listItems","referenceIndex","backReferences","backReference","dataFootnoteBackref","tailTail","dataFootnotes","footer","destination","bridge","mutate","VFileMessage","place","fatal","ruleId","actual","expected","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","unmatchedSlash","startPart","startDot","preDotState","segments","joined","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","lastIndexOf","normalizeString","proc","isUrl","fileUrlOrPath","VFile","cwd","stored","third","getPathFromURLPosix","urlToPath","assertNonEmpty","dirname","assertPart","extname","stem","fail","part","transformers","trough","attachers","frozen","freezeIndex","processor","assertUnfrozen","Compiler","attacher","transformer","addPlugin","addList","addPreset","plugin","plugins","vfile","assertParser","newable","assertCompiler","assertNode","compile","runSync","bail","assertDone","asyncName","looksLikeAVFile","stringifyPosition","CONTINUE","EXIT"],"sourceRoot":""}