1 line
813 KiB
XML
1 line
813 KiB
XML
{"version":3,"file":"PublicAlbumContent-NMWWk0wJ.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionButtonGroup-DEf00ge6.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSearch-BC3kPnxr.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-JruJ3cF1.mjs","../node_modules/linkifyjs/dist/linkify.es.js","../node_modules/linkify-string/dist/linkify-string.es.js","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-BdryV6wY.mjs","../node_modules/@nextcloud/vue/dist/Functions/preloadImage.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCollectionList-CFt-EZON.mjs","../node_modules/vue-color/dist/vue-color.min.js","../node_modules/@nextcloud/vue/dist/chunks/NcColorPicker-D7aj2f61.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDashboardWidget-eStjL-WD.mjs","../node_modules/emoji-mart-vue-fast/dist/emoji-mart.js","../node_modules/@nextcloud/vue/dist/chunks/emoji-BY_D0V5K.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEmojiPicker-Du-vbR5T.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRelatedResourcesPanel-Y38zaKtn.mjs","../node_modules/@nextcloud/vue/dist/chunks/index-56SXuvlv.mjs","../node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-4kExxHbR.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRichText-CwXSzf21.mjs","../node_modules/tributejs/dist/tribute.esm.js","../node_modules/@nextcloud/vue/dist/chunks/NcRichContenteditable-B8UqleMX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelectTags-wJN9J7_t.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelectUsers-W17kOow7.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsInputText-YO053agL.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSection-C76Kqeew.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSelectGroup-CH_kppKo.mjs","../node_modules/@nextcloud/vue/dist/Functions/isDarkTheme.mjs","../node_modules/@nextcloud/vue/dist/Directives/Tooltip.mjs","../node_modules/@nextcloud/vue/dist/Mixins/isMobile.mjs","../src/views/PublicAlbumContent.vue"],"sourcesContent":["import '../assets/NcActionButtonGroup-BND4GQdv.css';\nimport { defineComponent } from \"vue\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { r as register, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister();\nconst _sfc_main = defineComponent({\n name: \"NcActionButtonGroup\",\n inject: {\n isInSemanticMenu: {\n from: \"NcActions:isSemanticMenu\",\n default: false\n }\n },\n props: {\n /**\n * Optional text shown below the button group\n */\n name: {\n required: false,\n default: void 0,\n type: String\n }\n },\n setup() {\n return {\n labelId: `nc-action-button-group-${GenRandomId()}`\n };\n },\n methods: {\n t\n }\n});\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"li\", { staticClass: \"nc-button-group-base\", attrs: { \"role\": _vm.isInSemanticMenu && \"presentation\" } }, [_vm.name ? _c(\"div\", { attrs: { \"id\": _vm.labelId } }, [_vm._v(\" \" + _vm._s(_vm.name) + \" \")]) : _vm._e(), _c(\"ul\", { staticClass: \"nc-button-group-content\", attrs: { \"role\": \"group\", \"aria-labelledby\": _vm.name ? _vm.labelId : void 0 } }, [_vm._t(\"default\")], 2)]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n null\n);\nconst NcActionButtonGroup = __component__.exports;\nexport {\n NcActionButtonGroup as N\n};\n//# sourceMappingURL=NcActionButtonGroup-DEf00ge6.mjs.map\n","import '../assets/NcAppNavigationSearch-CFtTLRbc.css';\nimport { useFocusWithin } from \"@vueuse/core\";\nimport { useSlots, ref, watch, nextTick } from \"vue\";\nimport { r as register, p as t42, q as t14, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport { C as Close } from \"./Close-BtLPUSdO.mjs\";\nimport { N as NcInputField } from \"./NcInputField-DTtUueUZ.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t14, t42);\nconst __default__ = {\n name: \"NcAppNavigationSearch\",\n model: {\n event: \"update:modelValue\",\n prop: \"modelValue\"\n }\n};\nconst _sfc_main = /* @__PURE__ */ Object.assign(__default__, {\n props: {\n /**\n * Current search input\n */\n modelValue: {\n type: String,\n default: \"\"\n },\n /**\n * Text used to label the search input\n */\n label: {\n type: String,\n default: t(\"Search…\")\n },\n /**\n * Placeholder of the search input\n * By default the value of `label` is used.\n */\n placeholder: {\n type: String,\n default: null\n }\n },\n emits: [\"update:modelValue\"],\n setup(__props, { emit }) {\n const slots = useSlots();\n const inputElement = ref();\n const { focused: inputHasFocus } = useFocusWithin(inputElement);\n const transitionTimeout = Number.parseInt(window.getComputedStyle(window.document.body).getPropertyValue(\"--animation-quick\")) || 100;\n const actionsContainer = ref();\n const hasActions = () => !!slots.actions;\n const showActions = ref(true);\n const timeoutId = ref();\n const hideActions = ref(false);\n watch(inputHasFocus, () => {\n showActions.value = !inputHasFocus.value;\n });\n watch(showActions, (show) => {\n window.clearTimeout(timeoutId.value);\n if (show) {\n hideActions.value = false;\n } else {\n window.setTimeout(() => {\n hideActions.value = !show;\n }, transitionTimeout);\n }\n });\n function onCloseSearch() {\n emit(\"update:modelValue\", \"\");\n if (hasActions()) {\n showActions.value = true;\n nextTick(() => actionsContainer.value.querySelector(\"button\")?.focus());\n }\n }\n return { __sfc: true, emit, slots, inputElement, inputHasFocus, transitionTimeout, actionsContainer, hasActions, showActions, timeoutId, hideActions, onCloseSearch, t, IconClose: Close, NcInputField };\n }\n});\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(\"div\", { staticClass: \"app-navigation-search\", class: {\n \"app-navigation-search--has-actions\": _setup.hasActions()\n } }, [_c(_setup.NcInputField, { ref: \"inputElement\", staticClass: \"app-navigation-search__input\", attrs: { \"aria-label\": _vm.label, \"label-outside\": \"\", \"placeholder\": _vm.placeholder ?? _vm.label, \"show-trailing-button\": \"\", \"trailing-button-label\": _setup.t(\"Clear search\"), \"type\": \"search\", \"value\": _vm.modelValue }, on: { \"update:value\": function($event) {\n return _vm.$emit(\"update:modelValue\", $event);\n }, \"trailing-button-click\": _setup.onCloseSearch }, scopedSlots: _vm._u([{ key: \"trailing-button-icon\", fn: function() {\n return [_c(_setup.IconClose, { attrs: { \"size\": 20 } })];\n }, proxy: true }]) }), _setup.hasActions() ? _c(\"div\", { ref: \"actionsContainer\", staticClass: \"app-navigation-search__actions\", class: {\n \"app-navigation-search__actions--hidden\": !_setup.showActions,\n \"hidden-visually\": _setup.hideActions\n } }, [_vm._t(\"actions\")], 2) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"6fcd64e7\"\n);\nconst NcAppNavigationSearch = __component__.exports;\nexport {\n NcAppNavigationSearch as N\n};\n//# sourceMappingURL=NcAppNavigationSearch-BC3kPnxr.mjs.map\n","import '../assets/NcMentionBubble-CB5c5ue2.css';\nimport '../assets/NcAppNavigationSettings-vd47rlNY.css';\nimport { r as register, x as t45, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport clickOutsideOptions from \"../Mixins/clickOutsideOptions.mjs\";\nimport \"../Composables/useIsFullscreen.mjs\";\nimport \"../Composables/useIsMobile.mjs\";\nimport \"@nextcloud/router\";\n/* empty css */\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport \"escape-html\";\nimport \"striptags\";\nimport \"vue\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/capabilities\";\nimport { vOnClickOutside } from \"@vueuse/components\";\nregister(t45);\nconst _sfc_main$1 = {\n name: \"CogIcon\",\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};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon cog-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst Cog = __component__$1.exports;\nconst _sfc_main = {\n directives: {\n ClickOutside: vOnClickOutside\n },\n components: {\n Cog\n },\n mixins: [\n clickOutsideOptions\n ],\n props: {\n name: {\n type: String,\n required: false,\n default: t(\"Settings\")\n }\n },\n data() {\n return {\n open: false\n };\n },\n computed: {\n clickOutsideConfig() {\n return [\n this.closeMenu,\n this.clickOutsideOptions\n ];\n }\n },\n methods: {\n toggleMenu() {\n this.open = !this.open;\n },\n closeMenu() {\n this.open = false;\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { directives: [{ name: \"click-outside\", rawName: \"v-click-outside\", value: _vm.clickOutsideConfig, expression: \"clickOutsideConfig\" }], class: { open: _vm.open }, attrs: { \"id\": \"app-settings\" } }, [_c(\"div\", { attrs: { \"id\": \"app-settings__header\" } }, [_c(\"button\", { staticClass: \"settings-button\", attrs: { \"type\": \"button\", \"aria-expanded\": _vm.open ? \"true\" : \"false\", \"aria-controls\": \"app-settings__content\" }, on: { \"click\": _vm.toggleMenu } }, [_c(\"Cog\", { staticClass: \"settings-button__icon\", attrs: { \"size\": 20 } }), _c(\"span\", { staticClass: \"settings-button__label\" }, [_vm._v(_vm._s(_vm.name))])], 1)]), _c(\"Transition\", { attrs: { \"name\": \"slide-up\" } }, [_c(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: _vm.open, expression: \"open\" }], attrs: { \"id\": \"app-settings__content\" } }, [_vm._t(\"default\")], 2)])], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"d278a327\"\n);\nconst NcAppNavigationSettings = __component__.exports;\nexport {\n NcAppNavigationSettings as N\n};\n//# sourceMappingURL=NcAppNavigationSettings-JruJ3cF1.mjs.map\n","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nvar tlds = 'aaa \\\naarp \\\nabarth \\\nabb \\\nabbott \\\nabbvie \\\nabc \\\nable \\\nabogado \\\nabudhabi \\\nac \\\nacademy \\\naccenture \\\naccountant \\\naccountants \\\naco \\\nactor \\\nad \\\nadac \\\nads \\\nadult \\\nae \\\naeg \\\naero \\\naetna \\\naf \\\nafl \\\nafrica \\\nag \\\nagakhan \\\nagency \\\nai \\\naig \\\nairbus \\\nairforce \\\nairtel \\\nakdn \\\nal \\\nalfaromeo \\\nalibaba \\\nalipay \\\nallfinanz \\\nallstate \\\nally \\\nalsace \\\nalstom \\\nam \\\namazon \\\namericanexpress \\\namericanfamily \\\namex \\\namfam \\\namica \\\namsterdam \\\nanalytics \\\nandroid \\\nanquan \\\nanz \\\nao \\\naol \\\napartments \\\napp \\\napple \\\naq \\\naquarelle \\\nar \\\narab \\\naramco \\\narchi \\\narmy \\\narpa \\\nart \\\narte \\\nas \\\nasda \\\nasia \\\nassociates \\\nat \\\nathleta \\\nattorney \\\nau \\\nauction \\\naudi \\\naudible \\\naudio \\\nauspost \\\nauthor \\\nauto \\\nautos \\\navianca \\\naw \\\naws \\\nax \\\naxa \\\naz \\\nazure \\\nba \\\nbaby \\\nbaidu \\\nbanamex \\\nbananarepublic \\\nband \\\nbank \\\nbar \\\nbarcelona \\\nbarclaycard \\\nbarclays \\\nbarefoot \\\nbargains \\\nbaseball \\\nbasketball \\\nbauhaus \\\nbayern \\\nbb \\\nbbc \\\nbbt \\\nbbva \\\nbcg \\\nbcn \\\nbd \\\nbe \\\nbeats \\\nbeauty \\\nbeer \\\nbentley \\\nberlin \\\nbest \\\nbestbuy \\\nbet \\\nbf \\\nbg \\\nbh \\\nbharti \\\nbi \\\nbible \\\nbid \\\nbike \\\nbing \\\nbingo \\\nbio \\\nbiz \\\nbj \\\nblack \\\nblackfriday \\\nblockbuster \\\nblog \\\nbloomberg \\\nblue \\\nbm \\\nbms \\\nbmw \\\nbn \\\nbnpparibas \\\nbo \\\nboats \\\nboehringer \\\nbofa \\\nbom \\\nbond \\\nboo \\\nbook \\\nbooking \\\nbosch \\\nbostik \\\nboston \\\nbot \\\nboutique \\\nbox \\\nbr \\\nbradesco \\\nbridgestone \\\nbroadway \\\nbroker \\\nbrother \\\nbrussels \\\nbs \\\nbt \\\nbugatti \\\nbuild \\\nbuilders \\\nbusiness \\\nbuy \\\nbuzz \\\nbv \\\nbw \\\nby \\\nbz \\\nbzh \\\nca \\\ncab \\\ncafe \\\ncal \\\ncall \\\ncalvinklein \\\ncam \\\ncamera \\\ncamp \\\ncancerresearch \\\ncanon \\\ncapetown \\\ncapital \\\ncapitalone \\\ncar \\\ncaravan \\\ncards \\\ncare \\\ncareer \\\ncareers \\\ncars \\\ncasa \\\ncase \\\ncash \\\ncasino \\\ncat \\\ncatering \\\ncatholic \\\ncba \\\ncbn \\\ncbre \\\ncbs \\\ncc \\\ncd \\\ncenter \\\nceo \\\ncern \\\ncf \\\ncfa \\\ncfd \\\ncg \\\nch \\\nchanel \\\nchannel \\\ncharity \\\nchase \\\nchat \\\ncheap \\\nchintai \\\nchristmas \\\nchrome \\\nchurch \\\nci \\\ncipriani \\\ncircle \\\ncisco \\\ncitadel \\\nciti \\\ncitic \\\ncity \\\ncityeats \\\nck \\\ncl \\\nclaims \\\ncleaning \\\nclick \\\nclinic \\\nclinique \\\nclothing \\\ncloud \\\nclub \\\nclubmed \\\ncm \\\ncn \\\nco \\\ncoach \\\ncodes \\\ncoffee \\\ncollege \\\ncologne \\\ncom \\\ncomcast \\\ncommbank \\\ncommunity \\\ncompany \\\ncompare \\\ncomputer \\\ncomsec \\\ncondos \\\nconstruction \\\nconsulting \\\ncontact \\\ncontractors \\\ncooking \\\ncookingchannel \\\ncool \\\ncoop \\\ncorsica \\\ncountry \\\ncoupon \\\ncoupons \\\ncourses \\\ncpa \\\ncr \\\ncredit \\\ncreditcard \\\ncreditunion \\\ncricket \\\ncrown \\\ncrs \\\ncruise \\\ncruises \\\ncu \\\ncuisinella \\\ncv \\\ncw \\\ncx \\\ncy \\\ncymru \\\ncyou \\\ncz \\\ndabur \\\ndad \\\ndance \\\ndata \\\ndate \\\ndating \\\ndatsun \\\nday \\\ndclk \\\ndds \\\nde \\\ndeal \\\ndealer \\\ndeals \\\ndegree \\\ndelivery \\\ndell \\\ndeloitte \\\ndelta \\\ndemocrat \\\ndental \\\ndentist \\\ndesi \\\ndesign \\\ndev \\\ndhl \\\ndiamonds \\\ndiet \\\ndigital \\\ndirect \\\ndirectory \\\ndiscount \\\ndiscover \\\ndish \\\ndiy \\\ndj \\\ndk \\\ndm \\\ndnp \\\ndo \\\ndocs \\\ndoctor \\\ndog \\\ndomains \\\ndot \\\ndownload \\\ndrive \\\ndtv \\\ndubai \\\ndunlop \\\ndupont \\\ndurban \\\ndvag \\\ndvr \\\ndz \\\nearth \\\neat \\\nec \\\neco \\\nedeka \\\nedu \\\neducation \\\nee \\\neg \\\nemail \\\nemerck \\\nenergy \\\nengineer \\\nengineering \\\nenterprises \\\nepson \\\nequipment \\\ner \\\nericsson \\\nerni \\\nes \\\nesq \\\nestate \\\net \\\netisalat \\\neu \\\neurovision \\\neus \\\nevents \\\nexchange \\\nexpert \\\nexposed \\\nexpress \\\nextraspace \\\nfage \\\nfail \\\nfairwinds \\\nfaith \\\nfamily \\\nfan \\\nfans \\\nfarm \\\nfarmers \\\nfashion \\\nfast \\\nfedex \\\nfeedback \\\nferrari \\\nferrero \\\nfi \\\nfiat \\\nfidelity \\\nfido \\\nfilm \\\nfinal \\\nfinance \\\nfinancial \\\nfire \\\nfirestone \\\nfirmdale \\\nfish \\\nfishing \\\nfit \\\nfitness \\\nfj \\\nfk \\\nflickr \\\nflights \\\nflir \\\nflorist \\\nflowers \\\nfly \\\nfm \\\nfo \\\nfoo \\\nfood \\\nfoodnetwork \\\nfootball \\\nford \\\nforex \\\nforsale \\\nforum \\\nfoundation \\\nfox \\\nfr \\\nfree \\\nfresenius \\\nfrl \\\nfrogans \\\nfrontdoor \\\nfrontier \\\nftr \\\nfujitsu \\\nfun \\\nfund \\\nfurniture \\\nfutbol \\\nfyi \\\nga \\\ngal \\\ngallery \\\ngallo \\\ngallup \\\ngame \\\ngames \\\ngap \\\ngarden \\\ngay \\\ngb \\\ngbiz \\\ngd \\\ngdn \\\nge \\\ngea \\\ngent \\\ngenting \\\ngeorge \\\ngf \\\ngg \\\nggee \\\ngh \\\ngi \\\ngift \\\ngifts \\\ngives \\\ngiving \\\ngl \\\nglass \\\ngle \\\nglobal \\\nglobo \\\ngm \\\ngmail \\\ngmbh \\\ngmo \\\ngmx \\\ngn \\\ngodaddy \\\ngold \\\ngoldpoint \\\ngolf \\\ngoo \\\ngoodyear \\\ngoog \\\ngoogle \\\ngop \\\ngot \\\ngov \\\ngp \\\ngq \\\ngr \\\ngrainger \\\ngraphics \\\ngratis \\\ngreen \\\ngripe \\\ngrocery \\\ngroup \\\ngs \\\ngt \\\ngu \\\nguardian \\\ngucci \\\nguge \\\nguide \\\nguitars \\\nguru \\\ngw \\\ngy \\\nhair \\\nhamburg \\\nhangout \\\nhaus \\\nhbo \\\nhdfc \\\nhdfcbank \\\nhealth \\\nhealthcare \\\nhelp \\\nhelsinki \\\nhere \\\nhermes \\\nhgtv \\\nhiphop \\\nhisamitsu \\\nhitachi \\\nhiv \\\nhk \\\nhkt \\\nhm \\\nhn \\\nhockey \\\nholdings \\\nholiday \\\nhomedepot \\\nhomegoods \\\nhomes \\\nhomesense \\\nhonda \\\nhorse \\\nhospital \\\nhost \\\nhosting \\\nhot \\\nhoteles \\\nhotels \\\nhotmail \\\nhouse \\\nhow \\\nhr \\\nhsbc \\\nht \\\nhu \\\nhughes \\\nhyatt \\\nhyundai \\\nibm \\\nicbc \\\nice \\\nicu \\\nid \\\nie \\\nieee \\\nifm \\\nikano \\\nil \\\nim \\\nimamat \\\nimdb \\\nimmo \\\nimmobilien \\\nin \\\ninc \\\nindustries \\\ninfiniti \\\ninfo \\\ning \\\nink \\\ninstitute \\\ninsurance \\\ninsure \\\nint \\\ninternational \\\nintuit \\\ninvestments \\\nio \\\nipiranga \\\niq \\\nir \\\nirish \\\nis \\\nismaili \\\nist \\\nistanbul \\\nit \\\nitau \\\nitv \\\njaguar \\\njava \\\njcb \\\nje \\\njeep \\\njetzt \\\njewelry \\\njio \\\njll \\\njm \\\njmp \\\njnj \\\njo \\\njobs \\\njoburg \\\njot \\\njoy \\\njp \\\njpmorgan \\\njprs \\\njuegos \\\njuniper \\\nkaufen \\\nkddi \\\nke \\\nkerryhotels \\\nkerrylogistics \\\nkerryproperties \\\nkfh \\\nkg \\\nkh \\\nki \\\nkia \\\nkids \\\nkim \\\nkinder \\\nkindle \\\nkitchen \\\nkiwi \\\nkm \\\nkn \\\nkoeln \\\nkomatsu \\\nkosher \\\nkp \\\nkpmg \\\nkpn \\\nkr \\\nkrd \\\nkred \\\nkuokgroup \\\nkw \\\nky \\\nkyoto \\\nkz \\\nla \\\nlacaixa \\\nlamborghini \\\nlamer \\\nlancaster \\\nlancia \\\nland \\\nlandrover \\\nlanxess \\\nlasalle \\\nlat \\\nlatino \\\nlatrobe \\\nlaw \\\nlawyer \\\nlb \\\nlc \\\nlds \\\nlease \\\nleclerc \\\nlefrak \\\nlegal \\\nlego \\\nlexus \\\nlgbt \\\nli \\\nlidl \\\nlife \\\nlifeinsurance \\\nlifestyle \\\nlighting \\\nlike \\\nlilly \\\nlimited \\\nlimo \\\nlincoln \\\nlinde \\\nlink \\\nlipsy \\\nlive \\\nliving \\\nlk \\\nllc \\\nllp \\\nloan \\\nloans \\\nlocker \\\nlocus \\\nloft \\\nlol \\\nlondon \\\nlotte \\\nlotto \\\nlove \\\nlpl \\\nlplfinancial \\\nlr \\\nls \\\nlt \\\nltd \\\nltda \\\nlu \\\nlundbeck \\\nluxe \\\nluxury \\\nlv \\\nly \\\nma \\\nmacys \\\nmadrid \\\nmaif \\\nmaison \\\nmakeup \\\nman \\\nmanagement \\\nmango \\\nmap \\\nmarket \\\nmarketing \\\nmarkets \\\nmarriott \\\nmarshalls \\\nmaserati \\\nmattel \\\nmba \\\nmc \\\nmckinsey \\\nmd \\\nme \\\nmed \\\nmedia \\\nmeet \\\nmelbourne \\\nmeme \\\nmemorial \\\nmen \\\nmenu \\\nmerckmsd \\\nmg \\\nmh \\\nmiami \\\nmicrosoft \\\nmil \\\nmini \\\nmint \\\nmit \\\nmitsubishi \\\nmk \\\nml \\\nmlb \\\nmls \\\nmm \\\nmma \\\nmn \\\nmo \\\nmobi \\\nmobile \\\nmoda \\\nmoe \\\nmoi \\\nmom \\\nmonash \\\nmoney \\\nmonster \\\nmormon \\\nmortgage \\\nmoscow \\\nmoto \\\nmotorcycles \\\nmov \\\nmovie \\\nmp \\\nmq \\\nmr \\\nms \\\nmsd \\\nmt \\\nmtn \\\nmtr \\\nmu \\\nmuseum \\\nmusic \\\nmutual \\\nmv \\\nmw \\\nmx \\\nmy \\\nmz \\\nna \\\nnab \\\nnagoya \\\nname \\\nnatura \\\nnavy \\\nnba \\\nnc \\\nne \\\nnec \\\nnet \\\nnetbank \\\nnetflix \\\nnetwork \\\nneustar \\\nnew \\\nnews \\\nnext \\\nnextdirect \\\nnexus \\\nnf \\\nnfl \\\nng \\\nngo \\\nnhk \\\nni \\\nnico \\\nnike \\\nnikon \\\nninja \\\nnissan \\\nnissay \\\nnl \\\nno \\\nnokia \\\nnorthwesternmutual \\\nnorton \\\nnow \\\nnowruz \\\nnowtv \\\nnp \\\nnr \\\nnra \\\nnrw \\\nntt \\\nnu \\\nnyc \\\nnz \\\nobi \\\nobserver \\\noffice \\\nokinawa \\\nolayan \\\nolayangroup \\\noldnavy \\\nollo \\\nom \\\nomega \\\none \\\nong \\\nonl \\\nonline \\\nooo \\\nopen \\\noracle \\\norange \\\norg \\\norganic \\\norigins \\\nosaka \\\notsuka \\\nott \\\novh \\\npa \\\npage \\\npanasonic \\\nparis \\\npars \\\npartners \\\nparts \\\nparty \\\npassagens \\\npay \\\npccw \\\npe \\\npet \\\npf \\\npfizer \\\npg \\\nph \\\npharmacy \\\nphd \\\nphilips \\\nphone \\\nphoto \\\nphotography \\\nphotos \\\nphysio \\\npics \\\npictet \\\npictures \\\npid \\\npin \\\nping \\\npink \\\npioneer \\\npizza \\\npk \\\npl \\\nplace \\\nplay \\\nplaystation \\\nplumbing \\\nplus \\\npm \\\npn \\\npnc \\\npohl \\\npoker \\\npolitie \\\nporn \\\npost \\\npr \\\npramerica \\\npraxi \\\npress \\\nprime \\\npro \\\nprod \\\nproductions \\\nprof \\\nprogressive \\\npromo \\\nproperties \\\nproperty \\\nprotection \\\npru \\\nprudential \\\nps \\\npt \\\npub \\\npw \\\npwc \\\npy \\\nqa \\\nqpon \\\nquebec \\\nquest \\\nracing \\\nradio \\\nre \\\nread \\\nrealestate \\\nrealtor \\\nrealty \\\nrecipes \\\nred \\\nredstone \\\nredumbrella \\\nrehab \\\nreise \\\nreisen \\\nreit \\\nreliance \\\nren \\\nrent \\\nrentals \\\nrepair \\\nreport \\\nrepublican \\\nrest \\\nrestaurant \\\nreview \\\nreviews \\\nrexroth \\\nrich \\\nrichardli \\\nricoh \\\nril \\\nrio \\\nrip \\\nro \\\nrocher \\\nrocks \\\nrodeo \\\nrogers \\\nroom \\\nrs \\\nrsvp \\\nru \\\nrugby \\\nruhr \\\nrun \\\nrw \\\nrwe \\\nryukyu \\\nsa \\\nsaarland \\\nsafe \\\nsafety \\\nsakura \\\nsale \\\nsalon \\\nsamsclub \\\nsamsung \\\nsandvik \\\nsandvikcoromant \\\nsanofi \\\nsap \\\nsarl \\\nsas \\\nsave \\\nsaxo \\\nsb \\\nsbi \\\nsbs \\\nsc \\\nsca \\\nscb \\\nschaeffler \\\nschmidt \\\nscholarships \\\nschool \\\nschule \\\nschwarz \\\nscience \\\nscot \\\nsd \\\nse \\\nsearch \\\nseat \\\nsecure \\\nsecurity \\\nseek \\\nselect \\\nsener \\\nservices \\\nses \\\nseven \\\nsew \\\nsex \\\nsexy \\\nsfr \\\nsg \\\nsh \\\nshangrila \\\nsharp \\\nshaw \\\nshell \\\nshia \\\nshiksha \\\nshoes \\\nshop \\\nshopping \\\nshouji \\\nshow \\\nshowtime \\\nsi \\\nsilk \\\nsina \\\nsingles \\\nsite \\\nsj \\\nsk \\\nski \\\nskin \\\nsky \\\nskype \\\nsl \\\nsling \\\nsm \\\nsmart \\\nsmile \\\nsn \\\nsncf \\\nso \\\nsoccer \\\nsocial \\\nsoftbank \\\nsoftware \\\nsohu \\\nsolar \\\nsolutions \\\nsong \\\nsony \\\nsoy \\\nspa \\\nspace \\\nsport \\\nspot \\\nsr \\\nsrl \\\nss \\\nst \\\nstada \\\nstaples \\\nstar \\\nstatebank \\\nstatefarm \\\nstc \\\nstcgroup \\\nstockholm \\\nstorage \\\nstore \\\nstream \\\nstudio \\\nstudy \\\nstyle \\\nsu \\\nsucks \\\nsupplies \\\nsupply \\\nsupport \\\nsurf \\\nsurgery \\\nsuzuki \\\nsv \\\nswatch \\\nswiss \\\nsx \\\nsy \\\nsydney \\\nsystems \\\nsz \\\ntab \\\ntaipei \\\ntalk \\\ntaobao \\\ntarget \\\ntatamotors \\\ntatar \\\ntattoo \\\ntax \\\ntaxi \\\ntc \\\ntci \\\ntd \\\ntdk \\\nteam \\\ntech \\\ntechnology \\\ntel \\\ntemasek \\\ntennis \\\nteva \\\ntf \\\ntg \\\nth \\\nthd \\\ntheater \\\ntheatre \\\ntiaa \\\ntickets \\\ntienda \\\ntiffany \\\ntips \\\ntires \\\ntirol \\\ntj \\\ntjmaxx \\\ntjx \\\ntk \\\ntkmaxx \\\ntl \\\ntm \\\ntmall \\\ntn \\\nto \\\ntoday \\\ntokyo \\\ntools \\\ntop \\\ntoray \\\ntoshiba \\\ntotal \\\ntours \\\ntown \\\ntoyota \\\ntoys \\\ntr \\\ntrade \\\ntrading \\\ntraining \\\ntravel \\\ntravelchannel \\\ntravelers \\\ntravelersinsurance \\\ntrust \\\ntrv \\\ntt \\\ntube \\\ntui \\\ntunes \\\ntushu \\\ntv \\\ntvs \\\ntw \\\ntz \\\nua \\\nubank \\\nubs \\\nug \\\nuk \\\nunicom \\\nuniversity \\\nuno \\\nuol \\\nups \\\nus \\\nuy \\\nuz \\\nva \\\nvacations \\\nvana \\\nvanguard \\\nvc \\\nve \\\nvegas \\\nventures \\\nverisign \\\nvermögensberater \\\nvermögensberatung \\\nversicherung \\\nvet \\\nvg \\\nvi \\\nviajes \\\nvideo \\\nvig \\\nviking \\\nvillas \\\nvin \\\nvip \\\nvirgin \\\nvisa \\\nvision \\\nviva \\\nvivo \\\nvlaanderen \\\nvn \\\nvodka \\\nvolkswagen \\\nvolvo \\\nvote \\\nvoting \\\nvoto \\\nvoyage \\\nvu \\\nvuelos \\\nwales \\\nwalmart \\\nwalter \\\nwang \\\nwanggou \\\nwatch \\\nwatches \\\nweather \\\nweatherchannel \\\nwebcam \\\nweber \\\nwebsite \\\nwed \\\nwedding \\\nweibo \\\nweir \\\nwf \\\nwhoswho \\\nwien \\\nwiki \\\nwilliamhill \\\nwin \\\nwindows \\\nwine \\\nwinners \\\nwme \\\nwolterskluwer \\\nwoodside \\\nwork \\\nworks \\\nworld \\\nwow \\\nws \\\nwtc \\\nwtf \\\nxbox \\\nxerox \\\nxfinity \\\nxihuan \\\nxin \\\nxxx \\\nxyz \\\nyachts \\\nyahoo \\\nyamaxun \\\nyandex \\\nye \\\nyodobashi \\\nyoga \\\nyokohama \\\nyou \\\nyoutube \\\nyt \\\nyun \\\nza \\\nzappos \\\nzara \\\nzero \\\nzip \\\nzm \\\nzone \\\nzuerich \\\nzw'.split(' '); // Internationalized domain names containing non-ASCII\n\nvar utlds = 'ελ \\\nευ \\\nбг \\\nбел \\\nдети \\\nею \\\nкатолик \\\nком \\\nмкд \\\nмон \\\nмосква \\\nонлайн \\\nорг \\\nрус \\\nрф \\\nсайт \\\nсрб \\\nукр \\\nқаз \\\nհայ \\\nישראל \\\nקום \\\nابوظبي \\\nاتصالات \\\nارامكو \\\nالاردن \\\nالبحرين \\\nالجزائر \\\nالسعودية \\\nالعليان \\\nالمغرب \\\nامارات \\\nایران \\\nبارت \\\nبازار \\\nبيتك \\\nبھارت \\\nتونس \\\nسودان \\\nسورية \\\nشبكة \\\nعراق \\\nعرب \\\nعمان \\\nفلسطين \\\nقطر \\\nكاثوليك \\\nكوم \\\nمصر \\\nمليسيا \\\nموريتانيا \\\nموقع \\\nهمراه \\\nپاکستان \\\nڀارت \\\nकॉम \\\nनेट \\\nभारत \\\nभारतम् \\\nभारोत \\\nसंगठन \\\nবাংলা \\\nভারত \\\nভাৰত \\\nਭਾਰਤ \\\nભારત \\\nଭାରତ \\\nஇந்தியா \\\nஇலங்கை \\\nசிங்கப்பூர் \\\nభారత్ \\\nಭಾರತ \\\nഭാരതം \\\nලංකා \\\nคอม \\\nไทย \\\nລາວ \\\nგე \\\nみんな \\\nアマゾン \\\nクラウド \\\nグーグル \\\nコム \\\nストア \\\nセール \\\nファッション \\\nポイント \\\n世界 \\\n中信 \\\n中国 \\\n中國 \\\n中文网 \\\n亚马逊 \\\n企业 \\\n佛山 \\\n信息 \\\n健康 \\\n八卦 \\\n公司 \\\n公益 \\\n台湾 \\\n台灣 \\\n商城 \\\n商店 \\\n商标 \\\n嘉里 \\\n嘉里大酒店 \\\n在线 \\\n大拿 \\\n天主教 \\\n娱乐 \\\n家電 \\\n广东 \\\n微博 \\\n慈善 \\\n我爱你 \\\n手机 \\\n招聘 \\\n政务 \\\n政府 \\\n新加坡 \\\n新闻 \\\n时尚 \\\n書籍 \\\n机构 \\\n淡马锡 \\\n游戏 \\\n澳門 \\\n点看 \\\n移动 \\\n组织机构 \\\n网址 \\\n网店 \\\n网站 \\\n网络 \\\n联通 \\\n诺基亚 \\\n谷歌 \\\n购物 \\\n通販 \\\n集团 \\\n電訊盈科 \\\n飞利浦 \\\n食品 \\\n餐厅 \\\n香格里拉 \\\n香港 \\\n닷넷 \\\n닷컴 \\\n삼성 \\\n한국'.split(' ');\n\n/**\n * @template A\n * @template B\n * @param {A} target\n * @param {B} properties\n * @return {A & B}\n */\nvar assign = function assign(target, properties) {\n for (var key in properties) {\n target[key] = properties[key];\n }\n\n return target;\n};\n\n/**\n * Finite State Machine generation utilities\n */\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n// Keys in scanner Collections instances\n\nvar numeric = 'numeric';\nvar ascii = 'ascii';\nvar alpha = 'alpha';\nvar asciinumeric = 'asciinumeric';\nvar alphanumeric = 'alphanumeric';\nvar domain = 'domain';\nvar emoji = 'emoji';\nvar scheme = 'scheme';\nvar slashscheme = 'slashscheme';\nvar whitespace = 'whitespace';\n/**\n * @template T\n * @param {string} name\n * @param {Collections<T>} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\n\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n\n return groups[name];\n}\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections<T>} groups\n * @param {Flags} flags\n */\n\n\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n\n if (flags[emoji]) {\n flags[domain] = true;\n }\n\n for (var k in flags) {\n var group = registerGroup(k, groups);\n\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections<T>} groups\n * @returns {Flags} group flags that contain this token\n */\n\nfunction flagsForToken(t, groups) {\n var result = {};\n\n for (var c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n\n return result;\n}\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\n\n\nfunction State(token) {\n if (token === void 0) {\n token = null;\n }\n\n // this.n = null; // DEBUG: State name\n\n /** @type {{ [input: string]: State<T> }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n\n /** @type {[RegExp, State<T>][]} jr */\n\n this.jr = [];\n /** @type {?State<T>} jd */\n\n this.jd = null;\n /** @type {?T} t */\n\n this.t = token;\n}\n/**\n * Scanner token groups\n * @type Collections<string>\n */\n\nState.groups = {};\nState.prototype = {\n accepts: function accepts() {\n return !!this.t;\n },\n\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State<T>} the next state, if any\n */\n go: function go(input) {\n var state = this;\n var nextState = state.j[input];\n\n if (nextState) {\n return nextState;\n }\n\n for (var i = 0; i < state.jr.length; i++) {\n var regex = state.jr[i][0];\n var _nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n\n if (_nextState && regex.test(input)) {\n return _nextState;\n }\n } // Nowhere left to jump! Return default, if any\n\n\n return state.jd;\n },\n\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has: function has(input, exactOnly) {\n if (exactOnly === void 0) {\n exactOnly = false;\n }\n\n return exactOnly ? input in this.j : !!this.go(input);\n },\n\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition<T> | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n */\n ta: function ta(inputs, next, flags, groups) {\n for (var i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n * @returns {State<T>} taken after the given input\n */\n tr: function tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n var nextState;\n\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n * @returns {State<T>} taken after the given input\n */\n ts: function ts(input, next, flags, groups) {\n var state = this;\n var len = input.length;\n\n if (!len) {\n return state;\n }\n\n for (var i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n\n return state.tt(input[len - 1], next, flags, groups);\n },\n\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of groups\n * @returns {State<T>} taken after the given input\n */\n tt: function tt(input, next, flags, groups) {\n groups = groups || State.groups;\n var state = this; // Check if existing state given, just a basic transition\n\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n\n var t = next; // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n\n var nextState,\n templateState = state.go(input);\n\n if (templateState) {\n nextState = new State();\n assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n var allFlags = assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n\n nextState.t = t; // overwrite anything that was previously there\n }\n\n state.j[input] = nextState;\n return nextState;\n }\n}; // Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections<T>} [groups]\n */\n\nvar ta = function ta(state, input, next, flags, groups) {\n return state.ta(input, next, flags, groups);\n};\n/**\n * @template T\n * @param {State<T>} state\n * @param {RegExp} regexp\n * @param {T | State<T>} [next]\n * @param {Flags} [flags]\n * @param {Collections<T>} [groups]\n */\n\nvar tr = function tr(state, regexp, next, flags, groups) {\n return state.tr(regexp, next, flags, groups);\n};\n/**\n * @template T\n * @param {State<T>} state\n * @param {string | string[]} input\n * @param {T | State<T>} [next]\n * @param {Flags} [flags]\n * @param {Collections<T>} [groups]\n */\n\nvar ts = function ts(state, input, next, flags, groups) {\n return state.ts(input, next, flags, groups);\n};\n/**\n * @template T\n * @param {State<T>} state\n * @param {string} input\n * @param {T | State<T>} [next]\n * @param {Collections<T>} [groups]\n * @param {Flags} [flags]\n */\n\nvar tt = function tt(state, input, next, flags, groups) {\n return state.tt(input, next, flags, groups);\n};\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n// A valid web domain token\nvar WORD = 'WORD'; // only contains a-z\n\nvar UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\n// Special case of word\n\nvar LOCALHOST = 'LOCALHOST'; // Valid top-level domain, special case of WORD (see tlds.js)\n\nvar TLD = 'TLD'; // Valid IDN TLD, special case of UWORD (see tlds.js)\n\nvar UTLD = 'UTLD'; // The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\n\nvar SCHEME = 'SCHEME'; // Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\n\nvar SLASH_SCHEME = 'SLASH_SCHEME'; // Any sequence of digits 0-9\n\nvar NUM = 'NUM'; // Any number of consecutive whitespace characters that are not newline\n\nvar WS = 'WS'; // New line (unix style)\n\nvar NL$1 = 'NL'; // \\n\n// Opening/closing bracket classes\n\nvar OPENBRACE = 'OPENBRACE'; // {\n\nvar OPENBRACKET = 'OPENBRACKET'; // [\n\nvar OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\n\nvar OPENPAREN = 'OPENPAREN'; // (\n\nvar CLOSEBRACE = 'CLOSEBRACE'; // }\n\nvar CLOSEBRACKET = 'CLOSEBRACKET'; // ]\n\nvar CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\n\nvar CLOSEPAREN = 'CLOSEPAREN'; // )\n// Various symbols\n\nvar AMPERSAND = 'AMPERSAND'; // &\n\nvar APOSTROPHE = 'APOSTROPHE'; // '\n\nvar ASTERISK = 'ASTERISK'; // *\n\nvar AT = 'AT'; // @\n\nvar BACKSLASH = 'BACKSLASH'; // \\\n\nvar BACKTICK = 'BACKTICK'; // `\n\nvar CARET = 'CARET'; // ^\n\nvar COLON = 'COLON'; // :\n\nvar COMMA = 'COMMA'; // ,\n\nvar DOLLAR = 'DOLLAR'; // $\n\nvar DOT = 'DOT'; // .\n\nvar EQUALS = 'EQUALS'; // =\n\nvar EXCLAMATION = 'EXCLAMATION'; // !\n\nvar HYPHEN = 'HYPHEN'; // -\n\nvar PERCENT = 'PERCENT'; // %\n\nvar PIPE = 'PIPE'; // |\n\nvar PLUS = 'PLUS'; // +\n\nvar POUND = 'POUND'; // #\n\nvar QUERY = 'QUERY'; // ?\n\nvar QUOTE = 'QUOTE'; // \"\n\nvar SEMI = 'SEMI'; // ;\n\nvar SLASH = 'SLASH'; // /\n\nvar TILDE = 'TILDE'; // ~\n\nvar UNDERSCORE = 'UNDERSCORE'; // _\n// Emoji symbol\n\nvar EMOJI$1 = 'EMOJI'; // Default token - anything that is not one of the above\n\nvar SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tWORD: WORD,\n\tUWORD: UWORD,\n\tLOCALHOST: LOCALHOST,\n\tTLD: TLD,\n\tUTLD: UTLD,\n\tSCHEME: SCHEME,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tNUM: NUM,\n\tWS: WS,\n\tNL: NL$1,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tHYPHEN: HYPHEN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tTILDE: TILDE,\n\tUNDERSCORE: UNDERSCORE,\n\tEMOJI: EMOJI$1,\n\tSYM: SYM\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nvar ASCII_LETTER = /[a-z]/;\nvar LETTER = /(?:[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/; // Any Unicode character with letter data type\n\nvar EMOJI = /(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEDD-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7C\\uDE80-\\uDE86\\uDE90-\\uDEAC\\uDEB0-\\uDEBA\\uDEC0-\\uDEC5\\uDED0-\\uDED9\\uDEE0-\\uDEE7\\uDEF0-\\uDEF6])/; // Any Unicode emoji character\n\nvar EMOJI_VARIATION$1 = /\\ufe0f/;\nvar DIGIT = /\\d/;\nvar SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tLETTER: LETTER,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tDIGIT: DIGIT,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\nvar NL = '\\n'; // New line character\n\nvar EMOJI_VARIATION = \"\\uFE0F\"; // Variation selector, follows heart and others\n\nvar EMOJI_JOINER = \"\\u200D\"; // zero-width joiner\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\n\nfunction init$2(customSchemes) {\n var _tr, _tr2, _tr3, _tr4, _tt, _tr5;\n\n if (customSchemes === void 0) {\n customSchemes = [];\n }\n\n // Frequently used states (name argument removed during minification)\n\n /** @type Collections<string> */\n var groups = {}; // of tokens\n\n State.groups = groups;\n /** @type State<string> */\n\n var Start = new State(); // States for special URL symbols that accept immediately after start\n\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n var Num = tr(Start, DIGIT, NUM, (_tr = {}, _tr[numeric] = true, _tr));\n tr(Num, DIGIT, Num); // State which emits a word token\n\n var Word = tr(Start, ASCII_LETTER, WORD, (_tr2 = {}, _tr2[ascii] = true, _tr2));\n tr(Word, ASCII_LETTER, Word); // Same as previous, but specific to non-fsm.ascii alphabet words\n\n var UWord = tr(Start, LETTER, UWORD, (_tr3 = {}, _tr3[alpha] = true, _tr3));\n tr(UWord, ASCII_LETTER); // Non-accepting\n\n tr(UWord, LETTER, UWord); // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n\n var Ws = tr(Start, SPACE, WS, (_tr4 = {}, _tr4[whitespace] = true, _tr4));\n tt(Start, NL, NL$1, (_tt = {}, _tt[whitespace] = true, _tt));\n tt(Ws, NL); // non-accepting state to avoid mixing whitespaces\n\n tr(Ws, SPACE, Ws); // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n\n var Emoji = tr(Start, EMOJI, EMOJI$1, (_tr5 = {}, _tr5[emoji] = true, _tr5));\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji); // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n var EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tr(EmojiJoiner, EMOJI, Emoji); // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n\n var wordjr = [[ASCII_LETTER, Word]];\n var uwordjr = [[ASCII_LETTER, null], [LETTER, UWord]];\n\n for (var i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n\n for (var _i = 0; _i < utlds.length; _i++) {\n fastts(Start, utlds[_i], UTLD, UWORD, uwordjr);\n }\n\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups); // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups); // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n\n customSchemes = customSchemes.sort(function (a, b) {\n return a[0] > b[0] ? 1 : -1;\n });\n\n for (var _i2 = 0; _i2 < customSchemes.length; _i2++) {\n var _ref, _ref2;\n\n var sch = customSchemes[_i2][0];\n var optionalSlashSlash = customSchemes[_i2][1];\n var flags = optionalSlashSlash ? (_ref = {}, _ref[scheme] = true, _ref) : (_ref2 = {}, _ref2[slashscheme] = true, _ref2);\n\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n\n ts(Start, sch, sch, flags);\n } // Localhost token\n\n\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n }); // Set default transition for start state (some symbol)\n\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: assign({\n groups: groups\n }, tk)\n };\n}\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State<string>} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\n\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n var iterable = stringToArray(str.replace(/[A-Z]/g, function (c) {\n return c.toLowerCase();\n }));\n var charCount = iterable.length; // <= len if there are emojis, etc\n\n var tokens = []; // return value\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n\n var cursor = 0; // Cursor through the array-representation of the string\n\n var charCursor = 0; // Tokenize the string\n\n while (charCursor < charCount) {\n var state = start;\n var nextState = null;\n var tokenLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n var charsSinceAccepts = -1;\n\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts; // No more jumps, just make a new token from the last accepting one\n\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n\n });\n }\n\n return tokens;\n}\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\n\nfunction stringToArray(str) {\n var result = [];\n var len = str.length;\n var index = 0;\n\n while (index < len) {\n var first = str.charCodeAt(index);\n var second = void 0;\n var char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n\n result.push(char);\n index += char.length;\n }\n\n return result;\n}\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State<string>} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State<string>][]} jr\n * @returns {State<string>}\n */\n\nfunction fastts(state, input, t, defaultt, jr) {\n var next;\n var len = input.length;\n\n for (var i = 0; i < len - 1; i++) {\n var char = input[i];\n\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n\n state = next;\n }\n\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt<string>`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj<EventListeners>,\n * \tformat?: Opt<string>,\n * \tformatHref?: Opt<string>,\n * \tnl2br?: boolean,\n * \ttagName?: Opt<any>,\n * \ttarget?: Opt<string>,\n * \trel?: Opt<string>,\n * \tvalidate?: Opt<boolean>,\n * \ttruncate?: Opt<number>,\n * \tclassName?: Opt<string>,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required<Opts>\n */\n\nvar defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\n\nfunction Options(opts, defaultRender) {\n if (defaultRender === void 0) {\n defaultRender = null;\n }\n\n var o = assign({}, defaults);\n\n if (opts) {\n o = assign(o, opts instanceof Options ? opts.o : opts);\n } // Ensure all ignored tags are uppercase\n\n\n var ignoredTags = o.ignoreTags;\n var uppercaseIgnoredTags = [];\n\n for (var i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n\n\n this.o = o;\n\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n\n /**\n * @type string[]\n */\n ignoreTags: [],\n\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender: function defaultRender(ir) {\n return ir;\n },\n\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check: function check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get: function get(key, operator, token) {\n var isCallable = operator != null;\n var option = this.o[key];\n\n if (!option) {\n return option;\n }\n\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n\n return option;\n },\n\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj: function getObj(key, operator, token) {\n var obj = this.o[key];\n\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n\n return obj;\n },\n\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render: function render(token) {\n var ir = token.render(this); // intermediate representation\n\n var renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\n\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tdefaults: defaults,\n\tOptions: Options,\n\tassign: assign\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\n\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\n\nMultiToken.prototype = {\n isLink: false,\n\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString: function toString() {\n return this.v;\n },\n\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref: function toHref(scheme) {\n return this.toString();\n },\n\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString: function toFormattedString(options) {\n var val = this.toString();\n var truncate = options.get('truncate', val, this);\n var formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref: function toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex: function startIndex() {\n return this.tk[0].s;\n },\n\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex: function endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject: function toObject(protocol) {\n if (protocol === void 0) {\n protocol = defaults.defaultProtocol;\n }\n\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject: function toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate: function validate(options) {\n return options.get('validate', this.toString(), this);\n },\n\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render: function render(options) {\n var token = this;\n var href = this.toFormattedHref(options);\n var tagName = options.get('tagName', href, token);\n var content = this.toFormattedString(options);\n var attributes = {};\n var className = options.get('className', href, token);\n var target = options.get('target', href, token);\n var rel = options.get('rel', href, token);\n var attrs = options.getObj('attributes', href, token);\n var eventListeners = options.getObj('events', href, token);\n attributes.href = href;\n\n if (className) {\n attributes.class = className;\n }\n\n if (target) {\n attributes.target = target;\n }\n\n if (rel) {\n attributes.rel = rel;\n }\n\n if (attrs) {\n assign(attributes, attrs);\n }\n\n return {\n tagName: tagName,\n attributes: attributes,\n content: content,\n eventListeners: eventListeners\n };\n }\n}; // Base token\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\n\nfunction createTokenClass(type, props) {\n var Token = /*#__PURE__*/function (_MultiToken) {\n _inheritsLoose(Token, _MultiToken);\n\n function Token(value, tokens) {\n var _this;\n\n _this = _MultiToken.call(this, value, tokens) || this;\n _this.t = type;\n return _this;\n }\n\n return Token;\n }(MultiToken);\n\n for (var p in props) {\n Token.prototype[p] = props[p];\n }\n\n Token.t = type;\n return Token;\n}\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\n\nvar Email = createTokenClass('email', {\n isLink: true,\n toHref: function toHref() {\n return 'mailto:' + this.toString();\n }\n});\n/**\n\tRepresents some plain text\n*/\n\nvar Text = createTokenClass('text');\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\n\nvar Nl = createTokenClass('nl');\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\n\nvar Url = createTokenClass('url', {\n isLink: true,\n\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref: function toHref(scheme) {\n if (scheme === void 0) {\n scheme = defaults.defaultProtocol;\n }\n\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : scheme + \"://\" + this.v;\n },\n\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol: function hasProtocol() {\n var tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tMultiToken: MultiToken,\n\tBase: MultiToken,\n\tcreateTokenClass: createTokenClass,\n\tEmail: Email,\n\tText: Text,\n\tNl: Nl,\n\tUrl: Url\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n\nvar makeState = function makeState(arg) {\n return new State(arg);\n};\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections<string> }} tokens\n */\n\n\nfunction init$1(_ref) {\n var groups = _ref.groups;\n // Types of characters the URL can definitely end in\n var qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]); // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n\n var qsNonAccepting = [APOSTROPHE, CLOSEANGLEBRACKET, CLOSEBRACE, CLOSEBRACKET, CLOSEPAREN, COLON, COMMA, DOT, EXCLAMATION, OPENANGLEBRACKET, OPENBRACE, OPENBRACKET, OPENPAREN, QUERY, QUOTE, SEMI]; // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n\n var localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, CLOSEBRACE, DOLLAR, EQUALS, HYPHEN, NUM, OPENBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE]; // The universal starting state.\n\n /**\n * @type State<Token>\n */\n\n var Start = makeState();\n var Localpart = tt(Start, TILDE); // Local part of the email address\n\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n var Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n var LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n var LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n var EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n\n var EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n\n ta(EmailDomainDot, groups.domain, EmailDomain);\n var Email$1 = makeState(Email); // Possible email address (could have more tlds)\n\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1); // Hyphen can jump back to a domain name\n\n var EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen); // Final possible email states\n\n var EmailColon = tt(Email$1, COLON); // URL followed by colon (potential port number here)\n\n /*const EmailColonPort = */\n\n ta(EmailColon, groups.numeric, Email); // URL followed by colon and port numner\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n\n var DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n\n var DomainDot = tt(Domain, DOT); // domain followed by DOT\n\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n var DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n var DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n\n var DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort); // Long URL with optional port and maybe query string\n\n var Url$1 = makeState(Url); // URL with extra symbols at the end, followed by an opening bracket\n\n var UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n // Query strings\n\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept); // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1); // Note that domains that begin with schemes are treated slighly differently\n\n var UriPrefix = tt(Scheme, COLON); // e.g., 'mailto:' or 'http://'\n\n var SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n\n var SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n tt(SlashSchemeColonSlash, SLASH, UriPrefix); // Scheme states can transition to domain states\n\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen); // Force URL with scheme prefix followed by anything sane\n\n ta(UriPrefix, groups.domain, Url$1);\n tt(UriPrefix, SLASH, Url$1); // URL, followed by an opening bracket\n\n var UrlOpenbrace = tt(Url$1, OPENBRACE); // URL followed by {\n\n var UrlOpenbracket = tt(Url$1, OPENBRACKET); // URL followed by [\n\n var UrlOpenanglebracket = tt(Url$1, OPENANGLEBRACKET); // URL followed by <\n\n var UrlOpenparen = tt(Url$1, OPENPAREN); // URL followed by (\n\n tt(UrlNonaccept, OPENBRACE, UrlOpenbrace);\n tt(UrlNonaccept, OPENBRACKET, UrlOpenbracket);\n tt(UrlNonaccept, OPENANGLEBRACKET, UrlOpenanglebracket);\n tt(UrlNonaccept, OPENPAREN, UrlOpenparen); // Closing bracket component. This character WILL be included in the URL\n\n tt(UrlOpenbrace, CLOSEBRACE, Url$1);\n tt(UrlOpenbracket, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracket, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparen, CLOSEPAREN, Url$1);\n tt(UrlOpenbrace, CLOSEBRACE, Url$1); // URL that beings with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpenbrace` (if the URL only\n // has a single opening bracket for some reason).\n\n var UrlOpenbraceQ = makeState(Url); // URL followed by { and some symbols that the URL can end it\n\n var UrlOpenbracketQ = makeState(Url); // URL followed by [ and some symbols that the URL can end it\n\n var UrlOpenanglebracketQ = makeState(Url); // URL followed by < and some symbols that the URL can end it\n\n var UrlOpenparenQ = makeState(Url); // URL followed by ( and some symbols that the URL can end it\n\n ta(UrlOpenbrace, qsAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracket, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracket, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparen, qsAccepting, UrlOpenparenQ);\n var UrlOpenbraceSyms = makeState(); // UrlOpenbrace followed by some symbols it cannot end it\n\n var UrlOpenbracketSyms = makeState(); // UrlOpenbracketQ followed by some symbols it cannot end it\n\n var UrlOpenanglebracketSyms = makeState(); // UrlOpenanglebracketQ followed by some symbols it cannot end it\n\n var UrlOpenparenSyms = makeState(); // UrlOpenparenQ followed by some symbols it cannot end it\n\n ta(UrlOpenbrace, qsNonAccepting);\n ta(UrlOpenbracket, qsNonAccepting);\n ta(UrlOpenanglebracket, qsNonAccepting);\n ta(UrlOpenparen, qsNonAccepting); // URL that begins with an opening bracket, followed by some symbols\n\n ta(UrlOpenbraceQ, qsAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracketQ, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketQ, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenQ, qsAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceQ, qsNonAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracketQ, qsNonAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketQ, qsNonAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenQ, qsNonAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceSyms, qsAccepting, UrlOpenbraceSyms);\n ta(UrlOpenbracketSyms, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketSyms, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenSyms, qsAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceSyms, qsNonAccepting, UrlOpenbraceSyms);\n ta(UrlOpenbracketSyms, qsNonAccepting, UrlOpenbracketSyms);\n ta(UrlOpenanglebracketSyms, qsNonAccepting, UrlOpenanglebracketSyms);\n ta(UrlOpenparenSyms, qsNonAccepting, UrlOpenparenSyms); // Close brace/bracket to become regular URL\n\n tt(UrlOpenbracketQ, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracketQ, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparenQ, CLOSEPAREN, Url$1);\n tt(UrlOpenbraceQ, CLOSEBRACE, Url$1);\n tt(UrlOpenbracketSyms, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracketSyms, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparenSyms, CLOSEPAREN, Url$1);\n tt(UrlOpenbraceSyms, CLOSEPAREN, Url$1);\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n\n tt(Start, NL$1, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State<MultiToken>} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\n\nfunction run(start, input, tokens) {\n var len = tokens.length;\n var cursor = 0;\n var multis = [];\n var textTokens = [];\n\n while (cursor < len) {\n var state = start;\n var secondState = null;\n var nextState = null;\n var multiLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n\n cursor++;\n multiLength++;\n }\n\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts; // Create a new multitoken\n\n var Multi = latestAccepting.t;\n var subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n } // Finally close off the textTokens (if available)\n\n\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n\n return multis;\n}\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\n\nfunction initMultiToken(Multi, input, tokens) {\n var startIdx = tokens[0].s;\n var endIdx = tokens[tokens.length - 1].e;\n var value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nvar warn = typeof console !== 'undefined' && console && console.warn || function () {};\n\nvar warnAdvice = 'To avoid this warning, please register all custom schemes before invoking linkify the first time.'; // Side-effect initialization state\n\nvar INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n/**\n * @typedef {{\n * \tstart: State<string>,\n * \ttokens: { groups: Collections<string> } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State<MultiToken>,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\n\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n}\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\n\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(\"linkifyjs: Invalid token plugin \" + plugin + \" (expects function)\");\n }\n\n for (var i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(\"linkifyjs: token plugin \\\"\" + name + \"\\\" already registered - will be overwritten\");\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n\n INIT.tokenQueue.push([name, plugin]);\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register token plugin \\\"\" + name + \"\\\" until you manually call linkify.init(). \" + warnAdvice);\n }\n}\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\n\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(\"linkifyjs: Invalid plugin \" + plugin + \" (expects function)\");\n }\n\n for (var i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(\"linkifyjs: plugin \\\"\" + name + \"\\\" already registered - will be overwritten\");\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n\n INIT.pluginQueue.push([name, plugin]);\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register plugin \\\"\" + name + \"\\\" until you manually call linkify.init(). \" + warnAdvice);\n }\n}\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} protocol\n * @param {boolean} [optionalSlashSlash]\n */\n\nfunction registerCustomProtocol(scheme, optionalSlashSlash) {\n if (optionalSlashSlash === void 0) {\n optionalSlashSlash = false;\n }\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register custom scheme \\\"\" + scheme + \"\\\" until you manually call linkify.init(). \" + warnAdvice);\n }\n\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error('linkifyjs: incorrect scheme format.\\n 1. Must only contain digits, lowercase ASCII letters or \"-\"\\n 2. Cannot start or end with \"-\"\\n 3. \"-\" cannot repeat');\n }\n\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\n\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n\n for (var i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n } // Initialize parser state machine and plugins\n\n\n INIT.parser = init$1(INIT.scanner.tokens);\n\n for (var _i = 0; _i < INIT.pluginQueue.length; _i++) {\n INIT.pluginQueue[_i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n\n INIT.initialized = true;\n}\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\n\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n*/\n\nfunction find(str, type, opts) {\n if (type === void 0) {\n type = null;\n }\n\n if (opts === void 0) {\n opts = null;\n }\n\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(\"linkifyjs: Invalid link type \" + type + \"; must be a string\");\n }\n\n opts = type;\n type = null;\n }\n\n var options = new Options(opts);\n var tokens = tokenize(str);\n var filtered = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.isLink && (!type || token.t === type)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n\n return filtered;\n}\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\n\nfunction test(str, type) {\n if (type === void 0) {\n type = null;\n }\n\n var tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, tokenize };\n","import { Options, tokenize } from 'linkifyjs';\n\n/**\n\tConvert strings of text into linkable HTML text\n*/\n\nfunction escapeText(text) {\n return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n}\n\nfunction escapeAttr(href) {\n return href.replace(/\"/g, '"');\n}\n\nfunction attributesToString(attributes) {\n var result = [];\n\n for (var attr in attributes) {\n var val = attributes[attr] + '';\n result.push(attr + \"=\\\"\" + escapeAttr(val) + \"\\\"\");\n }\n\n return result.join(' ');\n}\n\nfunction defaultRender(_ref) {\n var tagName = _ref.tagName,\n attributes = _ref.attributes,\n content = _ref.content;\n return \"<\" + tagName + \" \" + attributesToString(attributes) + \">\" + escapeText(content) + \"</\" + tagName + \">\";\n}\n/**\n * Convert a plan text string to an HTML string with links. Expects that the\n * given strings does not contain any HTML entities. Use the linkify-html\n * interface if you need to parse HTML entities.\n *\n * @param {string} str string to linkify\n * @param {import('linkifyjs').Opts} [opts] overridable options\n * @returns {string}\n */\n\n\nfunction linkifyStr(str, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n opts = new Options(opts, defaultRender);\n var tokens = tokenize(str);\n var result = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.t === 'nl' && opts.get('nl2br')) {\n result.push('<br>\\n');\n } else if (!token.isLink || !opts.check(token)) {\n result.push(escapeText(token.toString()));\n } else {\n result.push(opts.render(token));\n }\n }\n\n return result.join('');\n}\n\nif (!String.prototype.linkify) {\n Object.defineProperty(String.prototype, 'linkify', {\n writable: false,\n value: function linkify(options) {\n return linkifyStr(this, options);\n }\n });\n}\n\nexport { linkifyStr as default };\n","import '../assets/NcAppSidebar-BFg2HHh6.css';\nimport { Portal } from \"@linusborg/vue-simple-portal\";\nimport NcVNodes from \"../Components/NcVNodes.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch-VeztTzpz.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { N as NcActions } from \"./NcActions-B4VZCD8B.mjs\";\nimport { N as NcAppSidebarHeader } from \"./NcAppSidebarHeader-G2VD8Nfl.mjs\";\nimport NcButton from \"../Components/NcButton.mjs\";\nimport NcEmptyContent from \"../Components/NcEmptyContent.mjs\";\nimport NcLoadingIcon from \"../Components/NcLoadingIcon.mjs\";\nimport directive from \"../Directives/Focus.mjs\";\nimport { useIsSmallMobile } from \"../Composables/useIsMobile.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-DmkaYJTC.mjs\";\nimport { r as register, R as t13, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport { A as ArrowRight } from \"./ArrowRight-CY2b9hgN.mjs\";\nimport { C as Close } from \"./Close-BtLPUSdO.mjs\";\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { createFocusTrap } from \"focus-trap\";\nimport Vue, { ref, provide } from \"vue\";\nconst _sfc_main$4 = {\n name: \"NcAppSidebarTabs\",\n components: {\n NcCheckboxRadioSwitch,\n NcVNodes\n },\n provide() {\n return {\n registerTab: this.registerTab,\n unregisterTab: this.unregisterTab,\n // Getter as an alternative to Vue 2.7 computed(() => this.activeTab)\n getActiveTab: () => this.activeTab,\n // Used to check whether the tab header is shown so the tabs can reference the tab header for `aria-labelledby` or not\n isTablistShown: () => this.hasMultipleTabs\n };\n },\n props: {\n /**\n * Id of the tab to activate\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"update:active\"],\n data() {\n return {\n /**\n * Tab descriptions from the passed NcSidebarTab components' props to build the tab navbar from.\n */\n tabs: [],\n /**\n * Local active (open) tab's ID. It allows to use component without active.sync\n */\n activeTab: \"\"\n };\n },\n computed: {\n /**\n * Has multiple tabs. If only one tab - its content is shown without navigation\n *\n * @return {boolean}\n */\n hasMultipleTabs() {\n return this.tabs.length > 1;\n },\n showForSingleTab() {\n return this.forceTabs && this.tabs.length === 1;\n },\n currentTabIndex() {\n return this.tabs.findIndex((tab) => tab.id === this.activeTab);\n }\n },\n watch: {\n active(active) {\n if (active !== this.activeTab) {\n this.updateActive();\n }\n }\n },\n methods: {\n /**\n * Set the current active tab\n *\n * @param {string} id the id of the tab\n */\n setActive(id) {\n this.activeTab = id;\n this.$emit(\"update:active\", this.activeTab);\n },\n /**\n * Focus the previous tab\n * and emit to the parent component\n */\n focusPreviousTab() {\n if (this.currentTabIndex > 0) {\n this.setActive(this.tabs[this.currentTabIndex - 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the next tab\n * and emit to the parent component\n */\n focusNextTab() {\n if (this.currentTabIndex < this.tabs.length - 1) {\n this.setActive(this.tabs[this.currentTabIndex + 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the first tab\n * and emit to the parent component\n */\n focusFirstTab() {\n this.setActive(this.tabs[0].id);\n this.focusActiveTab();\n },\n /**\n * Focus the last tab\n * and emit to the parent component\n */\n focusLastTab() {\n this.setActive(this.tabs[this.tabs.length - 1].id);\n this.focusActiveTab();\n },\n /**\n * Focus the current active tab\n */\n focusActiveTab() {\n this.$el.querySelector(`#tab-button-${this.activeTab}`).focus();\n },\n /**\n * Focus the content on tab\n * see aria accessibility guidelines\n */\n focusActiveTabContent() {\n this.$el.querySelector(\"#tab-\" + this.activeTab).focus();\n },\n /**\n * Update the current active tab\n */\n updateActive() {\n this.activeTab = this.active && this.tabs.some((tab) => tab.id === this.active) ? this.active : this.tabs.length > 0 ? this.tabs[0].id : \"\";\n },\n /**\n * Register child tab in the tabs\n *\n * @param {object} tab child tab passed to slot\n */\n registerTab(tab) {\n this.tabs.push(tab);\n this.tabs.sort((a, b) => {\n if (a.order === b.order) {\n return OC.Util.naturalSortCompare(a.name, b.name);\n }\n return a.order - b.order;\n });\n this.updateActive();\n },\n /**\n * Unregister child tab from the tabs\n *\n * @param {string} id tab's id\n */\n unregisterTab(id) {\n const tabIndex = this.tabs.findIndex((tab) => tab.id === id);\n if (tabIndex !== -1) {\n this.tabs.splice(tabIndex, 1);\n }\n if (this.activeTab === id) {\n this.updateActive();\n }\n }\n }\n};\nvar _sfc_render$4 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"app-sidebar-tabs\" }, [_vm.hasMultipleTabs || _vm.showForSingleTab ? _c(\"div\", { staticClass: \"app-sidebar-tabs__nav\", attrs: { \"role\": \"tablist\" }, on: { \"keydown\": [function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"left\", 37, $event.key, [\"Left\", \"ArrowLeft\"])) return null;\n if (\"button\" in $event && $event.button !== 0) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.focusPreviousTab.apply(null, arguments);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"right\", 39, $event.key, [\"Right\", \"ArrowRight\"])) return null;\n if (\"button\" in $event && $event.button !== 2) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.focusNextTab.apply(null, arguments);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"tab\", 9, $event.key, \"Tab\")) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.focusActiveTabContent.apply(null, arguments);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"home\", void 0, $event.key, void 0)) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.focusFirstTab.apply(null, arguments);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"end\", void 0, $event.key, void 0)) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.focusLastTab.apply(null, arguments);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"page-up\", void 0, $event.key, void 0)) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.focusFirstTab.apply(null, arguments);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"page-down\", void 0, $event.key, void 0)) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.focusLastTab.apply(null, arguments);\n }] } }, _vm._l(_vm.tabs, function(tab) {\n return _c(\"NcCheckboxRadioSwitch\", { key: tab.id, staticClass: \"app-sidebar-tabs__tab\", class: { active: tab.id === _vm.activeTab }, attrs: { \"aria-controls\": `tab-${tab.id}`, \"aria-selected\": String(_vm.activeTab === tab.id), \"button-variant\": true, \"checked\": _vm.activeTab === tab.id, \"wrapper-id\": `tab-button-${tab.id}`, \"tabindex\": _vm.activeTab === tab.id ? 0 : -1, \"button-variant-grouped\": \"horizontal\", \"role\": \"tab\", \"type\": \"button\" }, on: { \"update:checked\": function($event) {\n return _vm.setActive(tab.id);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"NcVNodes\", { attrs: { \"vnodes\": tab.renderIcon() } }, [_c(\"span\", { staticClass: \"app-sidebar-tabs__tab-icon\", class: tab.icon })])];\n }, proxy: true }], null, true) }, [_c(\"span\", { staticClass: \"app-sidebar-tabs__tab-caption\" }, [_vm._v(\" \" + _vm._s(tab.name) + \" \")])]);\n }), 1) : _vm._e(), _c(\"div\", { staticClass: \"app-sidebar-tabs__content\", class: { \"app-sidebar-tabs__content--multiple\": _vm.hasMultipleTabs } }, [_vm._t(\"default\")], 2)]);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n \"d9f30f05\"\n);\nconst NcAppSidebarTabs = __component__$4.exports;\nregister(t13);\nconst _sfc_main$3 = {\n name: \"DockRightIcon\",\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};\nvar _sfc_render$3 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon dock-right-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n null\n);\nconst IconDockRight = __component__$3.exports;\nconst _sfc_main$2 = {\n name: \"StarIcon\",\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};\nvar _sfc_render$2 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon star-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n null\n);\nconst Star = __component__$2.exports;\nconst _sfc_main$1 = {\n name: \"StarOutlineIcon\",\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};\nvar _sfc_render$1 = function render4() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon star-outline-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst StarOutline = __component__$1.exports;\nconst _sfc_main = {\n name: \"NcAppSidebar\",\n components: {\n Teleport: Portal,\n NcActions,\n NcAppSidebarHeader,\n NcAppSidebarTabs,\n ArrowRight,\n IconDockRight,\n NcButton,\n NcLoadingIcon,\n NcEmptyContent,\n Close,\n Star,\n StarOutline\n },\n directives: {\n focus: directive,\n ClickOutside: vOnClickOutside\n },\n inject: {\n ncContentSelector: {\n from: \"NcContent:selector\",\n default: void 0\n }\n },\n props: {\n active: {\n type: String,\n default: \"\"\n },\n name: {\n type: String,\n default: \"\",\n required: true\n },\n /**\n * Allow to edit the sidebar name.\n */\n nameEditable: {\n type: Boolean,\n default: false\n },\n namePlaceholder: {\n type: String,\n default: \"\"\n },\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Title to display for the subname.\n */\n subtitle: {\n type: String,\n default: \"\"\n },\n /**\n * Url to the top header background image\n * Applied with css\n */\n background: {\n type: String,\n default: \"\"\n },\n /**\n * Enable the favourite icon if not null\n * See fired events\n */\n starred: {\n type: Boolean,\n default: null\n },\n /**\n * Show loading spinner instead of the star icon\n */\n starLoading: {\n type: Boolean,\n default: false\n },\n /**\n * Show loading spinner instead of tabs\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Display the sidebar in compact mode\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Only display close button and default slot content.\n * Don't display other header content and primary and secondary actions.\n * Useful when showing the EmptyContent component as content.\n */\n empty: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n },\n /**\n * Linkify the name\n */\n linkifyName: {\n type: Boolean,\n default: false\n },\n /**\n * Title to display for the name.\n * Can be set to the same text in case it's too long.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Allow to conditionally show the sidebar\n * You can also use `v-if` on the sidebar, but using the open prop allow to keep\n * the sidebar inside the DOM for performance if it is opened and closed multiple times.\n *\n * When using the `open` property to close the sidebar a built-in toggle button will be shown to reopen it,\n * similar to the app navigation. You can remove this button with the `no-toggle` prop.\n */\n open: {\n type: Boolean,\n default: true\n },\n /**\n * Custom classes to assign to the sidebar toggle button.\n * If needed this can be used to assign styles to the button using `:deep()` selector.\n */\n toggleClasses: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Custom attrs to assign to the sidebar toggle button.\n */\n toggleAttrs: {\n type: Object,\n default: void 0\n },\n /**\n * Do not add the built-in toggle button with `open` prop.\n */\n noToggle: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"close\",\n \"closing\",\n \"closed\",\n \"opening\",\n \"opened\",\n \"figure-click\",\n \"update:active\",\n \"update:name\",\n \"update:nameEditable\",\n \"update:open\",\n \"update:starred\",\n \"submit-name\",\n \"dismiss-editing\"\n ],\n setup() {\n const headerRef = ref(null);\n provide(\"NcAppSidebar:header:ref\", headerRef);\n return {\n uid: GenRandomId(),\n isMobile: useIsSmallMobile(),\n headerRef\n };\n },\n data() {\n return {\n changeNameTranslated: t(\"Change name\"),\n closeTranslated: t(\"Close sidebar\"),\n favoriteTranslated: t(\"Favorite\"),\n isStarred: this.starred,\n focusTrap: null,\n elementToReturnFocus: null\n };\n },\n computed: {\n canStar() {\n return this.isStarred !== null;\n },\n hasFigure() {\n return this.$slots.header || this.background;\n },\n hasFigureClickListener() {\n return this.$listeners[\"figure-click\"];\n }\n },\n watch: {\n starred() {\n this.isStarred = this.starred;\n },\n isMobile() {\n this.toggleFocusTrap();\n },\n open() {\n this.checkToggleButtonContainerAvailability();\n }\n },\n created() {\n this.preserveElementToReturnFocus();\n this.checkToggleButtonContainerAvailability();\n },\n beforeDestroy() {\n this.$emit(\"closed\");\n this.focusTrap?.deactivate();\n },\n methods: {\n t,\n preserveElementToReturnFocus() {\n if (document.activeElement && document.activeElement !== document.body) {\n this.elementToReturnFocus = document.activeElement;\n if (this.elementToReturnFocus.getAttribute(\"role\") === \"menuitem\") {\n const menu = this.elementToReturnFocus.closest('[role=\"menu\"]');\n if (menu) {\n const menuTrigger = document.querySelector(`[aria-controls=\"${menu.id}\"]`);\n this.elementToReturnFocus = menuTrigger;\n }\n }\n }\n },\n initFocusTrap() {\n if (this.focusTrap) {\n return;\n }\n this.focusTrap = createFocusTrap([\n // The sidebar itself\n this.$refs.sidebar,\n // Nextcloud Server header navigarion\n document.querySelector(\"#header\")\n ], {\n allowOutsideClick: true,\n fallbackFocus: this.$refs.closeButton.$el,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n if (this.open && this.isMobile) {\n this.initFocusTrap();\n this.focusTrap.activate();\n } else {\n this.focusTrap?.deactivate();\n }\n },\n /**\n * Close the sidebar on pressing the escape key on mobile\n *\n * @param {KeyboardEvent} event key down event\n */\n onKeydownEsc(event) {\n if (this.isMobile) {\n event.stopPropagation();\n this.closeSidebar();\n }\n },\n onBeforeEnter(element) {\n this.$emit(\"opening\", element);\n },\n onAfterEnter(element) {\n if (this.elementToReturnFocus) {\n this.focus();\n }\n this.toggleFocusTrap();\n this.$emit(\"opened\", element);\n },\n onBeforeLeave(element) {\n this.$emit(\"closing\", element);\n },\n onAfterLeave(element) {\n this.$emit(\"closed\", element);\n this.toggleFocusTrap();\n this.elementToReturnFocus?.focus({ focusVisible: true });\n this.elementToReturnFocus = null;\n },\n /**\n * Used to tell parent component the user asked to close the sidebar\n *\n * @param {Event} e close icon click event\n */\n closeSidebar(e) {\n this.$emit(\"close\", e);\n this.$emit(\"update:open\", false);\n },\n /**\n * Emit figure click event to parent component\n *\n * @param {Event} e click event\n */\n onFigureClick(e) {\n this.$emit(\"figure-click\", e);\n },\n /**\n * Toggle the favourite state\n * and emit to the parent component\n */\n toggleStarred() {\n this.isStarred = !this.isStarred;\n this.$emit(\"update:starred\", this.isStarred);\n },\n editName() {\n this.$emit(\"update:nameEditable\", true);\n if (this.nameEditable) {\n this.$nextTick(\n () => this.$refs.nameInput.focus()\n );\n }\n },\n /**\n * Focus the sidebar\n * @public\n */\n focus() {\n if (!this.open && !this.noToggle) {\n this.$refs.toggle.$el.focus();\n return;\n }\n try {\n this.headerRef.focus();\n } catch {\n Vue.util.warn(\"NcAppSidebar should have focusable header for accessibility reasons. Use NcAppSidebarHeader component.\");\n }\n },\n /**\n * Focus the active tab\n * @public\n */\n focusActiveTabContent() {\n this.preserveElementToReturnFocus();\n this.$refs.tabs.focusActiveTabContent();\n },\n /**\n * Check if the toggle button container is available\n */\n checkToggleButtonContainerAvailability() {\n if (this.open === false && !this.noToggle && !this.ncContentSelector) {\n console.warn(\n \"[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.\"\n );\n }\n },\n /**\n * Emit name change event to parent component\n *\n * @param {Event} event input event\n */\n onNameInput(event) {\n this.$emit(\"update:name\", event.target.value);\n },\n /**\n * Emit when the name form edit confirm button is pressed in order\n * to change the name.\n *\n * @param {Event} event submit event\n */\n onSubmitName(event) {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"submit-name\", event);\n },\n onDismissEditing() {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"dismiss-editing\");\n },\n onUpdateActive(activeTab) {\n this.$emit(\"update:active\", activeTab);\n }\n }\n};\nvar _sfc_render = function render5() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"transition\", { attrs: { \"appear\": \"\", \"name\": \"slide-right\" }, on: { \"before-enter\": _vm.onBeforeEnter, \"after-enter\": _vm.onAfterEnter, \"before-leave\": _vm.onBeforeLeave, \"after-leave\": _vm.onAfterLeave } }, [_c(\"aside\", { directives: [{ name: \"show\", rawName: \"v-show\", value: _vm.open, expression: \"open\" }], ref: \"sidebar\", staticClass: \"app-sidebar\", attrs: { \"id\": \"app-sidebar-vue\", \"aria-labelledby\": `app-sidebar-vue-${_vm.uid}__header` }, on: { \"keydown\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) return null;\n return _vm.onKeydownEsc.apply(null, arguments);\n } } }, [_vm.ncContentSelector && !_vm.open && !_vm.noToggle ? _c(\"Teleport\", { attrs: { \"selector\": _vm.ncContentSelector } }, [_c(\"NcButton\", _vm._b({ ref: \"toggle\", staticClass: \"app-sidebar__toggle\", class: _vm.toggleClasses, attrs: { \"aria-label\": _vm.t(\"Open sidebar\"), \"variant\": \"tertiary\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"update:open\", true);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm._t(\"toggle-icon\", function() {\n return [_c(\"IconDockRight\", { attrs: { \"size\": 20 } })];\n })];\n }, proxy: true }], null, true) }, \"NcButton\", _vm.toggleAttrs, false))], 1) : _vm._e(), _c(\"header\", { staticClass: \"app-sidebar-header\", class: {\n \"app-sidebar-header--with-figure\": _vm.hasFigure,\n \"app-sidebar-header--compact\": _vm.compact\n } }, [!_vm.empty ? _vm._t(\"info\", function() {\n return [_c(\"div\", { staticClass: \"app-sidebar-header__info\" }, [_vm.hasFigure ? _c(\"div\", { staticClass: \"app-sidebar-header__figure\", class: {\n \"app-sidebar-header__figure--with-action\": _vm.hasFigureClickListener\n }, style: {\n backgroundImage: `url(${_vm.background})`\n }, attrs: { \"tabindex\": \"0\" }, on: { \"click\": _vm.onFigureClick, \"keydown\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n return _vm.onFigureClick.apply(null, arguments);\n } } }, [_vm._t(\"header\")], 2) : _vm._e(), _c(\"div\", { staticClass: \"app-sidebar-header__desc\", class: {\n \"app-sidebar-header__desc--with-tertiary-action\": _vm.canStar || _vm.$slots[\"tertiary-actions\"],\n \"app-sidebar-header__desc--editable\": _vm.nameEditable && !_vm.subname,\n \"app-sidebar-header__desc--with-subname--editable\": _vm.nameEditable && _vm.subname,\n \"app-sidebar-header__desc--without-actions\": !_vm.$slots[\"secondary-actions\"]\n } }, [_vm.canStar || _vm.$slots[\"tertiary-actions\"] ? _c(\"div\", { staticClass: \"app-sidebar-header__tertiary-actions\" }, [_vm._t(\"tertiary-actions\", function() {\n return [_vm.canStar ? _c(\"NcButton\", { staticClass: \"app-sidebar-header__star\", attrs: { \"aria-label\": _vm.favoriteTranslated, \"pressed\": _vm.isStarred, \"variant\": \"secondary\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.toggleStarred.apply(null, arguments);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm.starLoading ? _c(\"NcLoadingIcon\") : _vm.isStarred ? _c(\"Star\", { attrs: { \"size\": 20 } }) : _c(\"StarOutline\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 2575459756) }) : _vm._e()];\n })], 2) : _vm._e(), _c(\"div\", { staticClass: \"app-sidebar-header__name-container\" }, [_c(\"div\", { staticClass: \"app-sidebar-header__mainname-container\" }, [_c(\"NcAppSidebarHeader\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !_vm.nameEditable, expression: \"!nameEditable\" }], staticClass: \"app-sidebar-header__mainname\", attrs: { \"name\": _vm.name, \"linkify\": _vm.linkifyName, \"title\": _vm.title, \"tabindex\": _vm.nameEditable ? 0 : -1 }, nativeOn: { \"click\": function($event) {\n if ($event.target !== $event.currentTarget) return null;\n return _vm.editName.apply(null, arguments);\n } } }), _vm.nameEditable ? [_c(\"form\", { directives: [{ name: \"click-outside\", rawName: \"v-click-outside\", value: () => _vm.onSubmitName(), expression: \"() => onSubmitName()\" }], staticClass: \"app-sidebar-header__mainname-form\", on: { \"submit\": function($event) {\n $event.preventDefault();\n return _vm.onSubmitName.apply(null, arguments);\n } } }, [_c(\"input\", { directives: [{ name: \"focus\", rawName: \"v-focus\" }], ref: \"nameInput\", staticClass: \"app-sidebar-header__mainname-input\", attrs: { \"type\": \"text\", \"placeholder\": _vm.namePlaceholder }, domProps: { \"value\": _vm.name }, on: { \"keydown\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) return null;\n $event.stopPropagation();\n return _vm.onDismissEditing.apply(null, arguments);\n }, \"input\": _vm.onNameInput } }), _c(\"NcButton\", { attrs: { \"aria-label\": _vm.changeNameTranslated, \"type\": \"submit\", \"variant\": \"tertiary-no-background\" }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"ArrowRight\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1252225425) })], 1)] : _vm._e(), _vm.$slots[\"secondary-actions\"] ? _c(\"NcActions\", { staticClass: \"app-sidebar-header__menu\", attrs: { \"force-menu\": _vm.forceMenu } }, [_vm._t(\"secondary-actions\")], 2) : _vm._e()], 2), _vm.subname.trim() !== \"\" || _vm.$slots[\"subname\"] ? _c(\"p\", { staticClass: \"app-sidebar-header__subname\", attrs: { \"title\": _vm.subtitle || void 0 } }, [_vm._t(\"subname\", function() {\n return [_vm._v(\" \" + _vm._s(_vm.subname) + \" \")];\n })], 2) : _vm._e()])])])];\n }) : _c(\"NcAppSidebarHeader\", { staticClass: \"app-sidebar-header__mainname--hidden\", attrs: { \"name\": _vm.name, \"tabindex\": \"-1\" } }), _c(\"NcButton\", { ref: \"closeButton\", staticClass: \"app-sidebar__close\", attrs: { \"aria-label\": _vm.closeTranslated, \"title\": _vm.closeTranslated, \"variant\": \"tertiary\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.closeSidebar.apply(null, arguments);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"Close\", { attrs: { \"size\": 20 } })];\n }, proxy: true }]) }), _vm.$slots[\"description\"] && !_vm.empty ? _c(\"div\", { staticClass: \"app-sidebar-header__description\" }, [_vm._t(\"description\")], 2) : _vm._e()], 2), _c(\"NcAppSidebarTabs\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !_vm.loading, expression: \"!loading\" }], ref: \"tabs\", attrs: { \"active\": _vm.active, \"force-tabs\": _vm.forceTabs }, on: { \"update:active\": _vm.onUpdateActive } }, [_vm._t(\"default\")], 2), _vm.loading ? _c(\"NcEmptyContent\", { scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"NcLoadingIcon\", { attrs: { \"size\": 64 } })];\n }, proxy: true }], null, false, 826850984) }) : _vm._e()], 1)]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"034b862f\"\n);\nconst NcAppSidebar = __component__.exports;\nexport {\n NcAppSidebar as N\n};\n//# sourceMappingURL=NcAppSidebar-BdryV6wY.mjs.map\n","import PQueue from \"p-queue\";\nconst queue = new PQueue({ concurrency: 5 });\nfunction preloadImage(url) {\n const { resolve, promise } = Promise.withResolvers();\n queue.add(() => {\n const image = new Image();\n image.onerror = () => resolve(false);\n image.onload = () => resolve(true);\n image.src = url;\n return promise;\n });\n return promise;\n}\nexport {\n preloadImage\n};\n//# sourceMappingURL=preloadImage.mjs.map\n","import '../assets/NcCollectionList-yjTCAR46.css';\nimport debounce from \"debounce\";\nimport { ref, set } from \"vue\";\nimport { r as register, L as t6, M as t26, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-YSp2ORHc.mjs\";\nimport { N as NcSelect } from \"./NcSelect-CjUzohn5.mjs\";\nimport { g as getRoute } from \"./autolink-cbuFALXr.mjs\";\nimport { N as NcActions } from \"./NcActions-B4VZCD8B.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-CuVNJJtW.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nregister(t6);\nregister(t26);\nconst _sfc_main$1 = {\n name: \"NcCollectionListItem\",\n components: {\n NcAvatar,\n NcActions,\n NcActionButton\n },\n props: {\n collection: {\n type: Object,\n default: null\n },\n error: {\n type: String,\n default: void 0\n }\n },\n emits: [\"remove-resource\", \"rename-collection\"],\n data() {\n return {\n detailsOpen: false,\n newName: null\n };\n },\n computed: {\n getIcon() {\n return (resource) => [resource.iconClass];\n },\n typeClass() {\n return (resource) => \"resource-type-\" + resource.type;\n },\n resources() {\n return this.collection.resources?.filter((resource) => !Array.isArray(resource)) ?? [];\n },\n getComponent() {\n return (resource) => {\n const route = getRoute(this.$router, resource.link);\n return route ? { component: \"router-link\", to: route, href: void 0 } : { component: \"a\", to: void 0, href: resource.link };\n };\n },\n iconUrl() {\n return (resource) => {\n if (resource.mimetype) {\n return OC.MimeType.getIconUrl(resource.mimetype);\n }\n if (resource.iconUrl) {\n return resource.iconUrl;\n }\n return \"\";\n };\n }\n },\n methods: {\n t,\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = true;\n },\n removeResource(collection, resource) {\n this.$emit(\"remove-resource\", {\n collectionId: collection.id,\n resourceType: resource.type,\n resourceId: resource.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName) {\n this.$emit(\"rename-collection\", {\n collectionId: this.collection.id,\n name: this.newName\n });\n }\n this.newName = null;\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"collection-list-item\" }, [_c(\"NcAvatar\", { staticClass: \"collection-avatar\", attrs: { \"display-name\": _vm.collection.name, \"allow-placeholder\": \"\" } }), _vm.newName === null ? _c(\"span\", { staticClass: \"collection-item-name\", attrs: { \"title\": \"\" }, on: { \"click\": _vm.showDetails } }, [_vm._v(_vm._s(_vm.collection.name))]) : _c(\"form\", { class: { \"should-shake\": _vm.error }, on: { \"submit\": function($event) {\n $event.preventDefault();\n return _vm.renameCollection.apply(null, arguments);\n } } }, [_c(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: _vm.newName, expression: \"newName\" }], attrs: { \"type\": \"text\", \"autocomplete\": \"off\", \"autocapitalize\": \"off\" }, domProps: { \"value\": _vm.newName }, on: { \"input\": function($event) {\n if ($event.target.composing) return;\n _vm.newName = $event.target.value;\n } } }), _c(\"input\", { staticClass: \"icon-confirm\", attrs: { \"type\": \"submit\", \"value\": \"\" } })]), !_vm.detailsOpen && _vm.newName === null ? _c(\"div\", { staticClass: \"linked-icons\" }, _vm._l(_vm.resources.slice(0, 2), function(resource) {\n return _c(_vm.getComponent(resource).component, { key: resource.type + \"|\" + resource.id, tag: \"component\", class: _vm.typeClass(resource), attrs: { \"title\": resource.name, \"to\": _vm.getComponent(resource).to, \"href\": _vm.getComponent(resource).href } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource), \"alt\": resource.name } })]);\n }), 1) : _vm._e(), _vm.newName === null ? _c(\"span\", { staticClass: \"sharingOptionsGroup\" }, [_c(\"NcActions\", [_c(\"NcActionButton\", { attrs: { \"icon\": \"icon-info\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.toggleDetails.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.detailsOpen ? _vm.t(\"Hide details\") : _vm.t(\"Show details\")) + \" \")]), _c(\"NcActionButton\", { attrs: { \"icon\": \"icon-rename\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.openRename.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Rename project\")) + \" \")])], 1)], 1) : _vm._e(), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error ? _c(\"div\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error) + \" \")]) : _vm._e()]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.detailsOpen ? _c(\"ul\", { staticClass: \"resource-list-details\" }, _vm._l(_vm.resources, function(resource) {\n return _c(\"li\", { key: resource.type + \"|\" + resource.id, class: _vm.typeClass(resource) }, [_c(_vm.getComponent(resource).component, { tag: \"component\", attrs: { \"to\": _vm.getComponent(resource).to, \"href\": _vm.getComponent(resource).href } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource), \"alt\": resource.name } }), _c(\"span\", { staticClass: \"resource-name\" }, [_vm._v(_vm._s(resource.name || \"\"))])]), _c(\"span\", { staticClass: \"icon-close\", on: { \"click\": function($event) {\n return _vm.removeResource(_vm.collection, resource);\n } } })], 1);\n }), 0) : _vm._e()])], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"878b819f\"\n);\nconst NcCollectionListItem = __component__$1.exports;\nfunction extractOcsData(response) {\n return response.data.ocs.data;\n}\nfunction renameCollectionService(collectionId, collectionName) {\n return axios.put(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { collectionName }).then(extractOcsData);\n}\nfunction getCollectionsByResourceService(resourceType, resourceId) {\n return axios.get(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId })).then(extractOcsData);\n}\nfunction createCollectionService(resourceType, resourceId, name) {\n return axios.post(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId }), { name }).then(extractOcsData);\n}\nfunction addResourceService(collectionId, resourceType, resourceId) {\n return axios.post(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { resourceType, resourceId }).then(extractOcsData);\n}\nfunction removeResourceService(collectionId, resourceType, resourceId) {\n return axios.delete(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { params: { resourceType, resourceId } }).then(extractOcsData);\n}\nfunction searchService(query) {\n return axios.get(generateOcsUrl(\"collaboration/resources/collections/search/{query}\", { query })).then(extractOcsData);\n}\nfunction useCollections() {\n const storedCollections = ref([]);\n const addCollections = (collections) => {\n set(storedCollections, \"value\", collections);\n };\n const addCollection = (collection) => {\n set(storedCollections, \"value\", [...storedCollections.value, collection]);\n };\n const removeCollection = (collectionId) => {\n set(storedCollections, \"value\", storedCollections.value.filter((item) => item.id !== collectionId));\n };\n const updateCollection = (collection) => {\n const index = storedCollections.value.findIndex((item) => item.id === collection.id);\n if (index !== -1) {\n set(storedCollections.value, index, collection);\n } else {\n addCollection(collection);\n }\n };\n const fetchCollectionsByResource = async ({ resourceType, resourceId }) => {\n const collections = await getCollectionsByResourceService(resourceType, resourceId);\n addCollections(collections);\n };\n const createCollection = async ({ baseResourceType, baseResourceId, resourceType, resourceId, name }) => {\n const collection = await createCollectionService(baseResourceType, baseResourceId, name);\n addCollection(collection);\n await addResourceToCollection({\n collectionId: collection.id,\n resourceType,\n resourceId\n });\n };\n const renameCollection = async ({ collectionId, name }) => {\n const collection = await renameCollectionService(collectionId, name);\n updateCollection(collection);\n };\n const addResourceToCollection = async ({ collectionId, resourceType, resourceId }) => {\n const collection = await addResourceService(collectionId, resourceType, String(resourceId));\n updateCollection(collection);\n };\n const removeResourceFromCollection = async ({ collectionId, resourceType, resourceId }) => {\n const collection = await removeResourceService(collectionId, resourceType, String(resourceId));\n if (collection.resources.length > 0) {\n updateCollection(collection);\n } else {\n removeCollection(collectionId);\n }\n };\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n renameCollection,\n addResourceToCollection,\n removeResourceFromCollection\n };\n}\nconst METHOD_CREATE_COLLECTION = 0;\nconst METHOD_ADD_TO_COLLECTION = 1;\nconst _sfc_main = {\n name: \"NcCollectionList\",\n components: {\n NcCollectionListItem,\n NcAvatar,\n NcSelect\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 /**\n * Whether the component is active (to start fetch resources)\n */\n isActive: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n const {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection\n } = useCollections();\n const searchCollections = ref([]);\n const search = debounce(function(query, loading) {\n if (query !== \"\") {\n loading(true);\n searchService(query).then((collections) => {\n searchCollections.value = collections;\n }).catch((e) => {\n console.error(\"Failed to search for collections\", e);\n }).finally(() => {\n loading(false);\n });\n }\n }, 500);\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection,\n searchCollections,\n search\n };\n },\n data() {\n return {\n selectIsOpen: false,\n generatingCodes: false,\n codes: void 0,\n value: null,\n model: {},\n collectionsError: {},\n error: null,\n isSelectOpen: false\n };\n },\n computed: {\n collections() {\n return this.storedCollections.filter(\n (collection) => collection.resources.some((resource) => resource && resource.id === String(this.id) && resource.type === this.type)\n );\n },\n placeholder() {\n return this.isSelectOpen ? t(\"Type to search for existing projects\") : t(\"Add to a project\");\n },\n options() {\n const options = [];\n window.OCP.Collaboration.getTypes().sort().forEach((type) => {\n options.push({\n method: METHOD_CREATE_COLLECTION,\n type,\n title: window.OCP.Collaboration.getLabel(type),\n class: window.OCP.Collaboration.getIcon(type),\n action: () => window.OCP.Collaboration.trigger(type)\n });\n });\n for (const index in this.searchCollections) {\n if (!this.collections.find((collection) => collection.id === this.searchCollections[index].id)) {\n options.push({\n method: METHOD_ADD_TO_COLLECTION,\n title: this.searchCollections[index].name,\n collectionId: this.searchCollections[index].id\n });\n }\n }\n return options;\n },\n resourceIdentifier() {\n return {\n resourceType: this.type,\n resourceId: this.id,\n isActive: this.isActive\n };\n }\n },\n watch: {\n resourceIdentifier: {\n deep: true,\n immediate: true,\n handler(resourceIdentifier) {\n if (!resourceIdentifier.isActive || !resourceIdentifier.resourceId || !resourceIdentifier.resourceType) {\n return;\n }\n this.fetchCollectionsByResource(resourceIdentifier);\n }\n }\n },\n methods: {\n t,\n select(selectedOption) {\n if (selectedOption.method === METHOD_CREATE_COLLECTION) {\n selectedOption.action().then((resourceId) => {\n this.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: selectedOption.type,\n resourceId,\n name: this.name\n }).catch((e) => {\n this.setError(t(\"Failed to create a project\"), e);\n });\n }).catch((e) => {\n console.error(\"No resource selected\", e);\n });\n }\n if (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n this.addResourceToCollection({\n collectionId: selectedOption.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((e) => {\n this.setError(t(\"Failed to add the item to the project\"), e);\n });\n }\n this.value = null;\n },\n showSelect() {\n this.selectIsOpen = true;\n this.$refs.select.$el.focus();\n },\n setError(error, e) {\n console.error(error, e);\n this.error = error;\n setTimeout(() => {\n this.error = null;\n }, 5e3);\n },\n renameCollectionFromItem({ collectionId, name }) {\n this.renameCollection({ collectionId, name }).catch((e) => {\n console.error(t(\"Failed to rename the project\"), e);\n this.collectionsError[collectionId] = t(\"Failed to rename the project\");\n setTimeout(() => {\n this.collectionsError[collectionId] = null;\n }, 5e3);\n });\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _vm.collections && _vm.type && _vm.id ? _c(\"ul\", { staticClass: \"collection-list\", attrs: { \"id\": \"collection-list\" } }, [_c(\"li\", { on: { \"click\": _vm.showSelect } }, [_vm._m(0), _c(\"div\", { attrs: { \"id\": \"collection-select-container\" } }, [_c(\"NcSelect\", { ref: \"select\", attrs: { \"aria-label-combobox\": _vm.t(\"Add to a project\"), \"options\": _vm.options, \"placeholder\": _vm.placeholder, \"label\": \"title\", \"limit\": 5 }, on: { \"close\": function($event) {\n _vm.isSelectOpen = false;\n }, \"open\": function($event) {\n _vm.isSelectOpen = true;\n }, \"option:selected\": _vm.select, \"search\": _vm.search }, scopedSlots: _vm._u([{ key: \"selected-option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__desc\" }, [_c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])])];\n } }, { key: \"option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__wrapper\" }, [option.class ? _c(\"span\", { staticClass: \"avatar\", class: option.class }) : option.method !== 2 ? _c(\"NcAvatar\", { attrs: { \"allow-placeholder\": \"\", \"display-name\": option.title } }) : _vm._e(), _c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])], 1)];\n } }], null, false, 2397208459), model: { value: _vm.value, callback: function($$v) {\n _vm.value = $$v;\n }, expression: \"value\" } }, [_c(\"p\", { staticClass: \"hint\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Connect items to a project to make them easier to find\")) + \" \")])])], 1)]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error ? _c(\"li\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error) + \" \")]) : _vm._e()]), _vm._l(_vm.collections, function(collection) {\n return _c(\"NcCollectionListItem\", { key: collection.id, attrs: { \"collection\": collection, \"error\": _vm.collectionsError[collection.id] }, on: { \"rename-collection\": _vm.renameCollectionFromItem, \"remove-resource\": _vm.removeResourceFromCollection } });\n })], 2) : _vm._e();\n};\nvar _sfc_staticRenderFns = [function() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"avatar\" }, [_c(\"span\", { staticClass: \"icon-projects\" })]);\n}];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"efe8beb8\"\n);\nconst NcCollectionList = __component__.exports;\nexport {\n NcCollectionList as N\n};\n//# sourceMappingURL=NcCollectionList-CFt-EZON.mjs.map\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.VueColor=t():e.VueColor=t()}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=60)}([function(e,t){function n(e,t){var n=e[1]||\"\",i=e[3];if(!i)return n;if(t&&\"function\"==typeof btoa){var o=r(i);return[n].concat(i.sources.map(function(e){return\"/*# sourceURL=\"+i.sourceRoot+e+\" */\"})).concat([o]).join(\"\\n\")}return[n].join(\"\\n\")}function r(e){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+\" */\"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var r=n(t,e);return t[2]?\"@media \"+t[2]+\"{\"+r+\"}\":r}).join(\"\")},t.i=function(e,n){\"string\"==typeof e&&(e=[[null,e,\"\"]]);for(var r={},i=0;i<this.length;i++){var o=this[i][0];\"number\"==typeof o&&(r[o]=!0)}for(i=0;i<e.length;i++){var a=e[i];\"number\"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]=\"(\"+a[2]+\") and (\"+n+\")\"),t.push(a))}},t}},function(e,t,n){function r(e){for(var t=0;t<e.length;t++){var n=e[t],r=u[n.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](n.parts[i]);for(;i<n.parts.length;i++)r.parts.push(o(n.parts[i]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{for(var a=[],i=0;i<n.parts.length;i++)a.push(o(n.parts[i]));u[n.id]={id:n.id,refs:1,parts:a}}}}function i(){var e=document.createElement(\"style\");return e.type=\"text/css\",f.appendChild(e),e}function o(e){var t,n,r=document.querySelector(\"style[\"+b+'~=\"'+e.id+'\"]');if(r){if(p)return v;r.parentNode.removeChild(r)}if(x){var o=h++;r=d||(d=i()),t=a.bind(null,r,o,!1),n=a.bind(null,r,o,!0)}else r=i(),t=s.bind(null,r),n=function(){r.parentNode.removeChild(r)};return t(e),function(r){if(r){if(r.css===e.css&&r.media===e.media&&r.sourceMap===e.sourceMap)return;t(e=r)}else n()}}function a(e,t,n,r){var i=n?\"\":r.css;if(e.styleSheet)e.styleSheet.cssText=m(t,i);else{var o=document.createTextNode(i),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(o,a[t]):e.appendChild(o)}}function s(e,t){var n=t.css,r=t.media,i=t.sourceMap;if(r&&e.setAttribute(\"media\",r),g.ssrId&&e.setAttribute(b,t.id),i&&(n+=\"\\n/*# sourceURL=\"+i.sources[0]+\" */\",n+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+\" */\"),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}var c=\"undefined\"!=typeof document;if(\"undefined\"!=typeof DEBUG&&DEBUG&&!c)throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");var l=n(64),u={},f=c&&(document.head||document.getElementsByTagName(\"head\")[0]),d=null,h=0,p=!1,v=function(){},g=null,b=\"data-vue-ssr-id\",x=\"undefined\"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());e.exports=function(e,t,n,i){p=n,g=i||{};var o=l(e,t);return r(o),function(t){for(var n=[],i=0;i<o.length;i++){var a=o[i],s=u[a.id];s.refs--,n.push(s)}t?(o=l(e,t),r(o)):o=[];for(var i=0;i<n.length;i++){var s=n[i];if(0===s.refs){for(var c=0;c<s.parts.length;c++)s.parts[c]();delete u[s.id]}}}};var m=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join(\"\\n\")}}()},function(e,t){e.exports=function(e,t,n,r,i,o){var a,s=e=e||{},c=typeof e.default;\"object\"!==c&&\"function\"!==c||(a=e,s=e.default);var l=\"function\"==typeof s?s.options:s;t&&(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),i&&(l._scopeId=i);var u;if(o?(u=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},l._ssrRegister=u):r&&(u=r),u){var f=l.functional,d=f?l.render:l.beforeCreate;f?(l._injectStyles=u,l.render=function(e,t){return u.call(t),d(e,t)}):l.beforeCreate=d?[].concat(d,u):[u]}return{esModule:a,exports:s,options:l}}},function(e,t,n){\"use strict\";function r(e,t){var n,r=e&&e.a;!(n=e&&e.hsl?(0,o.default)(e.hsl):e&&e.hex&&e.hex.length>0?(0,o.default)(e.hex):e&&e.hsv?(0,o.default)(e.hsv):e&&e.rgba?(0,o.default)(e.rgba):e&&e.rgb?(0,o.default)(e.rgb):(0,o.default)(e))||void 0!==n._a&&null!==n._a||n.setAlpha(r||1);var i=n.toHsl(),a=n.toHsv();return 0===i.s&&(a.h=i.h=e.h||e.hsl&&e.hsl.h||t||0),{hsl:i,hex:n.toHexString().toUpperCase(),hex8:n.toHex8String().toUpperCase(),rgba:n.toRgb(),hsv:a,oldHue:e.h||t||i.h,source:e.source,a:e.a||n.getAlpha()}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(65),o=function(e){return e&&e.__esModule?e:{default:e}}(i);t.default={props:[\"value\"],data:function(){return{val:r(this.value)}},computed:{colors:{get:function(){return this.val},set:function(e){this.val=e,this.$emit(\"input\",e)}}},watch:{value:function(e){this.val=r(e)}},methods:{colorChange:function(e,t){this.oldHue=this.colors.hsl.h,this.colors=r(e,t||this.oldHue)},isValidHex:function(e){return(0,o.default)(e).isValid()},simpleCheckForValidColor:function(e){for(var t=[\"r\",\"g\",\"b\",\"a\",\"h\",\"s\",\"l\",\"v\"],n=0,r=0,i=0;i<t.length;i++){var o=t[i];e[o]&&(n++,isNaN(e[o])||r++)}if(n===r)return e},paletteUpperCase:function(e){return e.map(function(e){return e.toUpperCase()})},isTransparent:function(e){return 0===(0,o.default)(e).getAlpha()}}}},function(e,t){var n=e.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(e,t,n){\"use strict\";function r(e){c||n(66)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(36),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(68),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/common/EditableInput.vue\",t.default=f.exports},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(8),i=n(18);e.exports=n(9)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(16),i=n(42),o=n(25),a=Object.defineProperty;t.f=n(9)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return a(e,t,n)}catch(e){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(e[t]=n.value),e}},function(e,t,n){e.exports=!n(17)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(e,t,n){var r=n(90),i=n(24);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(29)(\"wks\"),i=n(19),o=n(4).Symbol,a=\"function\"==typeof o;(e.exports=function(e){return r[e]||(r[e]=a&&o[e]||(a?o:i)(\"Symbol.\"+e))}).store=r},function(e,t){e.exports=function(e){return\"object\"==typeof e?null!==e:\"function\"==typeof e}},function(e,t,n){\"use strict\";function r(e){c||n(111)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(51),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(113),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/common/Hue.vue\",t.default=f.exports},function(e,t){e.exports=!0},function(e,t){var n=e.exports={version:\"2.6.11\"};\"number\"==typeof __e&&(__e=n)},function(e,t,n){var r=n(12);e.exports=function(e){if(!r(e))throw TypeError(e+\" is not an object!\");return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return\"Symbol(\".concat(void 0===e?\"\":e,\")_\",(++n+r).toString(36))}},function(e,t,n){\"use strict\";function r(e){c||n(123)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(54),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(127),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/common/Saturation.vue\",t.default=f.exports},function(e,t,n){\"use strict\";function r(e){c||n(128)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(55),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(133),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/common/Alpha.vue\",t.default=f.exports},function(e,t,n){\"use strict\";function r(e){c||n(130)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(56),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(132),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/common/Checkboard.vue\",t.default=f.exports},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError(\"Can't call method on \"+e);return e}},function(e,t,n){var r=n(12);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&\"function\"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if(\"function\"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&\"function\"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError(\"Can't convert object to primitive value\")}},function(e,t){e.exports={}},function(e,t,n){var r=n(46),i=n(30);e.exports=Object.keys||function(e){return r(e,i)}},function(e,t,n){var r=n(29)(\"keys\"),i=n(19);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t,n){var r=n(15),i=n(4),o=i[\"__core-js_shared__\"]||(i[\"__core-js_shared__\"]={});(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})(\"versions\",[]).push({version:r.version,mode:n(14)?\"pure\":\"global\",copyright:\"© 2019 Denis Pushkarev (zloirock.ru)\"})},function(e,t){e.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(e,t,n){var r=n(8).f,i=n(6),o=n(11)(\"toStringTag\");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){t.f=n(11)},function(e,t,n){var r=n(4),i=n(15),o=n(14),a=n(32),s=n(8).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});\"_\"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(3),o=r(i),a=n(5),s=r(a),c=[\"#4D4D4D\",\"#999999\",\"#FFFFFF\",\"#F44E3B\",\"#FE9200\",\"#FCDC00\",\"#DBDF00\",\"#A4DD00\",\"#68CCCA\",\"#73D8FF\",\"#AEA1FF\",\"#FDA1FF\",\"#333333\",\"#808080\",\"#CCCCCC\",\"#D33115\",\"#E27300\",\"#FCC400\",\"#B0BC00\",\"#68BC00\",\"#16A5A5\",\"#009CE0\",\"#7B64FF\",\"#FA28FF\",\"#000000\",\"#666666\",\"#B3B3B3\",\"#9F0500\",\"#C45100\",\"#FB9E00\",\"#808900\",\"#194D33\",\"#0C797D\",\"#0062B1\",\"#653294\",\"#AB149E\"];t.default={name:\"Compact\",mixins:[o.default],props:{palette:{type:Array,default:function(){return c}}},components:{\"ed-in\":s.default},computed:{pick:function(){return this.colors.hex.toUpperCase()}},methods:{handlerClick:function(e){this.colorChange({hex:e,source:\"hex\"})}}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"editableInput\",props:{label:String,labelText:String,desc:String,value:[String,Number],max:Number,min:Number,arrowOffset:{type:Number,default:1}},computed:{val:{get:function(){return this.value},set:function(e){if(!(void 0!==this.max&&+e>this.max))return e;this.$refs.input.value=this.max}},labelId:function(){return\"input__label__\"+this.label+\"__\"+Math.random().toString().slice(2,5)},labelSpanText:function(){return this.labelText||this.label}},methods:{update:function(e){this.handleChange(e.target.value)},handleChange:function(e){var t={};t[this.label]=e,void 0===t.hex&&void 0===t[\"#\"]?this.$emit(\"change\",t):e.length>5&&this.$emit(\"change\",t)},handleKeyDown:function(e){var t=this.val,n=Number(t);if(n){var r=this.arrowOffset||1;38===e.keyCode&&(t=n+r,this.handleChange(t),e.preventDefault()),40===e.keyCode&&(t=n-r,this.handleChange(t),e.preventDefault())}}}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(3),i=function(e){return e&&e.__esModule?e:{default:e}}(r),o=[\"#FFFFFF\",\"#F2F2F2\",\"#E6E6E6\",\"#D9D9D9\",\"#CCCCCC\",\"#BFBFBF\",\"#B3B3B3\",\"#A6A6A6\",\"#999999\",\"#8C8C8C\",\"#808080\",\"#737373\",\"#666666\",\"#595959\",\"#4D4D4D\",\"#404040\",\"#333333\",\"#262626\",\"#0D0D0D\",\"#000000\"];t.default={name:\"Grayscale\",mixins:[i.default],props:{palette:{type:Array,default:function(){return o}}},components:{},computed:{pick:function(){return this.colors.hex.toUpperCase()}},methods:{handlerClick:function(e){this.colorChange({hex:e,source:\"hex\"})}}}},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(5),o=r(i),a=n(3),s=r(a);t.default={name:\"Material\",mixins:[s.default],components:{\"ed-in\":o.default},methods:{onChange:function(e){e&&(e.hex?this.isValidHex(e.hex)&&this.colorChange({hex:e.hex,source:\"hex\"}):(e.r||e.g||e.b)&&this.colorChange({r:e.r||this.colors.rgba.r,g:e.g||this.colors.rgba.g,b:e.b||this.colors.rgba.b,a:e.a||this.colors.rgba.a,source:\"rgba\"}))}}}},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(81),o=r(i),a=n(3),s=r(a),c=n(13),l=r(c);t.default={name:\"Slider\",mixins:[s.default],props:{swatches:{type:Array,default:function(){return[{s:.5,l:.8},{s:.5,l:.65},{s:.5,l:.5},{s:.5,l:.35},{s:.5,l:.2}]}}},components:{hue:l.default},computed:{normalizedSwatches:function(){return this.swatches.map(function(e){return\"object\"!==(void 0===e?\"undefined\":(0,o.default)(e))?{s:.5,l:e}:e})}},methods:{isActive:function(e,t){var n=this.colors.hsl;return 1===n.l&&1===e.l||(0===n.l&&0===e.l||Math.abs(n.l-e.l)<.01&&Math.abs(n.s-e.s)<.01)},hueChange:function(e){this.colorChange(e)},handleSwClick:function(e,t){this.colorChange({h:this.colors.hsl.h,s:t.s,l:t.l,source:\"hsl\"})}}}},function(e,t,n){\"use strict\";var r=n(14),i=n(41),o=n(44),a=n(7),s=n(26),c=n(88),l=n(31),u=n(95),f=n(11)(\"iterator\"),d=!([].keys&&\"next\"in[].keys()),h=function(){return this};e.exports=function(e,t,n,p,v,g,b){c(n,t,p);var x,m,_,w=function(e){if(!d&&e in F)return F[e];switch(e){case\"keys\":case\"values\":return function(){return new n(this,e)}}return function(){return new n(this,e)}},y=t+\" Iterator\",C=\"values\"==v,k=!1,F=e.prototype,S=F[f]||F[\"@@iterator\"]||v&&F[v],A=S||w(v),O=v?C?w(\"entries\"):A:void 0,E=\"Array\"==t?F.entries||S:S;if(E&&(_=u(E.call(new e)))!==Object.prototype&&_.next&&(l(_,y,!0),r||\"function\"==typeof _[f]||a(_,f,h)),C&&S&&\"values\"!==S.name&&(k=!0,A=function(){return S.call(this)}),r&&!b||!d&&!k&&F[f]||a(F,f,A),s[t]=A,s[y]=h,v)if(x={values:C?A:w(\"values\"),keys:g?A:w(\"keys\"),entries:O},b)for(m in x)m in F||o(F,m,x[m]);else i(i.P+i.F*(d||k),t,x);return x}},function(e,t,n){var r=n(4),i=n(15),o=n(86),a=n(7),s=n(6),c=function(e,t,n){var l,u,f,d=e&c.F,h=e&c.G,p=e&c.S,v=e&c.P,g=e&c.B,b=e&c.W,x=h?i:i[t]||(i[t]={}),m=x.prototype,_=h?r:p?r[t]:(r[t]||{}).prototype;h&&(n=t);for(l in n)(u=!d&&_&&void 0!==_[l])&&s(x,l)||(f=u?_[l]:n[l],x[l]=h&&\"function\"!=typeof _[l]?n[l]:g&&u?o(f,r):b&&_[l]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):v&&\"function\"==typeof f?o(Function.call,f):f,v&&((x.virtual||(x.virtual={}))[l]=f,e&c.R&&m&&!m[l]&&a(m,l,f)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t,n){e.exports=!n(9)&&!n(17)(function(){return 7!=Object.defineProperty(n(43)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(e,t,n){var r=n(12),i=n(4).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t,n){e.exports=n(7)},function(e,t,n){var r=n(16),i=n(89),o=n(30),a=n(28)(\"IE_PROTO\"),s=function(){},c=function(){var e,t=n(43)(\"iframe\"),r=o.length;for(t.style.display=\"none\",n(94).appendChild(t),t.src=\"javascript:\",e=t.contentWindow.document,e.open(),e.write(\"<script>document.F=Object<\\/script>\"),e.close(),c=e.F;r--;)delete c.prototype[o[r]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[a]=e):n=c(),void 0===t?n:i(n,t)}},function(e,t,n){var r=n(6),i=n(10),o=n(91)(!1),a=n(28)(\"IE_PROTO\");e.exports=function(e,t){var n,s=i(e),c=0,l=[];for(n in s)n!=a&&r(s,n)&&l.push(n);for(;t.length>c;)r(s,n=t[c++])&&(~o(l,n)||l.push(n));return l}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(24);e.exports=function(e){return Object(r(e))}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(46),i=n(30).concat(\"length\",\"prototype\");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"Hue\",props:{value:Object,direction:{type:String,default:\"horizontal\"}},data:function(){return{oldHue:0,pullDirection:\"\"}},computed:{colors:function(){var e=this.value.hsl.h;return 0!==e&&e-this.oldHue>0&&(this.pullDirection=\"right\"),0!==e&&e-this.oldHue<0&&(this.pullDirection=\"left\"),this.oldHue=e,this.value},directionClass:function(){return{\"vc-hue--horizontal\":\"horizontal\"===this.direction,\"vc-hue--vertical\":\"vertical\"===this.direction}},pointerTop:function(){return\"vertical\"===this.direction?0===this.colors.hsl.h&&\"right\"===this.pullDirection?0:-100*this.colors.hsl.h/360+100+\"%\":0},pointerLeft:function(){return\"vertical\"===this.direction?0:0===this.colors.hsl.h&&\"right\"===this.pullDirection?\"100%\":100*this.colors.hsl.h/360+\"%\"}},methods:{handleChange:function(e,t){!t&&e.preventDefault();var n=this.$refs.container;if(n){var r,i,o=n.clientWidth,a=n.clientHeight,s=n.getBoundingClientRect().left+window.pageXOffset,c=n.getBoundingClientRect().top+window.pageYOffset,l=e.pageX||(e.touches?e.touches[0].pageX:0),u=e.pageY||(e.touches?e.touches[0].pageY:0),f=l-s,d=u-c;\"vertical\"===this.direction?(d<0?r=360:d>a?r=0:(i=-100*d/a+100,r=360*i/100),this.colors.hsl.h!==r&&this.$emit(\"change\",{h:r,s:this.colors.hsl.s,l:this.colors.hsl.l,a:this.colors.hsl.a,source:\"hsl\"})):(f<0?r=0:f>o?r=360:(i=100*f/o,r=360*i/100),this.colors.hsl.h!==r&&this.$emit(\"change\",{h:r,s:this.colors.hsl.s,l:this.colors.hsl.l,a:this.colors.hsl.a,source:\"hsl\"}))}},handleMouseDown:function(e){this.handleChange(e,!0),window.addEventListener(\"mousemove\",this.handleChange),window.addEventListener(\"mouseup\",this.handleMouseUp)},handleMouseUp:function(e){this.unbindEventListeners()},unbindEventListeners:function(){window.removeEventListener(\"mousemove\",this.handleChange),window.removeEventListener(\"mouseup\",this.handleMouseUp)}}}},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(118),o=r(i),a=n(3),s=r(a),c=[\"red\",\"pink\",\"purple\",\"deepPurple\",\"indigo\",\"blue\",\"lightBlue\",\"cyan\",\"teal\",\"green\",\"lightGreen\",\"lime\",\"yellow\",\"amber\",\"orange\",\"deepOrange\",\"brown\",\"blueGrey\",\"black\"],l=[\"900\",\"700\",\"500\",\"300\",\"100\"],u=function(){var e=[];return c.forEach(function(t){var n=[];\"black\"===t.toLowerCase()||\"white\"===t.toLowerCase()?n=n.concat([\"#000000\",\"#FFFFFF\"]):l.forEach(function(e){var r=o.default[t][e];n.push(r.toUpperCase())}),e.push(n)}),e}();t.default={name:\"Swatches\",mixins:[s.default],props:{palette:{type:Array,default:function(){return u}}},computed:{pick:function(){return this.colors.hex}},methods:{equal:function(e){return e.toLowerCase()===this.colors.hex.toLowerCase()},handlerClick:function(e){this.colorChange({hex:e,source:\"hex\"})}}}},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(3),o=r(i),a=n(5),s=r(a),c=n(20),l=r(c),u=n(13),f=r(u),d=n(21),h=r(d);t.default={name:\"Photoshop\",mixins:[o.default],props:{head:{type:String,default:\"Color Picker\"},disableFields:{type:Boolean,default:!1},hasResetButton:{type:Boolean,default:!1},acceptLabel:{type:String,default:\"OK\"},cancelLabel:{type:String,default:\"Cancel\"},resetLabel:{type:String,default:\"Reset\"},newLabel:{type:String,default:\"new\"},currentLabel:{type:String,default:\"current\"}},components:{saturation:l.default,hue:f.default,alpha:h.default,\"ed-in\":s.default},data:function(){return{currentColor:\"#FFF\"}},computed:{hsv:function(){var e=this.colors.hsv;return{h:e.h.toFixed(),s:(100*e.s).toFixed(),v:(100*e.v).toFixed()}},hex:function(){var e=this.colors.hex;return e&&e.replace(\"#\",\"\")}},created:function(){this.currentColor=this.colors.hex},methods:{childChange:function(e){this.colorChange(e)},inputChange:function(e){e&&(e[\"#\"]?this.isValidHex(e[\"#\"])&&this.colorChange({hex:e[\"#\"],source:\"hex\"}):e.r||e.g||e.b||e.a?this.colorChange({r:e.r||this.colors.rgba.r,g:e.g||this.colors.rgba.g,b:e.b||this.colors.rgba.b,a:e.a||this.colors.rgba.a,source:\"rgba\"}):(e.h||e.s||e.v)&&this.colorChange({h:e.h||this.colors.hsv.h,s:e.s/100||this.colors.hsv.s,v:e.v/100||this.colors.hsv.v,source:\"hsv\"}))},clickCurrentColor:function(){this.colorChange({hex:this.currentColor,source:\"hex\"})},handleAccept:function(){this.$emit(\"ok\")},handleCancel:function(){this.$emit(\"cancel\")},handleReset:function(){this.$emit(\"reset\")}}}},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(125),o=r(i),a=n(126),s=r(a);t.default={name:\"Saturation\",props:{value:Object},computed:{colors:function(){return this.value},bgColor:function(){return\"hsl(\"+this.colors.hsv.h+\", 100%, 50%)\"},pointerTop:function(){return-100*this.colors.hsv.v+1+100+\"%\"},pointerLeft:function(){return 100*this.colors.hsv.s+\"%\"}},methods:{throttle:(0,s.default)(function(e,t){e(t)},20,{leading:!0,trailing:!1}),handleChange:function(e,t){!t&&e.preventDefault();var n=this.$refs.container;if(n){var r=n.clientWidth,i=n.clientHeight,a=n.getBoundingClientRect().left+window.pageXOffset,s=n.getBoundingClientRect().top+window.pageYOffset,c=e.pageX||(e.touches?e.touches[0].pageX:0),l=e.pageY||(e.touches?e.touches[0].pageY:0),u=(0,o.default)(c-a,0,r),f=(0,o.default)(l-s,0,i),d=u/r,h=(0,o.default)(-f/i+1,0,1);this.throttle(this.onChange,{h:this.colors.hsv.h,s:d,v:h,a:this.colors.hsv.a,source:\"hsva\"})}},onChange:function(e){this.$emit(\"change\",e)},handleMouseDown:function(e){window.addEventListener(\"mousemove\",this.handleChange),window.addEventListener(\"mouseup\",this.handleChange),window.addEventListener(\"mouseup\",this.handleMouseUp)},handleMouseUp:function(e){this.unbindEventListeners()},unbindEventListeners:function(){window.removeEventListener(\"mousemove\",this.handleChange),window.removeEventListener(\"mouseup\",this.handleChange),window.removeEventListener(\"mouseup\",this.handleMouseUp)}}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(22),i=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default={name:\"Alpha\",props:{value:Object,onChange:Function},components:{checkboard:i.default},computed:{colors:function(){return this.value},gradientColor:function(){var e=this.colors.rgba,t=[e.r,e.g,e.b].join(\",\");return\"linear-gradient(to right, rgba(\"+t+\", 0) 0%, rgba(\"+t+\", 1) 100%)\"}},methods:{handleChange:function(e,t){!t&&e.preventDefault();var n=this.$refs.container;if(n){var r,i=n.clientWidth,o=n.getBoundingClientRect().left+window.pageXOffset,a=e.pageX||(e.touches?e.touches[0].pageX:0),s=a-o;r=s<0?0:s>i?1:Math.round(100*s/i)/100,this.colors.a!==r&&this.$emit(\"change\",{h:this.colors.hsl.h,s:this.colors.hsl.s,l:this.colors.hsl.l,a:r,source:\"rgba\"})}},handleMouseDown:function(e){this.handleChange(e,!0),window.addEventListener(\"mousemove\",this.handleChange),window.addEventListener(\"mouseup\",this.handleMouseUp)},handleMouseUp:function(){this.unbindEventListeners()},unbindEventListeners:function(){window.removeEventListener(\"mousemove\",this.handleChange),window.removeEventListener(\"mouseup\",this.handleMouseUp)}}}},function(e,t,n){\"use strict\";function r(e,t,n){if(\"undefined\"==typeof document)return null;var r=document.createElement(\"canvas\");r.width=r.height=2*n;var i=r.getContext(\"2d\");return i?(i.fillStyle=e,i.fillRect(0,0,r.width,r.height),i.fillStyle=t,i.fillRect(0,0,n,n),i.translate(n,n),i.fillRect(0,0,n,n),r.toDataURL()):null}function i(e,t,n){var i=e+\",\"+t+\",\"+n;if(o[i])return o[i];var a=r(e,t,n);return o[i]=a,a}Object.defineProperty(t,\"__esModule\",{value:!0});var o={};t.default={name:\"Checkboard\",props:{size:{type:[Number,String],default:8},white:{type:String,default:\"#fff\"},grey:{type:String,default:\"#e6e6e6\"}},computed:{bgStyle:function(){return{\"background-image\":\"url(\"+i(this.white,this.grey,this.size)+\")\"}}}}},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(3),o=r(i),a=n(5),s=r(a),c=n(20),l=r(c),u=n(13),f=r(u),d=n(21),h=r(d),p=n(22),v=r(p),g=[\"#D0021B\",\"#F5A623\",\"#F8E71C\",\"#8B572A\",\"#7ED321\",\"#417505\",\"#BD10E0\",\"#9013FE\",\"#4A90E2\",\"#50E3C2\",\"#B8E986\",\"#000000\",\"#4A4A4A\",\"#9B9B9B\",\"#FFFFFF\",\"rgba(0,0,0,0)\"];t.default={name:\"Sketch\",mixins:[o.default],components:{saturation:l.default,hue:f.default,alpha:h.default,\"ed-in\":s.default,checkboard:v.default},props:{presetColors:{type:Array,default:function(){return g}},disableAlpha:{type:Boolean,default:!1},disableFields:{type:Boolean,default:!1}},computed:{hex:function(){var e=void 0;return e=this.colors.a<1?this.colors.hex8:this.colors.hex,e.replace(\"#\",\"\")},activeColor:function(){var e=this.colors.rgba;return\"rgba(\"+[e.r,e.g,e.b,e.a].join(\",\")+\")\"}},methods:{handlePreset:function(e){this.colorChange({hex:e,source:\"hex\"})},childChange:function(e){this.colorChange(e)},inputChange:function(e){e&&(e.hex?this.isValidHex(e.hex)&&this.colorChange({hex:e.hex,source:\"hex\"}):(e.r||e.g||e.b||e.a)&&this.colorChange({r:e.r||this.colors.rgba.r,g:e.g||this.colors.rgba.g,b:e.b||this.colors.rgba.b,a:e.a||this.colors.rgba.a,source:\"rgba\"}))}}}},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(3),o=r(i),a=n(5),s=r(a),c=n(20),l=r(c),u=n(13),f=r(u),d=n(21),h=r(d),p=n(22),v=r(p);t.default={name:\"Chrome\",mixins:[o.default],props:{disableAlpha:{type:Boolean,default:!1},disableFields:{type:Boolean,default:!1}},components:{saturation:l.default,hue:f.default,alpha:h.default,\"ed-in\":s.default,checkboard:v.default},data:function(){return{fieldsIndex:0,highlight:!1}},computed:{hsl:function(){var e=this.colors.hsl,t=e.h,n=e.s,r=e.l;return{h:t.toFixed(),s:(100*n).toFixed()+\"%\",l:(100*r).toFixed()+\"%\"}},activeColor:function(){var e=this.colors.rgba;return\"rgba(\"+[e.r,e.g,e.b,e.a].join(\",\")+\")\"},hasAlpha:function(){return this.colors.a<1}},methods:{childChange:function(e){this.colorChange(e)},inputChange:function(e){if(e)if(e.hex)this.isValidHex(e.hex)&&this.colorChange({hex:e.hex,source:\"hex\"});else if(e.r||e.g||e.b||e.a)this.colorChange({r:e.r||this.colors.rgba.r,g:e.g||this.colors.rgba.g,b:e.b||this.colors.rgba.b,a:e.a||this.colors.rgba.a,source:\"rgba\"});else if(e.h||e.s||e.l){var t=e.s?e.s.replace(\"%\",\"\")/100:this.colors.hsl.s,n=e.l?e.l.replace(\"%\",\"\")/100:this.colors.hsl.l;this.colorChange({h:e.h||this.colors.hsl.h,s:t,l:n,source:\"hsl\"})}},toggleViews:function(){if(this.fieldsIndex>=2)return void(this.fieldsIndex=0);this.fieldsIndex++},showHighlight:function(){this.highlight=!0},hideHighlight:function(){this.highlight=!1}}}},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(5),o=r(i),a=n(3),s=r(a),c=[\"#FF6900\",\"#FCB900\",\"#7BDCB5\",\"#00D084\",\"#8ED1FC\",\"#0693E3\",\"#ABB8C3\",\"#EB144C\",\"#F78DA7\",\"#9900EF\"];t.default={name:\"Twitter\",mixins:[s.default],components:{editableInput:o.default},props:{width:{type:[String,Number],default:276},defaultColors:{type:Array,default:function(){return c}},triangle:{default:\"top-left\",validator:function(e){return[\"hide\",\"top-left\",\"top-right\"].includes(e)}}},computed:{hsv:function(){var e=this.colors.hsv;return{h:e.h.toFixed(),s:(100*e.s).toFixed(),v:(100*e.v).toFixed()}},hex:function(){var e=this.colors.hex;return e&&e.replace(\"#\",\"\")}},methods:{equal:function(e){return e.toLowerCase()===this.colors.hex.toLowerCase()},handlerClick:function(e){this.colorChange({hex:e,source:\"hex\"})},inputChange:function(e){e&&(e[\"#\"]?this.isValidHex(e[\"#\"])&&this.colorChange({hex:e[\"#\"],source:\"hex\"}):e.r||e.g||e.b||e.a?this.colorChange({r:e.r||this.colors.rgba.r,g:e.g||this.colors.rgba.g,b:e.b||this.colors.rgba.b,a:e.a||this.colors.rgba.a,source:\"rgba\"}):(e.h||e.s||e.v)&&this.colorChange({h:e.h||this.colors.hsv.h,s:e.s/100||this.colors.hsv.s,v:e.v/100||this.colors.hsv.v,source:\"hsv\"}))}}}},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(61),o=r(i),a=n(70),s=r(a),c=n(74),l=r(c),u=n(78),f=r(u),d=n(115),h=r(d),p=n(120),v=r(p),g=n(135),b=r(g),x=n(139),m=r(x),_=n(143),w=r(_),y=n(21),C=r(y),k=n(22),F=r(k),S=n(5),A=r(S),O=n(13),E=r(O),M=n(20),j=r(M),L=n(3),P=r(L),R={version:\"2.8.1\",Compact:o.default,Grayscale:s.default,Twitter:w.default,Material:l.default,Slider:f.default,Swatches:h.default,Photoshop:v.default,Sketch:b.default,Chrome:m.default,Alpha:C.default,Checkboard:F.default,EditableInput:A.default,Hue:E.default,Saturation:j.default,ColorMixin:P.default};e.exports=R},function(e,t,n){\"use strict\";function r(e){c||n(62)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(35),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(69),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/Compact.vue\",t.default=f.exports},function(e,t,n){var r=n(63);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"6ce8a5a8\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,\"\\n.vc-compact {\\n padding-top: 5px;\\n padding-left: 5px;\\n width: 245px;\\n border-radius: 2px;\\n box-sizing: border-box;\\n box-shadow: 0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16);\\n background-color: #fff;\\n}\\n.vc-compact-colors {\\n overflow: hidden;\\n padding: 0;\\n margin: 0;\\n}\\n.vc-compact-color-item {\\n list-style: none;\\n width: 15px;\\n height: 15px;\\n float: left;\\n margin-right: 5px;\\n margin-bottom: 5px;\\n position: relative;\\n cursor: pointer;\\n}\\n.vc-compact-color-item--white {\\n box-shadow: inset 0 0 0 1px #ddd;\\n}\\n.vc-compact-color-item--white .vc-compact-dot {\\n background: #000;\\n}\\n.vc-compact-dot {\\n position: absolute;\\n top: 5px;\\n right: 5px;\\n bottom: 5px;\\n left: 5px;\\n border-radius: 50%;\\n opacity: 1;\\n background: #fff;\\n}\\n\",\"\"])},function(e,t){e.exports=function(e,t){for(var n=[],r={},i=0;i<t.length;i++){var o=t[i],a=o[0],s=o[1],c=o[2],l=o[3],u={id:e+\":\"+i,css:s,media:c,sourceMap:l};r[a]?r[a].parts.push(u):n.push(r[a]={id:a,parts:[u]})}return n}},function(e,t,n){var r;!function(i){function o(e,t){if(e=e||\"\",t=t||{},e instanceof o)return e;if(!(this instanceof o))return new o(e,t);var n=a(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=G(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=G(this._r)),this._g<1&&(this._g=G(this._g)),this._b<1&&(this._b=G(this._b)),this._ok=n.ok,this._tc_id=U++}function a(e){var t={r:0,g:0,b:0},n=1,r=null,i=null,o=null,a=!1,c=!1;return\"string\"==typeof e&&(e=N(e)),\"object\"==typeof e&&(H(e.r)&&H(e.g)&&H(e.b)?(t=s(e.r,e.g,e.b),a=!0,c=\"%\"===String(e.r).substr(-1)?\"prgb\":\"rgb\"):H(e.h)&&H(e.s)&&H(e.v)?(r=D(e.s),i=D(e.v),t=f(e.h,r,i),a=!0,c=\"hsv\"):H(e.h)&&H(e.s)&&H(e.l)&&(r=D(e.s),o=D(e.l),t=l(e.h,r,o),a=!0,c=\"hsl\"),e.hasOwnProperty(\"a\")&&(n=e.a)),n=O(n),{ok:a,format:e.format||c,r:V(255,q(t.r,0)),g:V(255,q(t.g,0)),b:V(255,q(t.b,0)),a:n}}function s(e,t,n){return{r:255*E(e,255),g:255*E(t,255),b:255*E(n,255)}}function c(e,t,n){e=E(e,255),t=E(t,255),n=E(n,255);var r,i,o=q(e,t,n),a=V(e,t,n),s=(o+a)/2;if(o==a)r=i=0;else{var c=o-a;switch(i=s>.5?c/(2-o-a):c/(o+a),o){case e:r=(t-n)/c+(t<n?6:0);break;case t:r=(n-e)/c+2;break;case n:r=(e-t)/c+4}r/=6}return{h:r,s:i,l:s}}function l(e,t,n){function r(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var i,o,a;if(e=E(e,360),t=E(t,100),n=E(n,100),0===t)i=o=a=n;else{var s=n<.5?n*(1+t):n+t-n*t,c=2*n-s;i=r(c,s,e+1/3),o=r(c,s,e),a=r(c,s,e-1/3)}return{r:255*i,g:255*o,b:255*a}}function u(e,t,n){e=E(e,255),t=E(t,255),n=E(n,255);var r,i,o=q(e,t,n),a=V(e,t,n),s=o,c=o-a;if(i=0===o?0:c/o,o==a)r=0;else{switch(o){case e:r=(t-n)/c+(t<n?6:0);break;case t:r=(n-e)/c+2;break;case n:r=(e-t)/c+4}r/=6}return{h:r,s:i,v:s}}function f(e,t,n){e=6*E(e,360),t=E(t,100),n=E(n,100);var r=i.floor(e),o=e-r,a=n*(1-t),s=n*(1-o*t),c=n*(1-(1-o)*t),l=r%6;return{r:255*[n,s,a,a,c,n][l],g:255*[c,n,n,s,a,a][l],b:255*[a,a,c,n,n,s][l]}}function d(e,t,n,r){var i=[R(G(e).toString(16)),R(G(t).toString(16)),R(G(n).toString(16))];return r&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join(\"\")}function h(e,t,n,r,i){var o=[R(G(e).toString(16)),R(G(t).toString(16)),R(G(n).toString(16)),R(B(r))];return i&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0):o.join(\"\")}function p(e,t,n,r){return[R(B(r)),R(G(e).toString(16)),R(G(t).toString(16)),R(G(n).toString(16))].join(\"\")}function v(e,t){t=0===t?0:t||10;var n=o(e).toHsl();return n.s-=t/100,n.s=M(n.s),o(n)}function g(e,t){t=0===t?0:t||10;var n=o(e).toHsl();return n.s+=t/100,n.s=M(n.s),o(n)}function b(e){return o(e).desaturate(100)}function x(e,t){t=0===t?0:t||10;var n=o(e).toHsl();return n.l+=t/100,n.l=M(n.l),o(n)}function m(e,t){t=0===t?0:t||10;var n=o(e).toRgb();return n.r=q(0,V(255,n.r-G(-t/100*255))),n.g=q(0,V(255,n.g-G(-t/100*255))),n.b=q(0,V(255,n.b-G(-t/100*255))),o(n)}function _(e,t){t=0===t?0:t||10;var n=o(e).toHsl();return n.l-=t/100,n.l=M(n.l),o(n)}function w(e,t){var n=o(e).toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,o(n)}function y(e){var t=o(e).toHsl();return t.h=(t.h+180)%360,o(t)}function C(e){var t=o(e).toHsl(),n=t.h;return[o(e),o({h:(n+120)%360,s:t.s,l:t.l}),o({h:(n+240)%360,s:t.s,l:t.l})]}function k(e){var t=o(e).toHsl(),n=t.h;return[o(e),o({h:(n+90)%360,s:t.s,l:t.l}),o({h:(n+180)%360,s:t.s,l:t.l}),o({h:(n+270)%360,s:t.s,l:t.l})]}function F(e){var t=o(e).toHsl(),n=t.h;return[o(e),o({h:(n+72)%360,s:t.s,l:t.l}),o({h:(n+216)%360,s:t.s,l:t.l})]}function S(e,t,n){t=t||6,n=n||30;var r=o(e).toHsl(),i=360/n,a=[o(e)];for(r.h=(r.h-(i*t>>1)+720)%360;--t;)r.h=(r.h+i)%360,a.push(o(r));return a}function A(e,t){t=t||6;for(var n=o(e).toHsv(),r=n.h,i=n.s,a=n.v,s=[],c=1/t;t--;)s.push(o({h:r,s:i,v:a})),a=(a+c)%1;return s}function O(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function E(e,t){L(e)&&(e=\"100%\");var n=P(e);return e=V(t,q(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),i.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function M(e){return V(1,q(0,e))}function j(e){return parseInt(e,16)}function L(e){return\"string\"==typeof e&&-1!=e.indexOf(\".\")&&1===parseFloat(e)}function P(e){return\"string\"==typeof e&&-1!=e.indexOf(\"%\")}function R(e){return 1==e.length?\"0\"+e:\"\"+e}function D(e){return e<=1&&(e=100*e+\"%\"),e}function B(e){return i.round(255*parseFloat(e)).toString(16)}function T(e){return j(e)/255}function H(e){return!!J.CSS_UNIT.exec(e)}function N(e){e=e.replace(I,\"\").replace($,\"\").toLowerCase();var t=!1;if(W[e])e=W[e],t=!0;else if(\"transparent\"==e)return{r:0,g:0,b:0,a:0,format:\"name\"};var n;return(n=J.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=J.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=J.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=J.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=J.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=J.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=J.hex8.exec(e))?{r:j(n[1]),g:j(n[2]),b:j(n[3]),a:T(n[4]),format:t?\"name\":\"hex8\"}:(n=J.hex6.exec(e))?{r:j(n[1]),g:j(n[2]),b:j(n[3]),format:t?\"name\":\"hex\"}:(n=J.hex4.exec(e))?{r:j(n[1]+\"\"+n[1]),g:j(n[2]+\"\"+n[2]),b:j(n[3]+\"\"+n[3]),a:T(n[4]+\"\"+n[4]),format:t?\"name\":\"hex8\"}:!!(n=J.hex3.exec(e))&&{r:j(n[1]+\"\"+n[1]),g:j(n[2]+\"\"+n[2]),b:j(n[3]+\"\"+n[3]),format:t?\"name\":\"hex\"}}function z(e){var t,n;return e=e||{level:\"AA\",size:\"small\"},t=(e.level||\"AA\").toUpperCase(),n=(e.size||\"small\").toLowerCase(),\"AA\"!==t&&\"AAA\"!==t&&(t=\"AA\"),\"small\"!==n&&\"large\"!==n&&(n=\"small\"),{level:t,size:n}}var I=/^\\s+/,$=/\\s+$/,U=0,G=i.round,V=i.min,q=i.max,X=i.random;o.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,r,o,a,s=this.toRgb();return e=s.r/255,t=s.g/255,n=s.b/255,r=e<=.03928?e/12.92:i.pow((e+.055)/1.055,2.4),o=t<=.03928?t/12.92:i.pow((t+.055)/1.055,2.4),a=n<=.03928?n/12.92:i.pow((n+.055)/1.055,2.4),.2126*r+.7152*o+.0722*a},setAlpha:function(e){return this._a=O(e),this._roundA=G(100*this._a)/100,this},toHsv:function(){var e=u(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=u(this._r,this._g,this._b),t=G(360*e.h),n=G(100*e.s),r=G(100*e.v);return 1==this._a?\"hsv(\"+t+\", \"+n+\"%, \"+r+\"%)\":\"hsva(\"+t+\", \"+n+\"%, \"+r+\"%, \"+this._roundA+\")\"},toHsl:function(){var e=c(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=c(this._r,this._g,this._b),t=G(360*e.h),n=G(100*e.s),r=G(100*e.l);return 1==this._a?\"hsl(\"+t+\", \"+n+\"%, \"+r+\"%)\":\"hsla(\"+t+\", \"+n+\"%, \"+r+\"%, \"+this._roundA+\")\"},toHex:function(e){return d(this._r,this._g,this._b,e)},toHexString:function(e){return\"#\"+this.toHex(e)},toHex8:function(e){return h(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return\"#\"+this.toHex8(e)},toRgb:function(){return{r:G(this._r),g:G(this._g),b:G(this._b),a:this._a}},toRgbString:function(){return 1==this._a?\"rgb(\"+G(this._r)+\", \"+G(this._g)+\", \"+G(this._b)+\")\":\"rgba(\"+G(this._r)+\", \"+G(this._g)+\", \"+G(this._b)+\", \"+this._roundA+\")\"},toPercentageRgb:function(){return{r:G(100*E(this._r,255))+\"%\",g:G(100*E(this._g,255))+\"%\",b:G(100*E(this._b,255))+\"%\",a:this._a}},toPercentageRgbString:function(){return 1==this._a?\"rgb(\"+G(100*E(this._r,255))+\"%, \"+G(100*E(this._g,255))+\"%, \"+G(100*E(this._b,255))+\"%)\":\"rgba(\"+G(100*E(this._r,255))+\"%, \"+G(100*E(this._g,255))+\"%, \"+G(100*E(this._b,255))+\"%, \"+this._roundA+\")\"},toName:function(){return 0===this._a?\"transparent\":!(this._a<1)&&(Y[d(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t=\"#\"+p(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?\"GradientType = 1, \":\"\";if(e){var i=o(e);n=\"#\"+p(i._r,i._g,i._b,i._a)}return\"progid:DXImageTransform.Microsoft.gradient(\"+r+\"startColorstr=\"+t+\",endColorstr=\"+n+\")\"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,r=this._a<1&&this._a>=0;return t||!r||\"hex\"!==e&&\"hex6\"!==e&&\"hex3\"!==e&&\"hex4\"!==e&&\"hex8\"!==e&&\"name\"!==e?(\"rgb\"===e&&(n=this.toRgbString()),\"prgb\"===e&&(n=this.toPercentageRgbString()),\"hex\"!==e&&\"hex6\"!==e||(n=this.toHexString()),\"hex3\"===e&&(n=this.toHexString(!0)),\"hex4\"===e&&(n=this.toHex8String(!0)),\"hex8\"===e&&(n=this.toHex8String()),\"name\"===e&&(n=this.toName()),\"hsl\"===e&&(n=this.toHslString()),\"hsv\"===e&&(n=this.toHsvString()),n||this.toHexString()):\"name\"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return o(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(x,arguments)},brighten:function(){return this._applyModification(m,arguments)},darken:function(){return this._applyModification(_,arguments)},desaturate:function(){return this._applyModification(v,arguments)},saturate:function(){return this._applyModification(g,arguments)},greyscale:function(){return this._applyModification(b,arguments)},spin:function(){return this._applyModification(w,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(S,arguments)},complement:function(){return this._applyCombination(y,arguments)},monochromatic:function(){return this._applyCombination(A,arguments)},splitcomplement:function(){return this._applyCombination(F,arguments)},triad:function(){return this._applyCombination(C,arguments)},tetrad:function(){return this._applyCombination(k,arguments)}},o.fromRatio=function(e,t){if(\"object\"==typeof e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=\"a\"===r?e[r]:D(e[r]));e=n}return o(e,t)},o.equals=function(e,t){return!(!e||!t)&&o(e).toRgbString()==o(t).toRgbString()},o.random=function(){return o.fromRatio({r:X(),g:X(),b:X()})},o.mix=function(e,t,n){n=0===n?0:n||50;var r=o(e).toRgb(),i=o(t).toRgb(),a=n/100;return o({r:(i.r-r.r)*a+r.r,g:(i.g-r.g)*a+r.g,b:(i.b-r.b)*a+r.b,a:(i.a-r.a)*a+r.a})},o.readability=function(e,t){var n=o(e),r=o(t);return(i.max(n.getLuminance(),r.getLuminance())+.05)/(i.min(n.getLuminance(),r.getLuminance())+.05)},o.isReadable=function(e,t,n){var r,i,a=o.readability(e,t);switch(i=!1,r=z(n),r.level+r.size){case\"AAsmall\":case\"AAAlarge\":i=a>=4.5;break;case\"AAlarge\":i=a>=3;break;case\"AAAsmall\":i=a>=7}return i},o.mostReadable=function(e,t,n){var r,i,a,s,c=null,l=0;n=n||{},i=n.includeFallbackColors,a=n.level,s=n.size;for(var u=0;u<t.length;u++)(r=o.readability(e,t[u]))>l&&(l=r,c=o(t[u]));return o.isReadable(e,c,{level:a,size:s})||!i?c:(n.includeFallbackColors=!1,o.mostReadable(e,[\"#fff\",\"#000\"],n))};var W=o.names={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"0ff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000\",blanchedalmond:\"ffebcd\",blue:\"00f\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",burntsienna:\"ea7e5d\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"0ff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkgrey:\"a9a9a9\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkslategrey:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dimgrey:\"696969\",dodgerblue:\"1e90ff\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"f0f\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",grey:\"808080\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgray:\"d3d3d3\",lightgreen:\"90ee90\",lightgrey:\"d3d3d3\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslategray:\"789\",lightslategrey:\"789\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"0f0\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"f0f\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370db\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"db7093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",rebeccapurple:\"663399\",red:\"f00\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",slategrey:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",wheat:\"f5deb3\",white:\"fff\",whitesmoke:\"f5f5f5\",yellow:\"ff0\",yellowgreen:\"9acd32\"},Y=o.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(W),J=function(){var e=\"(?:[-\\\\+]?\\\\d*\\\\.\\\\d+%?)|(?:[-\\\\+]?\\\\d+%?)\",t=\"[\\\\s|\\\\(]+(\"+e+\")[,|\\\\s]+(\"+e+\")[,|\\\\s]+(\"+e+\")\\\\s*\\\\)?\",n=\"[\\\\s|\\\\(]+(\"+e+\")[,|\\\\s]+(\"+e+\")[,|\\\\s]+(\"+e+\")[,|\\\\s]+(\"+e+\")\\\\s*\\\\)?\";return{CSS_UNIT:new RegExp(e),rgb:new RegExp(\"rgb\"+t),rgba:new RegExp(\"rgba\"+n),hsl:new RegExp(\"hsl\"+t),hsla:new RegExp(\"hsla\"+n),hsv:new RegExp(\"hsv\"+t),hsva:new RegExp(\"hsva\"+n),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();void 0!==e&&e.exports?e.exports=o:void 0!==(r=function(){return o}.call(t,n,t,e))&&(e.exports=r)}(Math)},function(e,t,n){var r=n(67);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"0f73e73c\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,\"\\n.vc-editable-input {\\n position: relative;\\n}\\n.vc-input__input {\\n padding: 0;\\n border: 0;\\n outline: none;\\n}\\n.vc-input__label {\\n text-transform: capitalize;\\n}\\n\",\"\"])},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{staticClass:\"vc-editable-input\"},[n(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:e.val,expression:\"val\"}],ref:\"input\",staticClass:\"vc-input__input\",attrs:{\"aria-labelledby\":e.labelId},domProps:{value:e.val},on:{keydown:e.handleKeyDown,input:[function(t){t.target.composing||(e.val=t.target.value)},e.update]}}),e._v(\" \"),n(\"span\",{staticClass:\"vc-input__label\",attrs:{for:e.label,id:e.labelId}},[e._v(e._s(e.labelSpanText))]),e._v(\" \"),n(\"span\",{staticClass:\"vc-input__desc\"},[e._v(e._s(e.desc))])])},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{staticClass:\"vc-compact\",attrs:{role:\"application\",\"aria-label\":\"Compact color picker\"}},[n(\"ul\",{staticClass:\"vc-compact-colors\",attrs:{role:\"listbox\"}},e._l(e.paletteUpperCase(e.palette),function(t){return n(\"li\",{key:t,staticClass:\"vc-compact-color-item\",class:{\"vc-compact-color-item--white\":\"#FFFFFF\"===t},style:{background:t},attrs:{role:\"option\",\"aria-label\":\"color:\"+t,\"aria-selected\":t===e.pick},on:{click:function(n){return e.handlerClick(t)}}},[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t===e.pick,expression:\"c === pick\"}],staticClass:\"vc-compact-dot\"})])}),0)])},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){\"use strict\";function r(e){c||n(71)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(37),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(73),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/Grayscale.vue\",t.default=f.exports},function(e,t,n){var r=n(72);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"21ddbb74\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,\"\\n.vc-grayscale {\\n width: 125px;\\n border-radius: 2px;\\n box-shadow: 0 2px 15px rgba(0,0,0,.12), 0 2px 10px rgba(0,0,0,.16);\\n background-color: #fff;\\n}\\n.vc-grayscale-colors {\\n border-radius: 2px;\\n overflow: hidden;\\n padding: 0;\\n margin: 0;\\n}\\n.vc-grayscale-color-item {\\n list-style: none;\\n width: 25px;\\n height: 25px;\\n float: left;\\n position: relative;\\n cursor: pointer;\\n}\\n.vc-grayscale-color-item--white .vc-grayscale-dot {\\n background: #000;\\n}\\n.vc-grayscale-dot {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 6px;\\n height: 6px;\\n margin: -3px 0 0 -2px;\\n border-radius: 50%;\\n opacity: 1;\\n background: #fff;\\n}\\n\",\"\"])},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{staticClass:\"vc-grayscale\",attrs:{role:\"application\",\"aria-label\":\"Grayscale color picker\"}},[n(\"ul\",{staticClass:\"vc-grayscale-colors\",attrs:{role:\"listbox\"}},e._l(e.paletteUpperCase(e.palette),function(t){return n(\"li\",{key:t,staticClass:\"vc-grayscale-color-item\",class:{\"vc-grayscale-color-item--white\":\"#FFFFFF\"==t},style:{background:t},attrs:{role:\"option\",\"aria-label\":\"Color:\"+t,\"aria-selected\":t===e.pick},on:{click:function(n){return e.handlerClick(t)}}},[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t===e.pick,expression:\"c === pick\"}],staticClass:\"vc-grayscale-dot\"})])}),0)])},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){\"use strict\";function r(e){c||n(75)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(38),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(77),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/Material.vue\",t.default=f.exports},function(e,t,n){var r=n(76);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"1ff3af73\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,'\\n.vc-material {\\n width: 98px;\\n height: 98px;\\n padding: 16px;\\n font-family: \"Roboto\";\\n position: relative;\\n border-radius: 2px;\\n box-shadow: 0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16);\\n background-color: #fff;\\n}\\n.vc-material .vc-input__input {\\n width: 100%;\\n margin-top: 12px;\\n font-size: 15px;\\n color: #333;\\n height: 30px;\\n}\\n.vc-material .vc-input__label {\\n position: absolute;\\n top: 0;\\n left: 0;\\n font-size: 11px;\\n color: #999;\\n text-transform: capitalize;\\n}\\n.vc-material-hex {\\n border-bottom-width: 2px;\\n border-bottom-style: solid;\\n}\\n.vc-material-split {\\n display: flex;\\n margin-right: -10px;\\n padding-top: 11px;\\n}\\n.vc-material-third {\\n flex: 1;\\n padding-right: 10px;\\n}\\n',\"\"])},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{staticClass:\"vc-material\",attrs:{role:\"application\",\"aria-label\":\"Material color picker\"}},[n(\"ed-in\",{staticClass:\"vc-material-hex\",style:{borderColor:e.colors.hex},attrs:{label:\"hex\"},on:{change:e.onChange},model:{value:e.colors.hex,callback:function(t){e.$set(e.colors,\"hex\",t)},expression:\"colors.hex\"}}),e._v(\" \"),n(\"div\",{staticClass:\"vc-material-split\"},[n(\"div\",{staticClass:\"vc-material-third\"},[n(\"ed-in\",{attrs:{label:\"r\"},on:{change:e.onChange},model:{value:e.colors.rgba.r,callback:function(t){e.$set(e.colors.rgba,\"r\",t)},expression:\"colors.rgba.r\"}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-material-third\"},[n(\"ed-in\",{attrs:{label:\"g\"},on:{change:e.onChange},model:{value:e.colors.rgba.g,callback:function(t){e.$set(e.colors.rgba,\"g\",t)},expression:\"colors.rgba.g\"}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-material-third\"},[n(\"ed-in\",{attrs:{label:\"b\"},on:{change:e.onChange},model:{value:e.colors.rgba.b,callback:function(t){e.$set(e.colors.rgba,\"b\",t)},expression:\"colors.rgba.b\"}})],1)])],1)},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){\"use strict\";function r(e){c||n(79)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(39),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(114),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/Slider.vue\",t.default=f.exports},function(e,t,n){var r=n(80);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"7982aa43\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,\"\\n.vc-slider {\\n position: relative;\\n width: 410px;\\n}\\n.vc-slider-hue-warp {\\n height: 12px;\\n position: relative;\\n}\\n.vc-slider-hue-warp .vc-hue-picker {\\n width: 14px;\\n height: 14px;\\n border-radius: 6px;\\n transform: translate(-7px, -2px);\\n background-color: rgb(248, 248, 248);\\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);\\n}\\n.vc-slider-swatches {\\n display: flex;\\n margin-top: 20px;\\n}\\n.vc-slider-swatch {\\n margin-right: 1px;\\n flex: 1;\\n width: 20%;\\n}\\n.vc-slider-swatch:first-child {\\n margin-right: 1px;\\n}\\n.vc-slider-swatch:first-child .vc-slider-swatch-picker {\\n border-radius: 2px 0px 0px 2px;\\n}\\n.vc-slider-swatch:last-child {\\n margin-right: 0;\\n}\\n.vc-slider-swatch:last-child .vc-slider-swatch-picker {\\n border-radius: 0px 2px 2px 0px;\\n}\\n.vc-slider-swatch-picker {\\n cursor: pointer;\\n height: 12px;\\n}\\n.vc-slider-swatch:nth-child(n) .vc-slider-swatch-picker.vc-slider-swatch-picker--active {\\n transform: scaleY(1.8);\\n border-radius: 3.6px/2px;\\n}\\n.vc-slider-swatch-picker--white {\\n box-shadow: inset 0 0 0 1px #ddd;\\n}\\n.vc-slider-swatch-picker--active.vc-slider-swatch-picker--white {\\n box-shadow: inset 0 0 0 0.6px #ddd;\\n}\\n\",\"\"])},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(82),o=r(i),a=n(100),s=r(a),c=\"function\"==typeof s.default&&\"symbol\"==typeof o.default?function(e){return typeof e}:function(e){return e&&\"function\"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?\"symbol\":typeof e};t.default=\"function\"==typeof s.default&&\"symbol\"===c(o.default)?function(e){return void 0===e?\"undefined\":c(e)}:function(e){return e&&\"function\"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?\"symbol\":void 0===e?\"undefined\":c(e)}},function(e,t,n){e.exports={default:n(83),__esModule:!0}},function(e,t,n){n(84),n(96),e.exports=n(32).f(\"iterator\")},function(e,t,n){\"use strict\";var r=n(85)(!0);n(40)(String,\"String\",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(23),i=n(24);e.exports=function(e){return function(t,n){var o,a,s=String(i(t)),c=r(n),l=s.length;return c<0||c>=l?e?\"\":void 0:(o=s.charCodeAt(c),o<55296||o>56319||c+1===l||(a=s.charCodeAt(c+1))<56320||a>57343?e?s.charAt(c):o:e?s.slice(c,c+2):a-56320+(o-55296<<10)+65536)}}},function(e,t,n){var r=n(87);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if(\"function\"!=typeof e)throw TypeError(e+\" is not a function!\");return e}},function(e,t,n){\"use strict\";var r=n(45),i=n(18),o=n(31),a={};n(7)(a,n(11)(\"iterator\"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:i(1,n)}),o(e,t+\" Iterator\")}},function(e,t,n){var r=n(8),i=n(16),o=n(27);e.exports=n(9)?Object.defineProperties:function(e,t){i(e);for(var n,a=o(t),s=a.length,c=0;s>c;)r.f(e,n=a[c++],t[n]);return e}},function(e,t,n){var r=n(47);e.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(e){return\"String\"==r(e)?e.split(\"\"):Object(e)}},function(e,t,n){var r=n(10),i=n(92),o=n(93);e.exports=function(e){return function(t,n,a){var s,c=r(t),l=i(c.length),u=o(a,l);if(e&&n!=n){for(;l>u;)if((s=c[u++])!=s)return!0}else for(;l>u;u++)if((e||u in c)&&c[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var r=n(23),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){var r=n(23),i=Math.max,o=Math.min;e.exports=function(e,t){return e=r(e),e<0?i(e+t,0):o(e,t)}},function(e,t,n){var r=n(4).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(6),i=n(48),o=n(28)(\"IE_PROTO\"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:\"function\"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){n(97);for(var r=n(4),i=n(7),o=n(26),a=n(11)(\"toStringTag\"),s=\"CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList\".split(\",\"),c=0;c<s.length;c++){var l=s[c],u=r[l],f=u&&u.prototype;f&&!f[a]&&i(f,a,l),o[l]=o.Array}},function(e,t,n){\"use strict\";var r=n(98),i=n(99),o=n(26),a=n(10);e.exports=n(40)(Array,\"Array\",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):\"keys\"==t?i(0,n):\"values\"==t?i(0,e[n]):i(0,[n,e[n]])},\"values\"),o.Arguments=o.Array,r(\"keys\"),r(\"values\"),r(\"entries\")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){e.exports={default:n(101),__esModule:!0}},function(e,t,n){n(102),n(108),n(109),n(110),e.exports=n(15).Symbol},function(e,t,n){\"use strict\";var r=n(4),i=n(6),o=n(9),a=n(41),s=n(44),c=n(103).KEY,l=n(17),u=n(29),f=n(31),d=n(19),h=n(11),p=n(32),v=n(33),g=n(104),b=n(105),x=n(16),m=n(12),_=n(48),w=n(10),y=n(25),C=n(18),k=n(45),F=n(106),S=n(107),A=n(49),O=n(8),E=n(27),M=S.f,j=O.f,L=F.f,P=r.Symbol,R=r.JSON,D=R&&R.stringify,B=h(\"_hidden\"),T=h(\"toPrimitive\"),H={}.propertyIsEnumerable,N=u(\"symbol-registry\"),z=u(\"symbols\"),I=u(\"op-symbols\"),$=Object.prototype,U=\"function\"==typeof P&&!!A.f,G=r.QObject,V=!G||!G.prototype||!G.prototype.findChild,q=o&&l(function(){return 7!=k(j({},\"a\",{get:function(){return j(this,\"a\",{value:7}).a}})).a})?function(e,t,n){var r=M($,t);r&&delete $[t],j(e,t,n),r&&e!==$&&j($,t,r)}:j,X=function(e){var t=z[e]=k(P.prototype);return t._k=e,t},W=U&&\"symbol\"==typeof P.iterator?function(e){return\"symbol\"==typeof e}:function(e){return e instanceof P},Y=function(e,t,n){return e===$&&Y(I,t,n),x(e),t=y(t,!0),x(n),i(z,t)?(n.enumerable?(i(e,B)&&e[B][t]&&(e[B][t]=!1),n=k(n,{enumerable:C(0,!1)})):(i(e,B)||j(e,B,C(1,{})),e[B][t]=!0),q(e,t,n)):j(e,t,n)},J=function(e,t){x(e);for(var n,r=g(t=w(t)),i=0,o=r.length;o>i;)Y(e,n=r[i++],t[n]);return e},K=function(e,t){return void 0===t?k(e):J(k(e),t)},Z=function(e){var t=H.call(this,e=y(e,!0));return!(this===$&&i(z,e)&&!i(I,e))&&(!(t||!i(this,e)||!i(z,e)||i(this,B)&&this[B][e])||t)},Q=function(e,t){if(e=w(e),t=y(t,!0),e!==$||!i(z,t)||i(I,t)){var n=M(e,t);return!n||!i(z,t)||i(e,B)&&e[B][t]||(n.enumerable=!0),n}},ee=function(e){for(var t,n=L(w(e)),r=[],o=0;n.length>o;)i(z,t=n[o++])||t==B||t==c||r.push(t);return r},te=function(e){for(var t,n=e===$,r=L(n?I:w(e)),o=[],a=0;r.length>a;)!i(z,t=r[a++])||n&&!i($,t)||o.push(z[t]);return o};U||(P=function(){if(this instanceof P)throw TypeError(\"Symbol is not a constructor!\");var e=d(arguments.length>0?arguments[0]:void 0),t=function(n){this===$&&t.call(I,n),i(this,B)&&i(this[B],e)&&(this[B][e]=!1),q(this,e,C(1,n))};return o&&V&&q($,e,{configurable:!0,set:t}),X(e)},s(P.prototype,\"toString\",function(){return this._k}),S.f=Q,O.f=Y,n(50).f=F.f=ee,n(34).f=Z,A.f=te,o&&!n(14)&&s($,\"propertyIsEnumerable\",Z,!0),p.f=function(e){return X(h(e))}),a(a.G+a.W+a.F*!U,{Symbol:P});for(var ne=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),re=0;ne.length>re;)h(ne[re++]);for(var ie=E(h.store),oe=0;ie.length>oe;)v(ie[oe++]);a(a.S+a.F*!U,\"Symbol\",{for:function(e){return i(N,e+=\"\")?N[e]:N[e]=P(e)},keyFor:function(e){if(!W(e))throw TypeError(e+\" is not a symbol!\");for(var t in N)if(N[t]===e)return t},useSetter:function(){V=!0},useSimple:function(){V=!1}}),a(a.S+a.F*!U,\"Object\",{create:K,defineProperty:Y,defineProperties:J,getOwnPropertyDescriptor:Q,getOwnPropertyNames:ee,getOwnPropertySymbols:te});var ae=l(function(){A.f(1)});a(a.S+a.F*ae,\"Object\",{getOwnPropertySymbols:function(e){return A.f(_(e))}}),R&&a(a.S+a.F*(!U||l(function(){var e=P();return\"[null]\"!=D([e])||\"{}\"!=D({a:e})||\"{}\"!=D(Object(e))})),\"JSON\",{stringify:function(e){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=t=r[1],(m(t)||void 0!==e)&&!W(e))return b(t)||(t=function(e,t){if(\"function\"==typeof n&&(t=n.call(this,e,t)),!W(t))return t}),r[1]=t,D.apply(R,r)}}),P.prototype[T]||n(7)(P.prototype,T,P.prototype.valueOf),f(P,\"Symbol\"),f(Math,\"Math\",!0),f(r.JSON,\"JSON\",!0)},function(e,t,n){var r=n(19)(\"meta\"),i=n(12),o=n(6),a=n(8).f,s=0,c=Object.isExtensible||function(){return!0},l=!n(17)(function(){return c(Object.preventExtensions({}))}),u=function(e){a(e,r,{value:{i:\"O\"+ ++s,w:{}}})},f=function(e,t){if(!i(e))return\"symbol\"==typeof e?e:(\"string\"==typeof e?\"S\":\"P\")+e;if(!o(e,r)){if(!c(e))return\"F\";if(!t)return\"E\";u(e)}return e[r].i},d=function(e,t){if(!o(e,r)){if(!c(e))return!0;if(!t)return!1;u(e)}return e[r].w},h=function(e){return l&&p.NEED&&c(e)&&!o(e,r)&&u(e),e},p=e.exports={KEY:r,NEED:!1,fastKey:f,getWeak:d,onFreeze:h}},function(e,t,n){var r=n(27),i=n(49),o=n(34);e.exports=function(e){var t=r(e),n=i.f;if(n)for(var a,s=n(e),c=o.f,l=0;s.length>l;)c.call(e,a=s[l++])&&t.push(a);return t}},function(e,t,n){var r=n(47);e.exports=Array.isArray||function(e){return\"Array\"==r(e)}},function(e,t,n){var r=n(10),i=n(50).f,o={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return i(e)}catch(e){return a.slice()}};e.exports.f=function(e){return a&&\"[object Window]\"==o.call(e)?s(e):i(r(e))}},function(e,t,n){var r=n(34),i=n(18),o=n(10),a=n(25),s=n(6),c=n(42),l=Object.getOwnPropertyDescriptor;t.f=n(9)?l:function(e,t){if(e=o(e),t=a(t,!0),c)try{return l(e,t)}catch(e){}if(s(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t){},function(e,t,n){n(33)(\"asyncIterator\")},function(e,t,n){n(33)(\"observable\")},function(e,t,n){var r=n(112);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"7c5f1a1c\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,\"\\n.vc-hue {\\n position: absolute;\\n top: 0px;\\n right: 0px;\\n bottom: 0px;\\n left: 0px;\\n border-radius: 2px;\\n}\\n.vc-hue--horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n}\\n.vc-hue--vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n}\\n.vc-hue-container {\\n cursor: pointer;\\n margin: 0 2px;\\n position: relative;\\n height: 100%;\\n}\\n.vc-hue-pointer {\\n z-index: 2;\\n position: absolute;\\n}\\n.vc-hue-picker {\\n cursor: pointer;\\n margin-top: 1px;\\n width: 4px;\\n border-radius: 1px;\\n height: 8px;\\n box-shadow: 0 0 2px rgba(0, 0, 0, .6);\\n background: #fff;\\n transform: translateX(-2px) ;\\n}\\n\",\"\"])},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{class:[\"vc-hue\",e.directionClass]},[n(\"div\",{ref:\"container\",staticClass:\"vc-hue-container\",attrs:{role:\"slider\",\"aria-valuenow\":e.colors.hsl.h,\"aria-valuemin\":\"0\",\"aria-valuemax\":\"360\"},on:{mousedown:e.handleMouseDown,touchmove:e.handleChange,touchstart:e.handleChange}},[n(\"div\",{staticClass:\"vc-hue-pointer\",style:{top:e.pointerTop,left:e.pointerLeft},attrs:{role:\"presentation\"}},[n(\"div\",{staticClass:\"vc-hue-picker\"})])])])},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{staticClass:\"vc-slider\",attrs:{role:\"application\",\"aria-label\":\"Slider color picker\"}},[n(\"div\",{staticClass:\"vc-slider-hue-warp\"},[n(\"hue\",{on:{change:e.hueChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-slider-swatches\",attrs:{role:\"group\"}},e._l(e.normalizedSwatches,function(t,r){return n(\"div\",{key:r,staticClass:\"vc-slider-swatch\",attrs:{\"data-index\":r,\"aria-label\":\"color:\"+e.colors.hex,role:\"button\"},on:{click:function(n){return e.handleSwClick(r,t)}}},[n(\"div\",{staticClass:\"vc-slider-swatch-picker\",class:{\"vc-slider-swatch-picker--active\":e.isActive(t,r),\"vc-slider-swatch-picker--white\":1===t.l},style:{background:\"hsl(\"+e.colors.hsl.h+\", \"+100*t.s+\"%, \"+100*t.l+\"%)\"}})])}),0)])},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){\"use strict\";function r(e){c||n(116)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(52),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(119),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/Swatches.vue\",t.default=f.exports},function(e,t,n){var r=n(117);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"10f839a2\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,\"\\n.vc-swatches {\\n width: 320px;\\n height: 240px;\\n overflow-y: scroll;\\n background-color: #fff;\\n box-shadow: 0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16);\\n}\\n.vc-swatches-box {\\n padding: 16px 0 6px 16px;\\n overflow: hidden;\\n}\\n.vc-swatches-color-group {\\n padding-bottom: 10px;\\n width: 40px;\\n float: left;\\n margin-right: 10px;\\n}\\n.vc-swatches-color-it {\\n box-sizing: border-box;\\n width: 40px;\\n height: 24px;\\n cursor: pointer;\\n background: #880e4f;\\n margin-bottom: 1px;\\n overflow: hidden;\\n -ms-border-radius: 2px 2px 0 0;\\n -moz-border-radius: 2px 2px 0 0;\\n -o-border-radius: 2px 2px 0 0;\\n -webkit-border-radius: 2px 2px 0 0;\\n border-radius: 2px 2px 0 0;\\n}\\n.vc-swatches-color--white {\\n border: 1px solid #DDD;\\n}\\n.vc-swatches-pick {\\n fill: rgb(255, 255, 255);\\n margin-left: 8px;\\n display: block;\\n}\\n.vc-swatches-color--white .vc-swatches-pick {\\n fill: rgb(51, 51, 51);\\n}\\n\",\"\"])},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),n.d(t,\"red\",function(){return r}),n.d(t,\"pink\",function(){return i}),n.d(t,\"purple\",function(){return o}),n.d(t,\"deepPurple\",function(){return a}),n.d(t,\"indigo\",function(){return s}),n.d(t,\"blue\",function(){return c}),n.d(t,\"lightBlue\",function(){return l}),n.d(t,\"cyan\",function(){return u}),n.d(t,\"teal\",function(){return f}),n.d(t,\"green\",function(){return d}),n.d(t,\"lightGreen\",function(){return h}),n.d(t,\"lime\",function(){return p}),n.d(t,\"yellow\",function(){return v}),n.d(t,\"amber\",function(){return g}),n.d(t,\"orange\",function(){return b}),n.d(t,\"deepOrange\",function(){return x}),n.d(t,\"brown\",function(){return m}),n.d(t,\"grey\",function(){return _}),n.d(t,\"blueGrey\",function(){return w}),n.d(t,\"darkText\",function(){return y}),n.d(t,\"lightText\",function(){return C}),n.d(t,\"darkIcons\",function(){return k}),n.d(t,\"lightIcons\",function(){return F}),n.d(t,\"white\",function(){return S}),n.d(t,\"black\",function(){return A});var r={50:\"#ffebee\",100:\"#ffcdd2\",200:\"#ef9a9a\",300:\"#e57373\",400:\"#ef5350\",500:\"#f44336\",600:\"#e53935\",700:\"#d32f2f\",800:\"#c62828\",900:\"#b71c1c\",a100:\"#ff8a80\",a200:\"#ff5252\",a400:\"#ff1744\",a700:\"#d50000\"},i={50:\"#fce4ec\",100:\"#f8bbd0\",200:\"#f48fb1\",300:\"#f06292\",400:\"#ec407a\",500:\"#e91e63\",600:\"#d81b60\",700:\"#c2185b\",800:\"#ad1457\",900:\"#880e4f\",a100:\"#ff80ab\",a200:\"#ff4081\",a400:\"#f50057\",a700:\"#c51162\"},o={50:\"#f3e5f5\",100:\"#e1bee7\",200:\"#ce93d8\",300:\"#ba68c8\",400:\"#ab47bc\",500:\"#9c27b0\",600:\"#8e24aa\",700:\"#7b1fa2\",800:\"#6a1b9a\",900:\"#4a148c\",a100:\"#ea80fc\",a200:\"#e040fb\",a400:\"#d500f9\",a700:\"#aa00ff\"},a={50:\"#ede7f6\",100:\"#d1c4e9\",200:\"#b39ddb\",300:\"#9575cd\",400:\"#7e57c2\",500:\"#673ab7\",600:\"#5e35b1\",700:\"#512da8\",800:\"#4527a0\",900:\"#311b92\",a100:\"#b388ff\",a200:\"#7c4dff\",a400:\"#651fff\",a700:\"#6200ea\"},s={50:\"#e8eaf6\",100:\"#c5cae9\",200:\"#9fa8da\",300:\"#7986cb\",400:\"#5c6bc0\",500:\"#3f51b5\",600:\"#3949ab\",700:\"#303f9f\",800:\"#283593\",900:\"#1a237e\",a100:\"#8c9eff\",a200:\"#536dfe\",a400:\"#3d5afe\",a700:\"#304ffe\"},c={50:\"#e3f2fd\",100:\"#bbdefb\",200:\"#90caf9\",300:\"#64b5f6\",400:\"#42a5f5\",500:\"#2196f3\",600:\"#1e88e5\",700:\"#1976d2\",800:\"#1565c0\",900:\"#0d47a1\",a100:\"#82b1ff\",a200:\"#448aff\",a400:\"#2979ff\",a700:\"#2962ff\"},l={50:\"#e1f5fe\",100:\"#b3e5fc\",200:\"#81d4fa\",300:\"#4fc3f7\",400:\"#29b6f6\",500:\"#03a9f4\",600:\"#039be5\",700:\"#0288d1\",800:\"#0277bd\",900:\"#01579b\",a100:\"#80d8ff\",a200:\"#40c4ff\",a400:\"#00b0ff\",a700:\"#0091ea\"},u={50:\"#e0f7fa\",100:\"#b2ebf2\",200:\"#80deea\",300:\"#4dd0e1\",400:\"#26c6da\",500:\"#00bcd4\",600:\"#00acc1\",700:\"#0097a7\",800:\"#00838f\",900:\"#006064\",a100:\"#84ffff\",a200:\"#18ffff\",a400:\"#00e5ff\",a700:\"#00b8d4\"},f={50:\"#e0f2f1\",100:\"#b2dfdb\",200:\"#80cbc4\",300:\"#4db6ac\",400:\"#26a69a\",500:\"#009688\",600:\"#00897b\",700:\"#00796b\",800:\"#00695c\",900:\"#004d40\",a100:\"#a7ffeb\",a200:\"#64ffda\",a400:\"#1de9b6\",a700:\"#00bfa5\"},d={50:\"#e8f5e9\",100:\"#c8e6c9\",200:\"#a5d6a7\",300:\"#81c784\",400:\"#66bb6a\",500:\"#4caf50\",600:\"#43a047\",700:\"#388e3c\",800:\"#2e7d32\",900:\"#1b5e20\",a100:\"#b9f6ca\",a200:\"#69f0ae\",a400:\"#00e676\",a700:\"#00c853\"},h={50:\"#f1f8e9\",100:\"#dcedc8\",200:\"#c5e1a5\",300:\"#aed581\",400:\"#9ccc65\",500:\"#8bc34a\",600:\"#7cb342\",700:\"#689f38\",800:\"#558b2f\",900:\"#33691e\",a100:\"#ccff90\",a200:\"#b2ff59\",a400:\"#76ff03\",a700:\"#64dd17\"},p={50:\"#f9fbe7\",100:\"#f0f4c3\",200:\"#e6ee9c\",300:\"#dce775\",400:\"#d4e157\",500:\"#cddc39\",600:\"#c0ca33\",700:\"#afb42b\",800:\"#9e9d24\",900:\"#827717\",a100:\"#f4ff81\",a200:\"#eeff41\",a400:\"#c6ff00\",a700:\"#aeea00\"},v={50:\"#fffde7\",100:\"#fff9c4\",200:\"#fff59d\",300:\"#fff176\",400:\"#ffee58\",500:\"#ffeb3b\",600:\"#fdd835\",700:\"#fbc02d\",800:\"#f9a825\",900:\"#f57f17\",a100:\"#ffff8d\",a200:\"#ffff00\",a400:\"#ffea00\",a700:\"#ffd600\"},g={50:\"#fff8e1\",100:\"#ffecb3\",200:\"#ffe082\",300:\"#ffd54f\",400:\"#ffca28\",500:\"#ffc107\",600:\"#ffb300\",700:\"#ffa000\",800:\"#ff8f00\",900:\"#ff6f00\",a100:\"#ffe57f\",a200:\"#ffd740\",a400:\"#ffc400\",a700:\"#ffab00\"},b={50:\"#fff3e0\",100:\"#ffe0b2\",200:\"#ffcc80\",300:\"#ffb74d\",400:\"#ffa726\",500:\"#ff9800\",600:\"#fb8c00\",700:\"#f57c00\",800:\"#ef6c00\",900:\"#e65100\",a100:\"#ffd180\",a200:\"#ffab40\",a400:\"#ff9100\",a700:\"#ff6d00\"},x={50:\"#fbe9e7\",100:\"#ffccbc\",200:\"#ffab91\",300:\"#ff8a65\",400:\"#ff7043\",500:\"#ff5722\",600:\"#f4511e\",700:\"#e64a19\",800:\"#d84315\",900:\"#bf360c\",a100:\"#ff9e80\",a200:\"#ff6e40\",a400:\"#ff3d00\",a700:\"#dd2c00\"},m={50:\"#efebe9\",100:\"#d7ccc8\",200:\"#bcaaa4\",300:\"#a1887f\",400:\"#8d6e63\",500:\"#795548\",600:\"#6d4c41\",700:\"#5d4037\",800:\"#4e342e\",900:\"#3e2723\"},_={50:\"#fafafa\",100:\"#f5f5f5\",200:\"#eeeeee\",300:\"#e0e0e0\",400:\"#bdbdbd\",500:\"#9e9e9e\",600:\"#757575\",700:\"#616161\",800:\"#424242\",900:\"#212121\"},w={50:\"#eceff1\",100:\"#cfd8dc\",200:\"#b0bec5\",300:\"#90a4ae\",400:\"#78909c\",500:\"#607d8b\",600:\"#546e7a\",700:\"#455a64\",800:\"#37474f\",900:\"#263238\"},y={primary:\"rgba(0, 0, 0, 0.87)\",secondary:\"rgba(0, 0, 0, 0.54)\",disabled:\"rgba(0, 0, 0, 0.38)\",dividers:\"rgba(0, 0, 0, 0.12)\"},C={primary:\"rgba(255, 255, 255, 1)\",secondary:\"rgba(255, 255, 255, 0.7)\",disabled:\"rgba(255, 255, 255, 0.5)\",dividers:\"rgba(255, 255, 255, 0.12)\"},k={active:\"rgba(0, 0, 0, 0.54)\",inactive:\"rgba(0, 0, 0, 0.38)\"},F={active:\"rgba(255, 255, 255, 1)\",inactive:\"rgba(255, 255, 255, 0.5)\"},S=\"#ffffff\",A=\"#000000\";t.default={red:r,pink:i,purple:o,deepPurple:a,indigo:s,blue:c,lightBlue:l,cyan:u,teal:f,green:d,lightGreen:h,lime:p,yellow:v,amber:g,orange:b,deepOrange:x,brown:m,grey:_,blueGrey:w,darkText:y,lightText:C,darkIcons:k,lightIcons:F,white:S,black:A}},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{staticClass:\"vc-swatches\",attrs:{role:\"application\",\"aria-label\":\"Swatches color picker\",\"data-pick\":e.pick}},[n(\"div\",{staticClass:\"vc-swatches-box\",attrs:{role:\"listbox\"}},e._l(e.palette,function(t,r){return n(\"div\",{key:r,staticClass:\"vc-swatches-color-group\"},e._l(t,function(t){return n(\"div\",{key:t,class:[\"vc-swatches-color-it\",{\"vc-swatches-color--white\":\"#FFFFFF\"===t}],style:{background:t},attrs:{role:\"option\",\"aria-label\":\"Color:\"+t,\"aria-selected\":e.equal(t),\"data-color\":t},on:{click:function(n){return e.handlerClick(t)}}},[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.equal(t),expression:\"equal(c)\"}],staticClass:\"vc-swatches-pick\"},[n(\"svg\",{staticStyle:{width:\"24px\",height:\"24px\"},attrs:{viewBox:\"0 0 24 24\"}},[n(\"path\",{attrs:{d:\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"}})])])])}),0)}),0)])},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){\"use strict\";function r(e){c||n(121)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(53),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(134),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/Photoshop.vue\",t.default=f.exports},function(e,t,n){var r=n(122);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"080365d4\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,'\\n.vc-photoshop {\\n background: #DCDCDC;\\n border-radius: 4px;\\n box-shadow: 0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15);\\n box-sizing: initial;\\n width: 513px;\\n font-family: Roboto;\\n}\\n.vc-photoshop__disable-fields {\\n width: 390px;\\n}\\n.vc-ps-head {\\n background-image: linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%);\\n border-bottom: 1px solid #B1B1B1;\\n box-shadow: inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02);\\n height: 23px;\\n line-height: 24px;\\n border-radius: 4px 4px 0 0;\\n font-size: 13px;\\n color: #4D4D4D;\\n text-align: center;\\n}\\n.vc-ps-body {\\n padding: 15px;\\n display: flex;\\n}\\n.vc-ps-saturation-wrap {\\n width: 256px;\\n height: 256px;\\n position: relative;\\n border: 2px solid #B3B3B3;\\n border-bottom: 2px solid #F0F0F0;\\n overflow: hidden;\\n}\\n.vc-ps-saturation-wrap .vc-saturation-circle {\\n width: 12px;\\n height: 12px;\\n}\\n.vc-ps-hue-wrap {\\n position: relative;\\n height: 256px;\\n width: 19px;\\n margin-left: 10px;\\n border: 2px solid #B3B3B3;\\n border-bottom: 2px solid #F0F0F0;\\n}\\n.vc-ps-hue-pointer {\\n position: relative;\\n}\\n.vc-ps-hue-pointer--left,\\n.vc-ps-hue-pointer--right {\\n position: absolute;\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: 5px 0 5px 8px;\\n border-color: transparent transparent transparent #555;\\n}\\n.vc-ps-hue-pointer--left:after,\\n.vc-ps-hue-pointer--right:after {\\n content: \"\";\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: 4px 0 4px 6px;\\n border-color: transparent transparent transparent #fff;\\n position: absolute;\\n top: 1px;\\n left: 1px;\\n transform: translate(-8px, -5px);\\n}\\n.vc-ps-hue-pointer--left {\\n transform: translate(-13px, -4px);\\n}\\n.vc-ps-hue-pointer--right {\\n transform: translate(20px, -4px) rotate(180deg);\\n}\\n.vc-ps-controls {\\n width: 180px;\\n margin-left: 10px;\\n display: flex;\\n}\\n.vc-ps-controls__disable-fields {\\n width: auto;\\n}\\n.vc-ps-actions {\\n margin-left: 20px;\\n flex: 1;\\n}\\n.vc-ps-ac-btn {\\n cursor: pointer;\\n background-image: linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%);\\n border: 1px solid #878787;\\n border-radius: 2px;\\n height: 20px;\\n box-shadow: 0 1px 0 0 #EAEAEA;\\n font-size: 14px;\\n color: #000;\\n line-height: 20px;\\n text-align: center;\\n margin-bottom: 10px;\\n}\\n.vc-ps-previews {\\n width: 60px;\\n}\\n.vc-ps-previews__swatches {\\n border: 1px solid #B3B3B3;\\n border-bottom: 1px solid #F0F0F0;\\n margin-bottom: 2px;\\n margin-top: 1px;\\n}\\n.vc-ps-previews__pr-color {\\n height: 34px;\\n box-shadow: inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000;\\n}\\n.vc-ps-previews__label {\\n font-size: 14px;\\n color: #000;\\n text-align: center;\\n}\\n.vc-ps-fields {\\n padding-top: 5px;\\n padding-bottom: 9px;\\n width: 80px;\\n position: relative;\\n}\\n.vc-ps-fields .vc-input__input {\\n margin-left: 40%;\\n width: 40%;\\n height: 18px;\\n border: 1px solid #888888;\\n box-shadow: inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC;\\n margin-bottom: 5px;\\n font-size: 13px;\\n padding-left: 3px;\\n margin-right: 10px;\\n}\\n.vc-ps-fields .vc-input__label, .vc-ps-fields .vc-input__desc {\\n top: 0;\\n text-transform: uppercase;\\n font-size: 13px;\\n height: 18px;\\n line-height: 22px;\\n position: absolute;\\n}\\n.vc-ps-fields .vc-input__label {\\n left: 0;\\n width: 34px;\\n}\\n.vc-ps-fields .vc-input__desc {\\n right: 0;\\n width: 0;\\n}\\n.vc-ps-fields__divider {\\n height: 5px;\\n}\\n.vc-ps-fields__hex .vc-input__input {\\n margin-left: 20%;\\n width: 80%;\\n height: 18px;\\n border: 1px solid #888888;\\n box-shadow: inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC;\\n margin-bottom: 6px;\\n font-size: 13px;\\n padding-left: 3px;\\n}\\n.vc-ps-fields__hex .vc-input__label {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 14px;\\n text-transform: uppercase;\\n font-size: 13px;\\n height: 18px;\\n line-height: 22px;\\n}\\n',\"\"])},function(e,t,n){var r=n(124);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"b5380e52\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,\"\\n.vc-saturation,\\n.vc-saturation--white,\\n.vc-saturation--black {\\n cursor: pointer;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n}\\n.vc-saturation--white {\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n}\\n.vc-saturation--black {\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n}\\n.vc-saturation-pointer {\\n cursor: pointer;\\n position: absolute;\\n}\\n.vc-saturation-circle {\\n cursor: head;\\n width: 4px;\\n height: 4px;\\n box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3), 0 0 1px 2px rgba(0,0,0,.4);\\n border-radius: 50%;\\n transform: translate(-2px, -2px);\\n}\\n\",\"\"])},function(e,t){function n(e,t,n){return t<n?e<t?t:e>n?n:e:e<n?n:e>t?t:e}e.exports=n},function(e,t){function n(e,t,n){function r(t){var n=v,r=g;return v=g=void 0,k=t,x=e.apply(r,n)}function o(e){return k=e,m=setTimeout(u,t),F?r(e):x}function a(e){var n=e-_,r=e-k,i=t-n;return S?y(i,b-r):i}function l(e){var n=e-_,r=e-k;return void 0===_||n>=t||n<0||S&&r>=b}function u(){var e=C();if(l(e))return f(e);m=setTimeout(u,a(e))}function f(e){return m=void 0,A&&v?r(e):(v=g=void 0,x)}function d(){void 0!==m&&clearTimeout(m),k=0,v=_=g=m=void 0}function h(){return void 0===m?x:f(C())}function p(){var e=C(),n=l(e);if(v=arguments,g=this,_=e,n){if(void 0===m)return o(_);if(S)return m=setTimeout(u,t),r(_)}return void 0===m&&(m=setTimeout(u,t)),x}var v,g,b,x,m,_,k=0,F=!1,S=!1,A=!0;if(\"function\"!=typeof e)throw new TypeError(c);return t=s(t)||0,i(n)&&(F=!!n.leading,S=\"maxWait\"in n,b=S?w(s(n.maxWait)||0,t):b,A=\"trailing\"in n?!!n.trailing:A),p.cancel=d,p.flush=h,p}function r(e,t,r){var o=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(c);return i(r)&&(o=\"leading\"in r?!!r.leading:o,a=\"trailing\"in r?!!r.trailing:a),n(e,t,{leading:o,maxWait:t,trailing:a})}function i(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function o(e){return!!e&&\"object\"==typeof e}function a(e){return\"symbol\"==typeof e||o(e)&&_.call(e)==u}function s(e){if(\"number\"==typeof e)return e;if(a(e))return l;if(i(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(f,\"\");var n=h.test(e);return n||p.test(e)?v(e.slice(2),n?2:8):d.test(e)?l:+e}var c=\"Expected a function\",l=NaN,u=\"[object Symbol]\",f=/^\\s+|\\s+$/g,d=/^[-+]0x[0-9a-f]+$/i,h=/^0b[01]+$/i,p=/^0o[0-7]+$/i,v=parseInt,g=\"object\"==typeof global&&global&&global.Object===Object&&global,b=\"object\"==typeof self&&self&&self.Object===Object&&self,x=g||b||Function(\"return this\")(),m=Object.prototype,_=m.toString,w=Math.max,y=Math.min,C=function(){return x.Date.now()};e.exports=r},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{ref:\"container\",staticClass:\"vc-saturation\",style:{background:e.bgColor},on:{mousedown:e.handleMouseDown,touchmove:e.handleChange,touchstart:e.handleChange}},[n(\"div\",{staticClass:\"vc-saturation--white\"}),e._v(\" \"),n(\"div\",{staticClass:\"vc-saturation--black\"}),e._v(\" \"),n(\"div\",{staticClass:\"vc-saturation-pointer\",style:{top:e.pointerTop,left:e.pointerLeft}},[n(\"div\",{staticClass:\"vc-saturation-circle\"})])])},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){var r=n(129);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"4dc1b086\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,\"\\n.vc-alpha {\\n position: absolute;\\n top: 0px;\\n right: 0px;\\n bottom: 0px;\\n left: 0px;\\n}\\n.vc-alpha-checkboard-wrap {\\n position: absolute;\\n top: 0px;\\n right: 0px;\\n bottom: 0px;\\n left: 0px;\\n overflow: hidden;\\n}\\n.vc-alpha-gradient {\\n position: absolute;\\n top: 0px;\\n right: 0px;\\n bottom: 0px;\\n left: 0px;\\n}\\n.vc-alpha-container {\\n cursor: pointer;\\n position: relative;\\n z-index: 2;\\n height: 100%;\\n margin: 0 3px;\\n}\\n.vc-alpha-pointer {\\n z-index: 2;\\n position: absolute;\\n}\\n.vc-alpha-picker {\\n cursor: pointer;\\n width: 4px;\\n border-radius: 1px;\\n height: 8px;\\n box-shadow: 0 0 2px rgba(0, 0, 0, .6);\\n background: #fff;\\n margin-top: 1px;\\n transform: translateX(-2px);\\n}\\n\",\"\"])},function(e,t,n){var r=n(131);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"7e15c05b\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,\"\\n.vc-checkerboard {\\n position: absolute;\\n top: 0px;\\n right: 0px;\\n bottom: 0px;\\n left: 0px;\\n background-size: contain;\\n}\\n\",\"\"])},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement;return(e._self._c||t)(\"div\",{staticClass:\"vc-checkerboard\",style:e.bgStyle})},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{staticClass:\"vc-alpha\"},[n(\"div\",{staticClass:\"vc-alpha-checkboard-wrap\"},[n(\"checkboard\")],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-alpha-gradient\",style:{background:e.gradientColor}}),e._v(\" \"),n(\"div\",{ref:\"container\",staticClass:\"vc-alpha-container\",on:{mousedown:e.handleMouseDown,touchmove:e.handleChange,touchstart:e.handleChange}},[n(\"div\",{staticClass:\"vc-alpha-pointer\",style:{left:100*e.colors.a+\"%\"}},[n(\"div\",{staticClass:\"vc-alpha-picker\"})])])])},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{class:[\"vc-photoshop\",e.disableFields?\"vc-photoshop__disable-fields\":\"\"],attrs:{role:\"application\",\"aria-label\":\"PhotoShop color picker\"}},[n(\"div\",{staticClass:\"vc-ps-head\",attrs:{role:\"heading\"}},[e._v(e._s(e.head))]),e._v(\" \"),n(\"div\",{staticClass:\"vc-ps-body\"},[n(\"div\",{staticClass:\"vc-ps-saturation-wrap\"},[n(\"saturation\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-ps-hue-wrap\"},[n(\"hue\",{attrs:{direction:\"vertical\"},on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}},[n(\"div\",{staticClass:\"vc-ps-hue-pointer\"},[n(\"i\",{staticClass:\"vc-ps-hue-pointer--left\"}),n(\"i\",{staticClass:\"vc-ps-hue-pointer--right\"})])])],1),e._v(\" \"),n(\"div\",{class:[\"vc-ps-controls\",e.disableFields?\"vc-ps-controls__disable-fields\":\"\"]},[n(\"div\",{staticClass:\"vc-ps-previews\"},[n(\"div\",{staticClass:\"vc-ps-previews__label\"},[e._v(e._s(e.newLabel))]),e._v(\" \"),n(\"div\",{staticClass:\"vc-ps-previews__swatches\"},[n(\"div\",{staticClass:\"vc-ps-previews__pr-color\",style:{background:e.colors.hex},attrs:{\"aria-label\":\"New color is \"+e.colors.hex}}),e._v(\" \"),n(\"div\",{staticClass:\"vc-ps-previews__pr-color\",style:{background:e.currentColor},attrs:{\"aria-label\":\"Current color is \"+e.currentColor},on:{click:e.clickCurrentColor}})]),e._v(\" \"),n(\"div\",{staticClass:\"vc-ps-previews__label\"},[e._v(e._s(e.currentLabel))])]),e._v(\" \"),e.disableFields?e._e():n(\"div\",{staticClass:\"vc-ps-actions\"},[n(\"div\",{staticClass:\"vc-ps-ac-btn\",attrs:{role:\"button\",\"aria-label\":e.acceptLabel},on:{click:e.handleAccept}},[e._v(e._s(e.acceptLabel))]),e._v(\" \"),n(\"div\",{staticClass:\"vc-ps-ac-btn\",attrs:{role:\"button\",\"aria-label\":e.cancelLabel},on:{click:e.handleCancel}},[e._v(e._s(e.cancelLabel))]),e._v(\" \"),n(\"div\",{staticClass:\"vc-ps-fields\"},[n(\"ed-in\",{attrs:{label:\"h\",desc:\"°\",value:e.hsv.h},on:{change:e.inputChange}}),e._v(\" \"),n(\"ed-in\",{attrs:{label:\"s\",desc:\"%\",value:e.hsv.s,max:100},on:{change:e.inputChange}}),e._v(\" \"),n(\"ed-in\",{attrs:{label:\"v\",desc:\"%\",value:e.hsv.v,max:100},on:{change:e.inputChange}}),e._v(\" \"),n(\"div\",{staticClass:\"vc-ps-fields__divider\"}),e._v(\" \"),n(\"ed-in\",{attrs:{label:\"r\",value:e.colors.rgba.r},on:{change:e.inputChange}}),e._v(\" \"),n(\"ed-in\",{attrs:{label:\"g\",value:e.colors.rgba.g},on:{change:e.inputChange}}),e._v(\" \"),n(\"ed-in\",{attrs:{label:\"b\",value:e.colors.rgba.b},on:{change:e.inputChange}}),e._v(\" \"),n(\"div\",{staticClass:\"vc-ps-fields__divider\"}),e._v(\" \"),n(\"ed-in\",{staticClass:\"vc-ps-fields__hex\",attrs:{label:\"#\",value:e.hex},on:{change:e.inputChange}})],1),e._v(\" \"),e.hasResetButton?n(\"div\",{staticClass:\"vc-ps-ac-btn\",attrs:{\"aria-label\":\"reset\"},on:{click:e.handleReset}},[e._v(e._s(e.resetLabel))]):e._e()])])])])},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){\"use strict\";function r(e){c||n(136)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(57),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(138),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/Sketch.vue\",t.default=f.exports},function(e,t,n){var r=n(137);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"612c6604\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,\"\\n.vc-sketch {\\n position: relative;\\n width: 200px;\\n padding: 10px 10px 0;\\n box-sizing: initial;\\n background: #fff;\\n border-radius: 4px;\\n box-shadow: 0 0 0 1px rgba(0, 0, 0, .15), 0 8px 16px rgba(0, 0, 0, .15);\\n}\\n.vc-sketch-saturation-wrap {\\n width: 100%;\\n padding-bottom: 75%;\\n position: relative;\\n overflow: hidden;\\n}\\n.vc-sketch-controls {\\n display: flex;\\n}\\n.vc-sketch-sliders {\\n padding: 4px 0;\\n flex: 1;\\n}\\n.vc-sketch-sliders .vc-hue,\\n.vc-sketch-sliders .vc-alpha-gradient {\\n border-radius: 2px;\\n}\\n.vc-sketch-hue-wrap {\\n position: relative;\\n height: 10px;\\n}\\n.vc-sketch-alpha-wrap {\\n position: relative;\\n height: 10px;\\n margin-top: 4px;\\n overflow: hidden;\\n}\\n.vc-sketch-color-wrap {\\n width: 24px;\\n height: 24px;\\n position: relative;\\n margin-top: 4px;\\n margin-left: 4px;\\n border-radius: 3px;\\n}\\n.vc-sketch-active-color {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n border-radius: 2px;\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15), inset 0 0 4px rgba(0, 0, 0, .25);\\n z-index: 2;\\n}\\n.vc-sketch-color-wrap .vc-checkerboard {\\n background-size: auto;\\n}\\n.vc-sketch-field {\\n display: flex;\\n padding-top: 4px;\\n}\\n.vc-sketch-field .vc-input__input {\\n width: 90%;\\n padding: 4px 0 3px 10%;\\n border: none;\\n box-shadow: inset 0 0 0 1px #ccc;\\n font-size: 10px;\\n}\\n.vc-sketch-field .vc-input__label {\\n display: block;\\n text-align: center;\\n font-size: 11px;\\n color: #222;\\n padding-top: 3px;\\n padding-bottom: 4px;\\n text-transform: capitalize;\\n}\\n.vc-sketch-field--single {\\n flex: 1;\\n padding-left: 6px;\\n}\\n.vc-sketch-field--double {\\n flex: 2;\\n}\\n.vc-sketch-presets {\\n margin-right: -10px;\\n margin-left: -10px;\\n padding-left: 10px;\\n padding-top: 10px;\\n border-top: 1px solid #eee;\\n}\\n.vc-sketch-presets-color {\\n border-radius: 3px;\\n overflow: hidden;\\n position: relative;\\n display: inline-block;\\n margin: 0 10px 10px 0;\\n vertical-align: top;\\n cursor: pointer;\\n width: 16px;\\n height: 16px;\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15);\\n}\\n.vc-sketch-presets-color .vc-checkerboard {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15);\\n border-radius: 3px;\\n}\\n.vc-sketch__disable-alpha .vc-sketch-color-wrap {\\n height: 10px;\\n}\\n\",\"\"])},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{class:[\"vc-sketch\",e.disableAlpha?\"vc-sketch__disable-alpha\":\"\"],attrs:{role:\"application\",\"aria-label\":\"Sketch color picker\"}},[n(\"div\",{staticClass:\"vc-sketch-saturation-wrap\"},[n(\"saturation\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-sketch-controls\"},[n(\"div\",{staticClass:\"vc-sketch-sliders\"},[n(\"div\",{staticClass:\"vc-sketch-hue-wrap\"},[n(\"hue\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1),e._v(\" \"),e.disableAlpha?e._e():n(\"div\",{staticClass:\"vc-sketch-alpha-wrap\"},[n(\"alpha\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1)]),e._v(\" \"),n(\"div\",{staticClass:\"vc-sketch-color-wrap\"},[n(\"div\",{staticClass:\"vc-sketch-active-color\",style:{background:e.activeColor},attrs:{\"aria-label\":\"Current color is \"+e.activeColor}}),e._v(\" \"),n(\"checkboard\")],1)]),e._v(\" \"),e.disableFields?e._e():n(\"div\",{staticClass:\"vc-sketch-field\"},[n(\"div\",{staticClass:\"vc-sketch-field--double\"},[n(\"ed-in\",{attrs:{label:\"hex\",value:e.hex},on:{change:e.inputChange}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-sketch-field--single\"},[n(\"ed-in\",{attrs:{label:\"r\",value:e.colors.rgba.r},on:{change:e.inputChange}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-sketch-field--single\"},[n(\"ed-in\",{attrs:{label:\"g\",value:e.colors.rgba.g},on:{change:e.inputChange}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-sketch-field--single\"},[n(\"ed-in\",{attrs:{label:\"b\",value:e.colors.rgba.b},on:{change:e.inputChange}})],1),e._v(\" \"),e.disableAlpha?e._e():n(\"div\",{staticClass:\"vc-sketch-field--single\"},[n(\"ed-in\",{attrs:{label:\"a\",value:e.colors.a,\"arrow-offset\":.01,max:1},on:{change:e.inputChange}})],1)]),e._v(\" \"),n(\"div\",{staticClass:\"vc-sketch-presets\",attrs:{role:\"group\",\"aria-label\":\"A color preset, pick one to set as current color\"}},[e._l(e.presetColors,function(t){return[e.isTransparent(t)?n(\"div\",{key:t,staticClass:\"vc-sketch-presets-color\",attrs:{\"aria-label\":\"Color:\"+t},on:{click:function(n){return e.handlePreset(t)}}},[n(\"checkboard\")],1):n(\"div\",{key:t,staticClass:\"vc-sketch-presets-color\",style:{background:t},attrs:{\"aria-label\":\"Color:\"+t},on:{click:function(n){return e.handlePreset(t)}}})]})],2)])},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){\"use strict\";function r(e){c||n(140)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(58),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(142),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/Chrome.vue\",t.default=f.exports},function(e,t,n){var r=n(141);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"1cd16048\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,\"\\n.vc-chrome {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3);\\n box-sizing: initial;\\n width: 225px;\\n font-family: Menlo;\\n background-color: #fff;\\n}\\n.vc-chrome-controls {\\n display: flex;\\n}\\n.vc-chrome-color-wrap {\\n position: relative;\\n width: 36px;\\n}\\n.vc-chrome-active-color {\\n position: relative;\\n width: 30px;\\n height: 30px;\\n border-radius: 15px;\\n overflow: hidden;\\n z-index: 1;\\n}\\n.vc-chrome-color-wrap .vc-checkerboard {\\n width: 30px;\\n height: 30px;\\n border-radius: 15px;\\n background-size: auto;\\n}\\n.vc-chrome-sliders {\\n flex: 1;\\n}\\n.vc-chrome-fields-wrap {\\n display: flex;\\n padding-top: 16px;\\n}\\n.vc-chrome-fields {\\n display: flex;\\n margin-left: -6px;\\n flex: 1;\\n}\\n.vc-chrome-field {\\n padding-left: 6px;\\n width: 100%;\\n}\\n.vc-chrome-toggle-btn {\\n width: 32px;\\n text-align: right;\\n position: relative;\\n}\\n.vc-chrome-toggle-icon {\\n margin-right: -4px;\\n margin-top: 12px;\\n cursor: pointer;\\n position: relative;\\n z-index: 2;\\n}\\n.vc-chrome-toggle-icon-highlight {\\n position: absolute;\\n width: 24px;\\n height: 28px;\\n background: #eee;\\n border-radius: 4px;\\n top: 10px;\\n left: 12px;\\n}\\n.vc-chrome-hue-wrap {\\n position: relative;\\n height: 10px;\\n margin-bottom: 8px;\\n}\\n.vc-chrome-alpha-wrap {\\n position: relative;\\n height: 10px;\\n}\\n.vc-chrome-hue-wrap .vc-hue {\\n border-radius: 2px;\\n}\\n.vc-chrome-alpha-wrap .vc-alpha-gradient {\\n border-radius: 2px;\\n}\\n.vc-chrome-hue-wrap .vc-hue-picker, .vc-chrome-alpha-wrap .vc-alpha-picker {\\n width: 12px;\\n height: 12px;\\n border-radius: 6px;\\n transform: translate(-6px, -2px);\\n background-color: rgb(248, 248, 248);\\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);\\n}\\n.vc-chrome-body {\\n padding: 16px 16px 12px;\\n background-color: #fff;\\n}\\n.vc-chrome-saturation-wrap {\\n width: 100%;\\n padding-bottom: 55%;\\n position: relative;\\n border-radius: 2px 2px 0 0;\\n overflow: hidden;\\n}\\n.vc-chrome-saturation-wrap .vc-saturation-circle {\\n width: 12px;\\n height: 12px;\\n}\\n.vc-chrome-fields .vc-input__input {\\n font-size: 11px;\\n color: #333;\\n width: 100%;\\n border-radius: 2px;\\n border: none;\\n box-shadow: inset 0 0 0 1px #dadada;\\n height: 21px;\\n text-align: center;\\n}\\n.vc-chrome-fields .vc-input__label {\\n text-transform: uppercase;\\n font-size: 11px;\\n line-height: 11px;\\n color: #969696;\\n text-align: center;\\n display: block;\\n margin-top: 12px;\\n}\\n.vc-chrome__disable-alpha .vc-chrome-active-color {\\n width: 18px;\\n height: 18px;\\n}\\n.vc-chrome__disable-alpha .vc-chrome-color-wrap {\\n width: 30px;\\n}\\n.vc-chrome__disable-alpha .vc-chrome-hue-wrap {\\n margin-top: 4px;\\n margin-bottom: 4px;\\n}\\n\",\"\"])},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{class:[\"vc-chrome\",e.disableAlpha?\"vc-chrome__disable-alpha\":\"\"],attrs:{role:\"application\",\"aria-label\":\"Chrome color picker\"}},[n(\"div\",{staticClass:\"vc-chrome-saturation-wrap\"},[n(\"saturation\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-chrome-body\"},[n(\"div\",{staticClass:\"vc-chrome-controls\"},[n(\"div\",{staticClass:\"vc-chrome-color-wrap\"},[n(\"div\",{staticClass:\"vc-chrome-active-color\",style:{background:e.activeColor},attrs:{\"aria-label\":\"current color is \"+e.colors.hex}}),e._v(\" \"),e.disableAlpha?e._e():n(\"checkboard\")],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-chrome-sliders\"},[n(\"div\",{staticClass:\"vc-chrome-hue-wrap\"},[n(\"hue\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1),e._v(\" \"),e.disableAlpha?e._e():n(\"div\",{staticClass:\"vc-chrome-alpha-wrap\"},[n(\"alpha\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1)])]),e._v(\" \"),e.disableFields?e._e():n(\"div\",{staticClass:\"vc-chrome-fields-wrap\"},[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:0===e.fieldsIndex,expression:\"fieldsIndex === 0\"}],staticClass:\"vc-chrome-fields\"},[n(\"div\",{staticClass:\"vc-chrome-field\"},[e.hasAlpha?e._e():n(\"ed-in\",{attrs:{label:\"hex\",value:e.colors.hex},on:{change:e.inputChange}}),e._v(\" \"),e.hasAlpha?n(\"ed-in\",{attrs:{label:\"hex\",value:e.colors.hex8},on:{change:e.inputChange}}):e._e()],1)]),e._v(\" \"),n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:1===e.fieldsIndex,expression:\"fieldsIndex === 1\"}],staticClass:\"vc-chrome-fields\"},[n(\"div\",{staticClass:\"vc-chrome-field\"},[n(\"ed-in\",{attrs:{label:\"r\",value:e.colors.rgba.r},on:{change:e.inputChange}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-chrome-field\"},[n(\"ed-in\",{attrs:{label:\"g\",value:e.colors.rgba.g},on:{change:e.inputChange}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-chrome-field\"},[n(\"ed-in\",{attrs:{label:\"b\",value:e.colors.rgba.b},on:{change:e.inputChange}})],1),e._v(\" \"),e.disableAlpha?e._e():n(\"div\",{staticClass:\"vc-chrome-field\"},[n(\"ed-in\",{attrs:{label:\"a\",value:e.colors.a,\"arrow-offset\":.01,max:1},on:{change:e.inputChange}})],1)]),e._v(\" \"),n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:2===e.fieldsIndex,expression:\"fieldsIndex === 2\"}],staticClass:\"vc-chrome-fields\"},[n(\"div\",{staticClass:\"vc-chrome-field\"},[n(\"ed-in\",{attrs:{label:\"h\",value:e.hsl.h},on:{change:e.inputChange}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-chrome-field\"},[n(\"ed-in\",{attrs:{label:\"s\",value:e.hsl.s},on:{change:e.inputChange}})],1),e._v(\" \"),n(\"div\",{staticClass:\"vc-chrome-field\"},[n(\"ed-in\",{attrs:{label:\"l\",value:e.hsl.l},on:{change:e.inputChange}})],1),e._v(\" \"),e.disableAlpha?e._e():n(\"div\",{staticClass:\"vc-chrome-field\"},[n(\"ed-in\",{attrs:{label:\"a\",value:e.colors.a,\"arrow-offset\":.01,max:1},on:{change:e.inputChange}})],1)]),e._v(\" \"),n(\"div\",{staticClass:\"vc-chrome-toggle-btn\",attrs:{role:\"button\",\"aria-label\":\"Change another color definition\"},on:{click:e.toggleViews}},[n(\"div\",{staticClass:\"vc-chrome-toggle-icon\"},[n(\"svg\",{staticStyle:{width:\"24px\",height:\"24px\"},attrs:{viewBox:\"0 0 24 24\"},on:{mouseover:e.showHighlight,mouseenter:e.showHighlight,mouseout:e.hideHighlight}},[n(\"path\",{attrs:{fill:\"#333\",d:\"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z\"}})])]),e._v(\" \"),n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.highlight,expression:\"highlight\"}],staticClass:\"vc-chrome-toggle-icon-highlight\"})])])])])},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o},function(e,t,n){\"use strict\";function r(e){c||n(144)}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(59),o=n.n(i);for(var a in i)\"default\"!==a&&function(e){n.d(t,e,function(){return i[e]})}(a);var s=n(146),c=!1,l=n(2),u=r,f=l(o.a,s.a,!1,u,null,null);f.options.__file=\"src/components/Twitter.vue\",t.default=f.exports},function(e,t,n){var r=n(145);\"string\"==typeof r&&(r=[[e.i,r,\"\"]]),r.locals&&(e.exports=r.locals);n(1)(\"669a48a5\",r,!1,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,\"\\n.vc-twitter {\\n background: #fff;\\n border: 0 solid rgba(0,0,0,0.25);\\n box-shadow: 0 1px 4px rgba(0,0,0,0.25);\\n border-radius: 4px;\\n position: relative;\\n}\\n.vc-twitter-triangle {\\n width: 0px;\\n height: 0px;\\n border-style: solid;\\n border-width: 0 9px 10px 9px;\\n border-color: transparent transparent #fff transparent;\\n position: absolute;\\n}\\n.vc-twitter-triangle-shadow {\\n width: 0px;\\n height: 0px;\\n border-style: solid;\\n border-width: 0 9px 10px 9px;\\n border-color: transparent transparent rgba(0, 0, 0, .1) transparent;\\n position: absolute;\\n}\\n.vc-twitter-body {\\n padding: 15px 9px 9px 15px;\\n}\\n.vc-twitter .vc-editable-input {\\n position: relative;\\n}\\n.vc-twitter .vc-editable-input input {\\n width: 100px;\\n font-size: 14px;\\n color: #666;\\n border: 0px;\\n outline: none;\\n height: 28px;\\n box-shadow: inset 0 0 0 1px #F0F0F0;\\n box-sizing: content-box;\\n border-radius: 0 4px 4px 0;\\n float: left;\\n padding: 1px;\\n padding-left: 8px;\\n}\\n.vc-twitter .vc-editable-input span {\\n display: none;\\n}\\n.vc-twitter-hash {\\n background: #F0F0F0;\\n height: 30px;\\n width: 30px;\\n border-radius: 4px 0 0 4px;\\n float: left;\\n color: #98A1A4;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.vc-twitter-swatch {\\n width: 30px;\\n height: 30px;\\n float: left;\\n border-radius: 4px;\\n margin: 0 6px 6px 0;\\n cursor: pointer;\\n position: relative;\\n outline: none;\\n}\\n.vc-twitter-clear {\\n clear: both;\\n}\\n.vc-twitter-hide-triangle .vc-twitter-triangle {\\n display: none;\\n}\\n.vc-twitter-hide-triangle .vc-twitter-triangle-shadow {\\n display: none;\\n}\\n.vc-twitter-top-left-triangle .vc-twitter-triangle{\\n top: -10px;\\n left: 12px;\\n}\\n.vc-twitter-top-left-triangle .vc-twitter-triangle-shadow{\\n top: -11px;\\n left: 12px;\\n}\\n.vc-twitter-top-right-triangle .vc-twitter-triangle{\\n top: -10px;\\n right: 12px;\\n}\\n.vc-twitter-top-right-triangle .vc-twitter-triangle-shadow{\\n top: -11px;\\n right: 12px;\\n}\\n\",\"\"])},function(e,t,n){\"use strict\";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{staticClass:\"vc-twitter\",class:{\"vc-twitter-hide-triangle \":\"hide\"===e.triangle,\"vc-twitter-top-left-triangle \":\"top-left\"===e.triangle,\"vc-twitter-top-right-triangle \":\"top-right\"===e.triangle},style:{width:\"number\"==typeof e.width?e.width+\"px\":e.width}},[n(\"div\",{staticClass:\"vc-twitter-triangle-shadow\"}),e._v(\" \"),n(\"div\",{staticClass:\"vc-twitter-triangle\"}),e._v(\" \"),n(\"div\",{staticClass:\"vc-twitter-body\"},[e._l(e.defaultColors,function(t,r){return n(\"span\",{key:r,staticClass:\"vc-twitter-swatch\",style:{background:t,boxShadow:\"0 0 4px \"+(e.equal(t)?t:\"transparent\")},on:{click:function(n){return e.handlerClick(t)}}})}),e._v(\" \"),n(\"div\",{staticClass:\"vc-twitter-hash\"},[e._v(\"#\")]),e._v(\" \"),n(\"editable-input\",{attrs:{label:\"#\",value:e.hex},on:{change:e.inputChange}}),e._v(\" \"),n(\"div\",{staticClass:\"vc-twitter-clear\"})],2)])},i=[];r._withStripped=!0;var o={render:r,staticRenderFns:i};t.a=o}])});","import '../assets/NcColorPicker-BayJGD4p.css';\nimport NcButton from \"../Components/NcButton.mjs\";\nimport { N as NcPopover } from \"./NcPopover-kYsewfff.mjs\";\nimport { r as register, k as t1, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport { d as defaultPalette } from \"./GenColors-B49R8TGp.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { A as ArrowLeft } from \"./ArrowLeft-DuT2LZOm.mjs\";\nimport { C as Check } from \"./Check-BkThHPH7.mjs\";\nimport { D as DotsHorizontal } from \"./DotsHorizontal-C6LNsw4N.mjs\";\nimport { Chrome } from \"vue-color\";\nimport { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t1);\nconst HEX_REGEX = /^#([a-f0-9]{3}|[a-f0-9]{6})$/i;\nconst _sfc_main = {\n name: \"NcColorPicker\",\n components: {\n ArrowLeft,\n Check,\n Chrome,\n DotsHorizontal,\n NcButton,\n NcPopover\n },\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n },\n props: {\n /**\n * Removed in v9 - use `modelValue` (`v-model`) instead\n * @deprecated\n */\n value: {\n type: String,\n default: void 0\n },\n /**\n * A HEX color that represents the initial value of the picker\n */\n modelValue: {\n type: String,\n default: void 0\n },\n /**\n * Set to `true` to enable advanced fields including HEX, RGB, and HSL\n */\n advancedFields: {\n type: Boolean,\n default: false\n },\n /**\n * Limit selectable colors to only the provided palette\n */\n paletteOnly: {\n type: Boolean,\n default: false\n },\n /**\n * Provide a custom array of colors to show.\n * Can be either an array of string hexadecimal colors,\n * or an array of object with a `color` property with hexadecimal color string,\n * and a `name` property for accessibility.\n *\n * @type {string[] | {color: string, name: string}[]}\n */\n palette: {\n type: Array,\n default: () => [...defaultPalette],\n validator: (palette) => palette.every(\n (item) => typeof item === \"string\" && HEX_REGEX.test(item) || typeof item === \"object\" && item.color && HEX_REGEX.test(item.color)\n )\n },\n /**\n * Selector for the popover container\n */\n container: {\n type: [String, Object, Element, Boolean],\n default: \"body\"\n }\n },\n emits: [\n \"submit\",\n \"close\",\n \"update:open\",\n /**\n * Removed in v9 - use `update:modelValue` (`v-model`) instead\n * @deprecated\n */\n \"update:value\",\n /**\n * Emits a hexadecimal string e.g. '#ffffff'\n */\n \"update:modelValue\",\n /** Same as update:modelValue for Vue 2 compatibility */\n \"update:model-value\",\n \"input\"\n ],\n setup() {\n const model = useModelMigration(\"value\", \"update:value\", true);\n return {\n model\n };\n },\n data() {\n return {\n currentColor: this.model,\n advanced: false,\n ariaBack: t(\"Back\"),\n ariaMore: t(\"More options\")\n };\n },\n computed: {\n normalizedPalette() {\n return this.palette.map((item) => ({\n color: typeof item === \"object\" ? item.color : item,\n name: typeof item === \"object\" && item.name ? item.name : t(\"A color with a HEX value {hex}\", { hex: item.color })\n }));\n },\n uid() {\n return GenRandomId();\n },\n contrastColor() {\n const black = \"#000000\";\n const white = \"#FFFFFF\";\n return this.calculateLuma(this.currentColor) > 0.5 ? black : white;\n }\n },\n watch: {\n model(color) {\n this.currentColor = color;\n }\n },\n methods: {\n t,\n /**\n * Submit a picked colour and close picker\n * @param {Function} hideCallback callback to close popover\n */\n handleConfirm(hideCallback) {\n this.$emit(\"submit\", this.currentColor);\n hideCallback();\n this.advanced = false;\n },\n handleClose() {\n this.$emit(\"close\");\n this.$emit(\"update:open\", false);\n },\n /**\n * Inner navigations\n */\n handleBack() {\n this.advanced = false;\n },\n handleMoreSettings() {\n this.advanced = true;\n },\n /**\n * Pick a colour\n *\n * @param {string} color the picked color\n */\n pickColor(color) {\n if (typeof color !== \"string\") {\n color = this.currentColor.hex;\n }\n this.currentColor = color;\n this.model = color;\n this.$emit(\"input\", color);\n },\n /**\n * Calculate luminance of provided hex color\n *\n * @param {string} color the hex color\n */\n calculateLuma(color) {\n const [red, green, blue] = this.hexToRGB(color);\n return (0.2126 * red + 0.7152 * green + 0.0722 * blue) / 255;\n },\n /**\n * Convert hex color to RGB\n *\n * @param {string} hex the hex color\n */\n hexToRGB(hex) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : null;\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"NcPopover\", _vm._g(_vm._b({ attrs: { \"popup-role\": \"dialog\", \"container\": _vm.container }, on: { \"apply-hide\": _vm.handleClose }, scopedSlots: _vm._u([{ key: \"trigger\", fn: function(slotProps) {\n return [_vm._t(\"default\", null, null, slotProps)];\n } }, { key: \"default\", fn: function(slotProps) {\n return [_c(\"div\", { staticClass: \"color-picker\", class: { \"color-picker--advanced-fields\": _vm.advanced && _vm.advancedFields }, attrs: { \"role\": \"dialog\", \"aria-modal\": \"true\", \"aria-label\": _vm.t(\"Color picker\") } }, [_c(\"Transition\", { attrs: { \"name\": \"slide\", \"mode\": \"out-in\" } }, [!_vm.advanced ? _c(\"div\", { staticClass: \"color-picker__simple\" }, _vm._l(_vm.normalizedPalette, function({ color, name }, index) {\n return _c(\"label\", { key: index, staticClass: \"color-picker__simple-color-circle\", class: { \"color-picker__simple-color-circle--active\": color === _vm.currentColor }, style: { backgroundColor: color } }, [color === _vm.currentColor ? _c(\"Check\", { attrs: { \"size\": 20, \"fill-color\": _vm.contrastColor } }) : _vm._e(), _c(\"input\", { staticClass: \"hidden-visually\", attrs: { \"type\": \"radio\", \"aria-label\": name, \"name\": `color-picker-${_vm.uid}` }, domProps: { \"checked\": color === _vm.currentColor }, on: { \"click\": function($event) {\n return _vm.pickColor(color);\n } } })], 1);\n }), 0) : _c(\"Chrome\", { staticClass: \"color-picker__advanced\", attrs: { \"disable-alpha\": true, \"disable-fields\": !_vm.advancedFields }, on: { \"input\": _vm.pickColor }, model: { value: _vm.currentColor, callback: function($$v) {\n _vm.currentColor = $$v;\n }, expression: \"currentColor\" } })], 1), !_vm.paletteOnly ? _c(\"div\", { staticClass: \"color-picker__navigation\" }, [_vm.advanced ? _c(\"NcButton\", { attrs: { \"aria-label\": _vm.ariaBack, \"variant\": \"tertiary\" }, on: { \"click\": _vm.handleBack }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"ArrowLeft\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, true) }) : _c(\"NcButton\", { attrs: { \"aria-label\": _vm.ariaMore, \"variant\": \"tertiary\" }, on: { \"click\": _vm.handleMoreSettings }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"DotsHorizontal\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, true) }), _c(\"NcButton\", { attrs: { \"variant\": \"primary\" }, on: { \"click\": function($event) {\n return _vm.handleConfirm(slotProps.hide);\n } } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Choose\")) + \" \")])], 1) : _vm._e()], 1)];\n } }], null, true) }, \"NcPopover\", _vm.$attrs, false), _vm.$listeners));\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"bd25ade3\"\n);\nconst NcColorPicker = __component__.exports;\nexport {\n NcColorPicker as N\n};\n//# sourceMappingURL=NcColorPicker-D7aj2f61.mjs.map\n","import '../assets/NcDashboardWidget-BSTvIgiJ.css';\nimport { N as NcAvatar } from \"./NcAvatar-YSp2ORHc.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./NcDashboardWidgetItem-BRFj1-Ir.mjs\";\nimport NcEmptyContent from \"../Components/NcEmptyContent.mjs\";\nimport { C as Check } from \"./Check-BkThHPH7.mjs\";\nimport { r as register, m as t32, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t32);\nconst _sfc_main = {\n name: \"NcDashboardWidget\",\n components: {\n NcAvatar,\n NcDashboardWidgetItem,\n NcEmptyContent,\n Check\n },\n props: {\n /**\n * An array containing the items to show (specific structure must be respected,\n * except if you override item rendering in the default slot).\n */\n items: {\n type: Array,\n default: () => {\n return [];\n }\n },\n /**\n * If this is set, a \"show more\" text is displayed on the widget's bottom.\n * It's a link pointing to this URL.\n */\n showMoreUrl: {\n type: String,\n default: \"\"\n },\n /**\n * The text of show more button.\n *\n * Expected to be in the form \"More {itemName} …\"\n */\n showMoreLabel: {\n type: String,\n default: t(\"More items …\")\n },\n /**\n * A boolean to put the widget in a loading state.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * An object containing context menu entries that will be displayed for each item.\n */\n itemMenu: {\n type: Object,\n default: () => {\n return {};\n }\n },\n /**\n * Whether both the items and the empty content message are shown.\n * Usefull for e.g. showing \"No mentions\" and a list of elements.\n */\n showItemsAndEmptyContent: {\n type: Boolean,\n default: false\n },\n /**\n * The text to show in the empty content area.\n */\n emptyContentMessage: {\n type: String,\n default: \"\"\n },\n /**\n * The text to show in the half empty content area.\n */\n halfEmptyContentMessage: {\n type: String,\n default: \"\"\n }\n },\n computed: {\n // forward menu events to my parent\n handlers() {\n const h = {};\n for (const evName in this.itemMenu) {\n h[evName] = (it) => {\n this.$emit(evName, it);\n };\n }\n return h;\n },\n displayedItems() {\n const nbItems = this.showMoreUrl && this.items.length >= this.maxItemNumber ? this.maxItemNumber - 1 : this.maxItemNumber;\n return this.items.slice(0, nbItems);\n },\n showHalfEmptyContentArea() {\n return this.showItemsAndEmptyContent && this.halfEmptyContentString && this.items.length !== 0;\n },\n halfEmptyContentString() {\n return this.halfEmptyContentMessage || this.emptyContentMessage;\n },\n maxItemNumber() {\n return this.showItemsAndEmptyContent ? 5 : 7;\n },\n showMore() {\n return this.showMoreUrl && this.items.length >= this.maxItemNumber;\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"dashboard-widget\" }, [_vm.showHalfEmptyContentArea ? _c(\"NcEmptyContent\", { staticClass: \"half-screen\", attrs: { \"description\": _vm.halfEmptyContentString }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm._t(\"halfEmptyContentIcon\", function() {\n return [_c(\"Check\")];\n })];\n }, proxy: true }], null, true) }) : _vm._e(), _c(\"ul\", _vm._l(_vm.displayedItems, function(item) {\n return _c(\"li\", { key: item.id }, [_vm._t(\"default\", function() {\n return [_c(\"NcDashboardWidgetItem\", _vm._g(_vm._b({ attrs: { \"item-menu\": _vm.itemMenu } }, \"NcDashboardWidgetItem\", item, false), _vm.handlers))];\n }, { \"item\": item })], 2);\n }), 0), _vm.loading ? _c(\"div\", _vm._l(7, function(i) {\n return _c(\"div\", { key: i, staticClass: \"item-list__entry\" }, [_c(\"NcAvatar\", { staticClass: \"item-avatar\", attrs: { \"size\": 44 } }), _vm._m(0, true)], 1);\n }), 0) : _vm.items.length === 0 ? _vm._t(\"empty-content\", function() {\n return [_vm.emptyContentMessage ? _c(\"NcEmptyContent\", { attrs: { \"description\": _vm.emptyContentMessage }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm._t(\"emptyContentIcon\")];\n }, proxy: true }], null, true) }) : _vm._e()];\n }) : _vm.showMore ? _c(\"a\", { staticClass: \"more\", attrs: { \"href\": _vm.showMoreUrl, \"target\": \"_blank\", \"tabindex\": \"0\" } }, [_vm._v(\" \" + _vm._s(_vm.showMoreLabel) + \" \")]) : _vm._e()], 2);\n};\nvar _sfc_staticRenderFns = [function() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"item__details\" }, [_c(\"h3\", [_vm._v(\" \")]), _c(\"p\", { staticClass: \"message\" }, [_vm._v(\" \")])]);\n}];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"53796b97\"\n);\nconst NcDashboardWidget = __component__.exports;\nexport {\n NcDashboardWidget as N\n};\n//# sourceMappingURL=NcDashboardWidget-eStjL-WD.mjs.map\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={537: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 X},Emoji:function(){return J},EmojiData:function(){return N},EmojiIndex:function(){return R},EmojiView:function(){return $},Picker:function(){return se},Preview:function(){return G},Search:function(){return Q},Skins:function(){return Z},frequently:function(){return w},sanitize:function(){return D},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\"],g={};function y(){p=!0,f=c.get(\"frequently\")}var w={add:function(e){p||y();var t=e.id;f||(f=g),f[t]||(f[t]=0),f[t]+=1,c.set(\"last\",t),c.set(\"frequently\",f)},get:function(e){if(p||y(),!f){g={};for(var t=[],i=Math.min(e,j.length),n=0;n<i;n++)g[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 b(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 C=b({props:{i18n:{type:Object,required:!0},color:{type:String},categories:{type:Array,required:!0},activeCategory:{type:Object,default:function(){return{}}}},emits:[\"click\"],created:function(){this.svgs=_}},(function(){var e=this,t=e._self._c;return t(\"div\",{staticClass:\"emoji-mart-anchors\",attrs:{role:\"tablist\"}},e._l(e.categories,(function(i){return t(\"button\",{key:i.id,class:{\"emoji-mart-anchor\":!0,\"emoji-mart-anchor-selected\":i.id==e.activeCategory.id},style:{color:i.id==e.activeCategory.id?e.color:\"\"},attrs:{role:\"tab\",type:\"button\",\"aria-label\":i.name,\"aria-selected\":i.id==e.activeCategory.id,\"data-title\":e.i18n.categories[i.id]},on:{click:function(t){return e.$emit(\"click\",i)}}},[t(\"div\",{attrs:{\"aria-hidden\":\"true\"},domProps:{innerHTML:e._s(e.svgs[i.id])}}),e._v(\" \"),t(\"span\",{staticClass:\"emoji-mart-anchor-bar\",style:{backgroundColor:e.color},attrs:{\"aria-hidden\":\"true\"}})])})),0)}),[],!1,null,null,null),k=C.exports;function E(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function S(e){var t=function(e,t){if(\"object\"!=u(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,\"string\");if(\"object\"!=u(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==u(t)?t:t+\"\"}function x(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,S(n.key),n)}}function O(e,t,i){return t&&x(e.prototype,t),i&&x(e,i),Object.defineProperty(e,\"prototype\",{writable:!1}),e}var P=String.fromCodePoint||function(){var e,t,i=[],n=-1,r=arguments.length;if(!r)return\"\";for(var o=\"\";++n<r;){var s=Number(arguments[n]);if(!isFinite(s)||s<0||s>1114111||Math.floor(s)!=s)throw RangeError(\"Invalid code point: \"+s);s<=65535?i.push(s):(e=55296+((s-=65536)>>10),t=s%1024+56320,i.push(e,t)),(n+1===r||i.length>16384)&&(o+=String.fromCharCode.apply(null,i),i.length=0)}return o};function A(e){var t=e.split(\"-\").map((function(e){return\"0x\".concat(e)}));return P.apply(null,t)}function M(e){return e.reduce((function(e,t){return-1===e.indexOf(t)&&e.push(t),e}),[])}function I(e,t){var i=M(e),n=M(t);return i.filter((function(e){return n.indexOf(e)>=0}))}function F(e,t){var i={};for(var n in e){var r=e[n],o=r;Object.prototype.hasOwnProperty.call(t,n)&&(o=t[n]),\"object\"===u(o)&&(o=F(r,o)),i[n]=o}return i}function z(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}}}}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 T=/^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/,q=[\"1F3FA\",\"1F3FB\",\"1F3FC\",\"1F3FD\",\"1F3FE\",\"1F3FF\"],R=function(){return O((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)}),[{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=z(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=z(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(T);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=function(){var i=e[s];if(r++,n[i]||(n[i]={}),!(n=n[i]).results){var o={};for(var a in n.results=[],n.emojis={},t){var c=t[a],u=c._data.search,l=e.substr(0,r),h=u.indexOf(l);if(-1!=h){var m=h+1;l==a&&(m=0),n.results.push(c),n.emojis[a]=c,o[a]=m}}n.results.sort((function(e,t){return o[e.id]-o[t.id]}))}t=n.emojis},s=0;s<e.length;s++)o();return n.results})).filter((function(e){return e}));var o=null;return(o=n.length>1?I.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 N(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 N(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)}}])}(),N=function(){return O((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=[],q){var n=q[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=D(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)}),[{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(\", \")}}])}(),$=function(){return O((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)}),[{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\"}}])}();function D(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:A(s)})}function B(e,t,i){return(t=S(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var H={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\"}},U={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 V(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 W(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?V(Object(i),!0).forEach((function(t){B(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):V(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var J=b({props:W(W({},H),{},{data:{type:Object,required:!0}}),emits:[\"click\",\"mouseenter\",\"mouseleave\"],computed:{view:function(){return new $(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._self._c;return e.view.canRender?t(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}},[t(\"span\",{class:e.view.cssClass,style:e.view.cssStyle},[e._v(e._s(e.view.content))])]):e._e()}),[],!1,null,null,null).exports,X=b({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 $(t,e.emojiProps.skin,e.emojiProps.set,e.emojiProps.native,e.emojiProps.fallback,e.emojiProps.emojiTooltip,e.emojiProps.emojiSize)}}))}},components:{Emoji:J}},(function(){var e=this,t=e._self._c;return e.isVisible&&(e.isSearch||e.hasResults)?t(\"section\",{class:{\"emoji-mart-category\":!0,\"emoji-mart-no-results\":!e.hasResults},attrs:{\"aria-label\":e.i18n.categories[e.id]}},[t(\"div\",{staticClass:\"emoji-mart-category-label\"},[t(\"h3\",{staticClass:\"emoji-mart-category-label\"},[e._v(e._s(e.i18n.categories[e.id]))])]),e._v(\" \"),e._l(e.emojiObjects,(function(i){var n=i.emojiObject,r=i.emojiView;return[r.canRender?t(\"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())}}},[t(\"span\",{class:r.cssClass,style:r.cssStyle},[e._v(e._s(r.content))])]):e._e()]})),e._v(\" \"),e.hasResults?e._e():t(\"div\",[t(\"emoji\",{attrs:{data:e.data,emoji:\"sleuth_or_spy\",native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}}),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-no-results-label\"},[e._v(e._s(e.i18n.notfound))])],1)],2):e._e()}),[],!1,null,null,null).exports,Z=b({props:{skin:{type:Number,required:!0}},emits:[\"change\"],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._self._c;return t(\"div\",{class:{\"emoji-mart-skin-swatches\":!0,\"emoji-mart-skin-swatches-opened\":e.opened}},e._l(6,(function(i){return t(\"span\",{key:i,class:{\"emoji-mart-skin-swatch\":!0,\"emoji-mart-skin-swatch-selected\":e.skin==i}},[t(\"span\",{class:\"emoji-mart-skin emoji-mart-skin-tone-\"+i,on:{click:function(t){return e.onClick(i)}}})])})),0)}),[],!1,null,null,null).exports,G=b({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:J,Skins:Z}},(function(){var e=this,t=e._self._c;return t(\"div\",{staticClass:\"emoji-mart-preview\"},[e.emoji?[t(\"div\",{staticClass:\"emoji-mart-preview-emoji\"},[t(\"emoji\",{attrs:{data:e.data,emoji:e.emoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-data\"},[t(\"div\",{staticClass:\"emoji-mart-preview-name\"},[e._v(e._s(e.emoji.name))]),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-shortnames\"},e._l(e.emojiShortNames,(function(i){return t(\"span\",{key:i,staticClass:\"emoji-mart-preview-shortname\"},[e._v(\":\"+e._s(i)+\":\")])})),0),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-emoticons\"},e._l(e.emojiEmoticons,(function(i){return t(\"span\",{key:i,staticClass:\"emoji-mart-preview-emoticon\"},[e._v(e._s(i))])})),0)])]:[t(\"div\",{staticClass:\"emoji-mart-preview-emoji\"},[t(\"emoji\",{attrs:{data:e.data,emoji:e.idleEmoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-data\"},[t(\"span\",{staticClass:\"emoji-mart-title-label\"},[e._v(e._s(e.title))])]),e._v(\" \"),e.showSkinTones?t(\"div\",{staticClass:\"emoji-mart-preview-skins\"},[t(\"skins\",{attrs:{skin:e.skinProps.skin},on:{change:function(t){return e.onSkinChange(t)}}})],1):e._e()]],2)}),[],!1,null,null,null).exports,K=b({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}},emits:[\"search\",\"enter\",\"arrowUp\",\"arrowDown\",\"arrowRight\",\"arrowLeft\"],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._self._c;return t(\"div\",{staticClass:\"emoji-mart-search\"},[t(\"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(\" \"),t(\"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),Q=K.exports;function Y(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(537);var ee=function(){return O((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 Y(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 Y(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)?Y(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}),[{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}}])}();function te(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 ie(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?te(Object(i),!0).forEach((function(t){B(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):te(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var ne={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\"}},re={props:ie(ie({},U),{},{data:{type:Object,required:!0}}),emits:[\"select\",\"skin-change\"],data:function(){return{activeSkin:this.skin||c.get(\"skin\")||this.defaultSkin,view:new ee(this)}},computed:{customStyles:function(){return ie({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(F(ne,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()}},isSearching:function(){return null!=this.view.searchEmojis}},watch:{skin:function(){this.onSkinChange(this.skin)}},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:X,Preview:G,Search:Q}},oe=b(re,(function(){var e=this,t=e._self._c;return t(\"section\",{staticClass:\"emoji-mart emoji-mart-static\",style:e.customStyles},[e.showCategories?t(\"div\",{staticClass:\"emoji-mart-bar emoji-mart-bar-anchors\"},[t(\"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?t(\"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(\" \"),t(\"div\",{ref:\"scroll\",staticClass:\"emoji-mart-scroll\",attrs:{role:\"tabpanel\"},on:{scroll:e.onScroll}},[t(\"div\",{ref:\"scrollContent\",attrs:{id:\"emoji-mart-list\",role:\"listbox\",\"aria-expanded\":\"true\"}},[e._t(\"customCategory\"),e._v(\" \"),e._l(e.view.filteredCategories,(function(i,n){return t(\"category\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.infiniteScroll||i==e.view.activeCategory||e.isSearching,expression:\"infiniteScroll || category == view.activeCategory || isSearching\"}],key:i.id,ref:\"categories_\"+n,refInFor:!0,attrs:{data:e.data,i18n:e.mergedI18n,id:i.id,name:i.name,emojis:i.emojis,\"emoji-props\":e.emojiProps}})}))],2)]),e._v(\" \"),e._t(\"previewTemplate\",(function(){return[e.showPreview?t(\"div\",{staticClass:\"emoji-mart-bar emoji-mart-bar-preview\"},[t(\"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),se=oe.exports}(),n}()}));","import { getBuilder } from \"@nextcloud/browser-storage\";\nimport { EmojiIndex, frequently } from \"emoji-mart-vue-fast\";\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nconst storage = getBuilder(\"nextcloud-vue\").persist(true).build();\nlet emojiIndex;\nvar EmojiSkinTone = /* @__PURE__ */ ((EmojiSkinTone2) => {\n EmojiSkinTone2[EmojiSkinTone2[\"Neutral\"] = 1] = \"Neutral\";\n EmojiSkinTone2[EmojiSkinTone2[\"Light\"] = 2] = \"Light\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumLight\"] = 3] = \"MediumLight\";\n EmojiSkinTone2[EmojiSkinTone2[\"Medium\"] = 4] = \"Medium\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumDark\"] = 5] = \"MediumDark\";\n EmojiSkinTone2[EmojiSkinTone2[\"Dark\"] = 6] = \"Dark\";\n return EmojiSkinTone2;\n})(EmojiSkinTone || {});\nfunction emojiSearch(query, maxResults = 10) {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n const currentSkinTone = getCurrentSkinTone();\n let results;\n if (query) {\n results = emojiIndex.search(`:${query}`, maxResults);\n if (results.length < maxResults) {\n results = results.concat(emojiIndex.search(query, maxResults - results.length));\n }\n } else {\n results = frequently.get(maxResults).map((id) => emojiIndex.emoji(id)) || [];\n }\n return results.map((emoji) => emoji.getSkin(currentSkinTone));\n}\nfunction emojiAddRecent(emojiData) {\n frequently.add(emojiData);\n}\nfunction getCurrentSkinTone() {\n const skinTone = Number.parseInt(storage.getItem(\"NcEmojiPicker::currentSkinTone\") ?? \"1\");\n return Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n}\nfunction setCurrentSkinTone(skinTone) {\n skinTone = Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n storage.setItem(\"NcEmojiPicker::currentSkinTone\", skinTone.toString());\n}\nexport {\n EmojiSkinTone as E,\n emojiAddRecent as a,\n emojiSearch as e,\n getCurrentSkinTone as g,\n setCurrentSkinTone as s\n};\n//# sourceMappingURL=emoji-BY_D0V5K.mjs.map\n","import '../assets/NcEmojiPicker-Ca6U46T8.css';\nimport { Picker, Emoji, EmojiIndex } from \"emoji-mart-vue-fast\";\nimport { isFocusable } from \"tabbable\";\nimport { r as register, B as t40, C as t34, q as t14, D as t5, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport { s as setCurrentSkinTone, g as getCurrentSkinTone } from \"./emoji-BY_D0V5K.mjs\";\nimport { u as useTrapStackControl } from \"./useTrapStackControl-b3A_383w.mjs\";\nimport { C as Color } from \"./GenColors-B49R8TGp.mjs\";\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport NcButton from \"../Components/NcButton.mjs\";\nimport { N as NcColorPicker } from \"./NcColorPicker-D7aj2f61.mjs\";\nimport { N as NcPopover } from \"./NcPopover-kYsewfff.mjs\";\nimport { N as NcTextField } from \"./NcTextField-o_8gWurX.mjs\";\nregister(t5, t14, t34, t40);\nconst _sfc_main$1 = {\n name: \"CircleIcon\",\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};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon circle-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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,2Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst IconCircle = __component__$1.exports;\nlet emojiIndex;\nconst i18n = {\n search: t(\"Search emoji\"),\n notfound: t(\"No emoji found\"),\n categories: {\n search: t(\"Search results\"),\n recent: t(\"Frequently used\"),\n smileys: t(\"Smileys & Emotion\"),\n people: t(\"People & Body\"),\n nature: t(\"Animals & Nature\"),\n foods: t(\"Food & Drink\"),\n activity: t(\"Activities\"),\n places: t(\"Travel & Places\"),\n objects: t(\"Objects\"),\n symbols: t(\"Symbols\"),\n flags: t(\"Flags\"),\n custom: t(\"Custom\")\n }\n};\nconst skinTonePalette = [\n new Color(255, 222, 52, t(\"Neutral skin color\")),\n new Color(228, 205, 166, t(\"Light skin tone\")),\n new Color(250, 221, 192, t(\"Medium light skin tone\")),\n new Color(174, 129, 87, t(\"Medium skin tone\")),\n new Color(158, 113, 88, t(\"Medium dark skin tone\")),\n new Color(96, 79, 69, t(\"Dark skin tone\"))\n];\nconst _sfc_main = {\n name: \"NcEmojiPicker\",\n components: {\n Emoji,\n IconCircle,\n NcButton,\n NcColorPicker,\n NcPopover,\n NcTextField,\n Picker\n },\n props: {\n /**\n * The emoji-set\n */\n activeSet: {\n type: String,\n default: \"native\"\n },\n /**\n * Show preview section when hovering emoji\n */\n showPreview: {\n type: Boolean,\n default: false\n },\n /**\n * Allow unselecting the selected emoji\n */\n allowUnselect: {\n type: Boolean,\n default: false\n },\n /**\n * Selected emoji to allow unselecting\n */\n selectedEmoji: {\n type: String,\n default: \"\"\n },\n /**\n * The fallback emoji in the preview section\n */\n previewFallbackEmoji: {\n type: String,\n default: \"grinning\"\n },\n /**\n * The fallback text in the preview section\n */\n previewFallbackName: {\n type: String,\n default: t(\"Pick an emoji\")\n },\n /**\n * Whether to close the emoji picker after picking one\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Selector for the popover container\n */\n container: {\n type: [String, Object, Element, Boolean],\n default: \"body\"\n }\n },\n emits: [\n \"select\",\n \"select-data\",\n \"unselect\"\n ],\n setup() {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n return {\n // Non-reactive constants\n emojiIndex,\n skinTonePalette,\n i18n\n };\n },\n data() {\n const currentSkinTone = getCurrentSkinTone();\n return {\n /**\n * The current active color from the skin tone palette\n */\n currentColor: skinTonePalette[currentSkinTone - 1],\n /**\n * The current active skin tone\n * @type {1|2|3|4|5|6}\n */\n currentSkinTone,\n search: \"\",\n open: false\n };\n },\n computed: {\n native() {\n return this.activeSet === \"native\";\n }\n },\n created() {\n useTrapStackControl(() => this.open);\n },\n methods: {\n t,\n clearSearch() {\n this.search = \"\";\n this.$refs.search.focus();\n },\n /**\n * Update the current skin tone by the result of the color picker\n * @param {string} color Color set\n */\n onChangeSkinTone(color) {\n const index = this.skinTonePalette.findIndex((tone) => tone.color.toLowerCase() === color.toLowerCase());\n if (index > -1) {\n this.currentSkinTone = index + 1;\n this.currentColor = this.skinTonePalette[index];\n setCurrentSkinTone(this.currentSkinTone);\n }\n },\n select(emojiObject) {\n this.$emit(\"select\", emojiObject.native);\n this.$emit(\"select-data\", emojiObject);\n if (this.closeOnSelect) {\n this.open = false;\n }\n },\n unselect() {\n this.$emit(\"unselect\");\n },\n afterShow() {\n this.$refs.search.focus();\n },\n afterHide() {\n if (!document.activeElement || this.$refs.picker.$el.contains(document.activeElement) || !isFocusable(document.activeElement)) {\n this.$refs.popover.$el.querySelector('button, [role=\"button\"]')?.focus();\n }\n },\n /**\n * Manually handle Tab navigation skipping emoji buttons.\n * Navigation over emojis is handled by Arrow keys.\n * @param {KeyboardEvent} event - Keyboard event\n */\n handleTabNavigationSkippingEmojis(event) {\n const current = event.target;\n const focusable = Array.from(this.$refs.picker.$el.querySelectorAll(\"button:not(.emoji-mart-emoji), input\"));\n if (!event.shiftKey) {\n const nextNode = focusable.find((node) => current.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_FOLLOWING) || focusable[0];\n nextNode.focus();\n } else {\n const prevNode = focusable.findLast((node) => current.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_PRECEDING) || focusable.at(-1);\n prevNode.focus();\n }\n },\n /**\n * Handle arrow navigation via <Picker>'s handlers with scroll bug fix\n * @param {'onArrowLeft' | 'onArrowRight' | 'onArrowDown' | 'onArrowUp'} originalHandlerName - Picker's arrow keydown handler name\n * @param {KeyboardEvent} event - Keyboard event\n */\n async callPickerArrowHandlerWithScrollFix(originalHandlerName, event) {\n this.$refs.picker[originalHandlerName](event);\n await this.$nextTick();\n const selectedEmoji = this.$refs.picker.$el.querySelector(\".emoji-mart-emoji-selected\");\n selectedEmoji?.scrollIntoView({\n block: \"center\",\n inline: \"center\"\n });\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"NcPopover\", _vm._g(_vm._b({ ref: \"popover\", attrs: {\n \"shown\": _vm.open,\n \"container\": _vm.container,\n \"popup-role\": \"dialog\",\n \"focus-trap\": false\n /* Handled manually to remove emoji buttons from TAB sequence */\n }, on: { \"update:shown\": function($event) {\n _vm.open = $event;\n }, \"after-show\": _vm.afterShow, \"after-hide\": _vm.afterHide }, scopedSlots: _vm._u([{ key: \"trigger\", fn: function(slotProps) {\n return [_vm._t(\"default\", null, null, slotProps)];\n } }], null, true) }, \"NcPopover\", _vm.$attrs, false), _vm.$listeners), [_c(\"Picker\", _vm._b({ ref: \"picker\", staticClass: \"nc-emoji-picker\", attrs: { \"color\": \"var(--color-primary-element)\", \"data\": _vm.emojiIndex, \"emoji\": _vm.previewFallbackEmoji, \"i18n\": _vm.i18n, \"native\": _vm.native, \"emoji-size\": 20, \"per-line\": 8, \"picker-styles\": { width: \"320px\" }, \"show-preview\": _vm.showPreview, \"skin\": _vm.currentSkinTone, \"show-skin-tones\": false, \"title\": _vm.previewFallbackName, \"role\": \"dialog\", \"aria-modal\": \"true\", \"aria-label\": _vm.t(\"Emoji picker\") }, on: { \"select\": _vm.select }, nativeOn: { \"keydown\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"tab\", 9, $event.key, \"Tab\")) return null;\n $event.preventDefault();\n return _vm.handleTabNavigationSkippingEmojis.apply(null, arguments);\n } }, scopedSlots: _vm._u([{ key: \"searchTemplate\", fn: function({ onSearch }) {\n return [_c(\"div\", { staticClass: \"search__wrapper\" }, [_c(\"NcTextField\", { ref: \"search\", staticClass: \"search\", attrs: { \"value\": _vm.search, \"label\": _vm.t(\"Search\"), \"label-visible\": true, \"placeholder\": _vm.i18n.search, \"trailing-button-icon\": \"close\", \"trailing-button-label\": _vm.t(\"Clear search\"), \"show-trailing-button\": _vm.search !== \"\" }, on: { \"update:value\": [function($event) {\n _vm.search = $event;\n }, function($event) {\n return onSearch(_vm.search);\n }], \"keydown\": [function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"left\", 37, $event.key, [\"Left\", \"ArrowLeft\"])) return null;\n if (\"button\" in $event && $event.button !== 0) return null;\n return _vm.callPickerArrowHandlerWithScrollFix(\"onArrowLeft\", $event);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"right\", 39, $event.key, [\"Right\", \"ArrowRight\"])) return null;\n if (\"button\" in $event && $event.button !== 2) return null;\n return _vm.callPickerArrowHandlerWithScrollFix(\"onArrowRight\", $event);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"down\", 40, $event.key, [\"Down\", \"ArrowDown\"])) return null;\n return _vm.callPickerArrowHandlerWithScrollFix(\"onArrowDown\", $event);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"up\", 38, $event.key, [\"Up\", \"ArrowUp\"])) return null;\n return _vm.callPickerArrowHandlerWithScrollFix(\"onArrowUp\", $event);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n return _vm.$refs.picker.onEnter.apply(null, arguments);\n }], \"trailing-button-click\": function($event) {\n _vm.clearSearch();\n onSearch(\"\");\n } } }), _c(\"NcColorPicker\", { attrs: { \"palette-only\": \"\", \"container\": _vm.container, \"palette\": _vm.skinTonePalette, \"value\": _vm.currentColor.color }, on: { \"update:value\": _vm.onChangeSkinTone } }, [_c(\"NcButton\", { attrs: { \"aria-label\": _vm.t(\"Skin tone\"), \"variant\": \"tertiary-no-background\" }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconCircle\", { style: { color: _vm.currentColor.color }, attrs: { \"title\": _vm.currentColor.name, \"size\": 20 } })];\n }, proxy: true }], null, true) })], 1)], 1)];\n } }, _vm.allowUnselect && _vm.selectedEmoji ? { key: \"customCategory\", fn: function() {\n return [_c(\"div\", { staticClass: \"emoji-mart-category-label\" }, [_c(\"h3\", { staticClass: \"emoji-mart-category-label\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Selected\")) + \" \")])]), _c(\"Emoji\", { staticClass: \"emoji-selected\", attrs: { \"data\": _vm.emojiIndex, \"emoji\": _vm.selectedEmoji, \"native\": true, \"size\": 32 }, on: { \"click\": _vm.unselect } }), _c(\"Emoji\", { staticClass: \"emoji-delete\", attrs: { \"data\": _vm.emojiIndex, \"emoji\": \":x:\", \"native\": true, \"size\": 10 }, on: { \"click\": _vm.unselect } })];\n }, proxy: true } : null], null, true) }, \"Picker\", _vm.$attrs, false))], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"d1a625fa\"\n);\nconst NcEmojiPicker = __component__.exports;\nexport {\n NcEmojiPicker as N\n};\n//# sourceMappingURL=NcEmojiPicker-Du-vbR5T.mjs.map\n","import '../assets/NcRelatedResourcesPanel-DhStLIO2.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { C as ChevronDown } from \"./ChevronDown-DFQfzh63.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-C7Dy9Bph.mjs\";\nimport NcButton from \"../Components/NcButton.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-Cb-cPj1R.mjs\";\nimport { r as register, S as t39, a as t, T as t36, U as t8 } from \"./_l10n-DQgzdF9S.mjs\";\nimport { g as getRoute } from \"./autolink-cbuFALXr.mjs\";\nconst _sfc_main$4 = {\n name: \"AccountGroupIcon\",\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};\nvar _sfc_render$4 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon account-group-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n null\n);\nconst AccountGroup = __component__$4.exports;\nconst _sfc_main$3 = {\n name: \"OpenInNewIcon\",\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};\nvar _sfc_render$3 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon open-in-new-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n null\n);\nconst OpenInNew = __component__$3.exports;\nregister(t39);\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? [];\nconst _sfc_main$2 = {\n name: \"NcTeamResources\",\n components: {\n AccountGroup,\n ChevronDown,\n ChevronUp,\n OpenInNew,\n NcButton,\n NcIconSvgWrapper\n },\n props: {\n providerId: {\n type: String,\n default: null\n },\n itemId: {\n type: [String, Number],\n default: null\n }\n },\n data() {\n return {\n appEnabled: OC?.appswebroots?.circles !== void 0 && (OC.config.version.split(\".\")[0] ?? 0) >= 29,\n loading: false,\n teamResources: null,\n teamOpen: []\n };\n },\n computed: {\n isVisible() {\n return !this.loading && this.teamResources?.length > 0;\n },\n teamProviders() {\n return (teamId) => {\n const team = this.teamResources.find((t2) => t2.teamId === teamId);\n return team.resources?.reduce((acc, resource) => {\n if (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n return acc;\n }\n if (!acc[resource.provider.id]) {\n acc[resource.provider.id] = resource.provider;\n acc[resource.provider.id].resources = [];\n }\n if (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n return acc;\n }\n acc[resource.provider.id].resources.push(resource);\n return acc;\n }, {});\n };\n },\n open() {\n return (teamId) => {\n return this.teamOpen.indexOf(teamId) !== -1;\n };\n }\n },\n watch: {\n providerId() {\n this.fetchTeamResources();\n },\n itemId() {\n this.fetchTeamResources();\n }\n },\n created() {\n this.fetchTeamResources();\n },\n methods: {\n t,\n async fetchTeamResources() {\n if (!teamResourceProviders.includes(this.providerId)) {\n return;\n }\n try {\n this.loading = true;\n const response = await axios.get(generateOcsUrl(`/teams/resources/${this.providerId}/${this.itemId}`));\n this.teamResources = response.data.ocs.data.teams;\n this.teamOpen = [this.teamResources[0]?.teamId];\n } catch (e) {\n this.teamResources = null;\n console.error(e);\n } finally {\n this.loading = false;\n }\n },\n toggleOpen(teamId, open) {\n if (open) {\n this.teamOpen.push(teamId);\n } else {\n this.teamOpen.splice(this.teamOpen.indexOf(teamId), 1);\n }\n }\n }\n};\nvar _sfc_render$2 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _vm.appEnabled && _vm.isVisible ? _c(\"div\", { staticClass: \"team-resources\" }, [_c(\"h5\", { staticClass: \"team-resources__header\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Related team resources\")) + \" \")]), _vm._l(_vm.teamResources, function(team) {\n return _c(\"details\", { key: team.teamId, staticClass: \"related-team\", attrs: { \"name\": \"Team resources\", \"open\": _vm.open(team.teamId) }, on: { \"toggle\": (event) => _vm.toggleOpen(team.teamId, event.target.open) } }, [_c(\"summary\", { staticClass: \"related-team__header\" }, [_c(\"h5\", { staticClass: \"related-team__name\" }, [_c(\"AccountGroup\", { attrs: { \"size\": 20 } }), _vm._v(\" \" + _vm._s(team.displayName) + \" \")], 1), _c(\"NcButton\", { attrs: { \"aria-label\": _vm.t(\"View team\"), \"href\": team.link, \"title\": _vm.t(\"View team\"), \"variant\": \"tertiary\" }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"OpenInNew\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, true) }), _vm.open(team.teamId) ? _c(\"ChevronUp\", { attrs: { \"size\": 20 } }) : _c(\"ChevronDown\", { attrs: { \"size\": 20 } })], 1), _c(\"div\", _vm._l(_vm.teamProviders(team.teamId), function(provider) {\n return _c(\"div\", { key: provider.id, staticClass: \"related-team-provider\" }, [provider.resources.length > 0 ? _c(\"h6\", [_vm._v(\" \" + _vm._s(provider.name) + \" \")]) : _vm._e(), _c(\"ul\", _vm._l(provider.resources, function(resource) {\n return _c(\"li\", { key: resource.url, staticClass: \"related-team-resource\" }, [_c(\"a\", { staticClass: \"related-team-resource__link\", attrs: { \"href\": resource.url } }, [resource.iconEmoji ? _c(\"span\", { staticClass: \"resource__icon\" }, [_vm._v(\" \" + _vm._s(resource.iconEmoji) + \" \")]) : resource.iconSvg ? _c(\"NcIconSvgWrapper\", { staticClass: \"resource__icon\", attrs: { \"svg\": resource.iconSvg, \"size\": 20 } }) : resource.iconURL ? _c(\"span\", { staticClass: \"resource__icon\" }, [_c(\"img\", { attrs: { \"src\": resource.iconURL, \"alt\": \"\" } })]) : _vm._e(), _c(\"span\", { staticClass: \"resource__name\" }, [_vm._v(\" \" + _vm._s(resource.label) + \" \")])], 1)]);\n }), 0)]);\n }), 0)]);\n })], 2) : _vm._e();\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n \"9e46b7b2\"\n);\nconst NcTeamResources = __component__$2.exports;\nregister(t36);\nconst _sfc_main$1 = {\n name: \"NcResource\",\n components: {\n NcButton\n },\n props: {\n icon: {\n type: String,\n required: true\n },\n name: {\n type: String,\n required: true\n },\n url: {\n type: String,\n required: true\n }\n },\n data() {\n return {\n labelTranslated: t('Open link to \"{resourceName}\"', { resourceName: this.name })\n };\n },\n computed: {\n route() {\n return getRoute(this.$router, this.url);\n }\n },\n methods: {\n t\n }\n};\nvar _sfc_render$1 = function render4() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"resource\" }, [_c(\"NcButton\", { staticClass: \"resource__button\", attrs: { \"aria-label\": _vm.labelTranslated, \"to\": _vm.route, \"href\": _vm.route ? null : _vm.url, \"variant\": \"tertiary\" }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"div\", { staticClass: \"resource__icon\" }, [_c(\"img\", { attrs: { \"src\": _vm.icon } })])];\n }, proxy: true }]) }, [_vm._v(\" \" + _vm._s(_vm.name) + \" \")])], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"77c38062\"\n);\nconst NcResource = __component__$1.exports;\nregister(t8);\nconst _sfc_main = {\n name: \"NcRelatedResourcesPanel\",\n components: {\n NcResource,\n NcTeamResources\n },\n props: {\n /**\n * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n providerId: {\n type: String,\n default: null\n },\n /**\n * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n */\n itemId: {\n type: [String, Number],\n default: null\n },\n /**\n * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n resourceType: {\n type: String,\n default: \"\"\n },\n /**\n * Set the maximum number of resources to load\n */\n limit: {\n type: Number,\n default: 0\n },\n /**\n * Only used by the files sidebar\n *\n * File info is passed when registered with `OCA.Sharing.ShareTabSections.registerSection()`\n */\n fileInfo: {\n type: Object,\n default: null\n },\n /**\n * Make the header name dynamic\n */\n header: {\n type: String,\n default: t(\"Related resources\")\n },\n description: {\n type: String,\n default: t(\"Anything shared with the same group of people will show up here\")\n },\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"has-error\",\n \"has-resources\"\n ],\n data() {\n return {\n appEnabled: OC?.appswebroots?.related_resources !== void 0,\n loading: false,\n error: null,\n resources: []\n };\n },\n computed: {\n isVisible() {\n if (this.loading) {\n return false;\n }\n return this.error ?? this.resources.length > 0;\n },\n subline() {\n if (this.error) {\n return t(\"Error getting related resources. Please contact your system administrator if you have any questions.\");\n }\n return this.description;\n },\n hasResourceInfo() {\n if (this.providerId !== null && this.itemId !== null) {\n return true;\n }\n if (this.fileInfo !== null) {\n return true;\n }\n return false;\n },\n isFiles() {\n return this.fileInfo?.id !== void 0;\n },\n url() {\n let providerId = null;\n let itemId = null;\n if (this.isFiles) {\n providerId = \"files\";\n itemId = this.fileInfo.id;\n } else {\n providerId = this.providerId;\n itemId = this.itemId;\n }\n return generateOcsUrl(\"/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json\", {\n providerId,\n itemId,\n resourceType: this.resourceType,\n limit: this.limit\n });\n }\n },\n watch: {\n providerId() {\n this.fetchRelatedResources();\n },\n itemId() {\n this.fetchRelatedResources();\n },\n fileInfo() {\n this.fetchRelatedResources();\n },\n error(error) {\n this.$emit(\"has-error\", Boolean(error));\n },\n resources(resources) {\n this.$emit(\"has-resources\", resources.length > 0);\n }\n },\n created() {\n this.fetchRelatedResources();\n },\n methods: {\n t,\n async fetchRelatedResources() {\n if (!this.appEnabled || !this.hasResourceInfo) {\n return;\n }\n this.loading = true;\n this.error = null;\n this.resources = [];\n try {\n const response = await axios.get(this.url);\n this.resources = response.data.ocs?.data;\n } catch (e) {\n this.error = e;\n console.error(e);\n } finally {\n this.loading = false;\n }\n }\n }\n};\nvar _sfc_render = function render5() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", [_c(\"NcTeamResources\", { attrs: { \"provider-id\": _vm.providerId, \"item-id\": _vm.itemId } }), _vm.appEnabled && _vm.isVisible ? _c(\"div\", { staticClass: \"related-resources\" }, [_c(\"div\", { staticClass: \"related-resources__header\" }, [_c(\"h5\", [_vm._v(_vm._s(_vm.header))]), _c(\"p\", [_vm._v(_vm._s(_vm.subline))])]), _vm._l(_vm.resources, function(resource) {\n return _c(\"NcResource\", { key: resource.itemId, staticClass: \"related-resources__entry\", attrs: { \"icon\": resource.icon, \"name\": resource.title, \"url\": resource.url } });\n })], 2) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"badd46a9\"\n);\nconst NcRelatedResourcesPanel = __component__.exports;\nexport {\n NcRelatedResourcesPanel as N\n};\n//# sourceMappingURL=NcRelatedResourcesPanel-Y38zaKtn.mjs.map\n","if (!window._vue_richtext_widgets) {\n window._vue_richtext_widgets = {};\n}\nconst isWidgetRegistered = (id) => {\n return !!window._vue_richtext_widgets[id];\n};\nconst hasInteractiveView = (id) => {\n return !!window._vue_richtext_widgets[id]?.hasInteractiveView;\n};\nconst hasFullWidth = (id) => {\n return !!window._vue_richtext_widgets[id]?.fullWidth;\n};\nconst registerWidget = (id, callback, onDestroy = (el) => {\n}, props) => {\n const propsWithDefaults = {\n hasInteractiveView: true,\n fullWidth: false,\n ...props\n };\n if (window._vue_richtext_widgets[id]) {\n console.error(\"Widget for id \" + id + \" already registered\");\n return;\n }\n window._vue_richtext_widgets[id] = {\n id,\n callback,\n onDestroy,\n ...propsWithDefaults\n };\n};\nconst renderWidget = (el, { richObjectType, richObject, accessible, interactive }) => {\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n console.error(\"Widget for rich object type \" + richObjectType + \" not registered\");\n return;\n }\n window._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive });\n};\nconst destroyWidget = (richObjectType, el) => {\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n return;\n }\n window._vue_richtext_widgets[richObjectType].onDestroy(el);\n};\nwindow._registerWidget = (id, callback, onDestroy, props) => {\n registerWidget(id, callback, onDestroy, props);\n};\nif (!window._vue_richtext_custom_picker_elements) {\n window._vue_richtext_custom_picker_elements = {};\n}\nclass NcCustomPickerRenderResult {\n /**\n * @param {HTMLElement} element The HTML element\n * @param {object} object The object\n */\n constructor(element, object) {\n this.element = element;\n this.object = object;\n }\n}\nconst isCustomPickerElementRegistered = (id) => {\n return !!window._vue_richtext_custom_picker_elements[id];\n};\nconst getCustomPickerElementSize = (id) => {\n const size = window._vue_richtext_custom_picker_elements[id]?.size;\n if ([\"small\", \"normal\", \"large\", \"full\"].includes(size)) {\n return size;\n }\n return null;\n};\nconst registerCustomPickerElement = (id, callback, onDestroy = (el) => {\n}, size = \"large\") => {\n if (window._vue_richtext_custom_picker_elements[id]) {\n console.error(\"Custom reference picker element for id \" + id + \" already registered\");\n return;\n }\n window._vue_richtext_custom_picker_elements[id] = {\n id,\n callback,\n onDestroy,\n size\n };\n};\nconst renderCustomPickerElement = (el, { providerId, accessible }) => {\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n console.error(\"Custom reference picker element for reference provider ID \" + providerId + \" not registered\");\n return;\n }\n return window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible });\n};\nconst destroyCustomPickerElement = (providerId, el, renderResult) => {\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n return;\n }\n window._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult);\n};\nwindow._registerCustomPickerElement = registerCustomPickerElement;\nexport {\n NcCustomPickerRenderResult as N,\n renderWidget as a,\n registerCustomPickerElement as b,\n renderCustomPickerElement as c,\n isCustomPickerElementRegistered as d,\n destroyWidget as e,\n hasFullWidth as f,\n destroyCustomPickerElement as g,\n hasInteractiveView as h,\n isWidgetRegistered as i,\n getCustomPickerElementSize as j,\n registerWidget as r\n};\n//# sourceMappingURL=index-56SXuvlv.mjs.map\n","import '../assets/referencePickerModal-Ba6soz9w.css';\nimport { e as destroyWidget, a as renderWidget, i as isWidgetRegistered, h as hasInteractiveView, f as hasFullWidth, c as renderCustomPickerElement, g as destroyCustomPickerElement, d as isCustomPickerElementRegistered, j as getCustomPickerElementSize } from \"./index-56SXuvlv.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { r as register, V as t21, a as t, W as t7, X as t44, Y as t38, Z as t22, B as t40, _ as t29, n as t17, $ as t11 } from \"./_l10n-DQgzdF9S.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { imagePath, generateOcsUrl } from \"@nextcloud/router\";\nimport NcEmptyContent from \"../Components/NcEmptyContent.mjs\";\nimport { N as NcHighlight } from \"./index-Bz6q9mZw.mjs\";\nimport { N as NcSelect } from \"./NcSelect-CjUzohn5.mjs\";\nimport { useElementSize, useIntersectionObserver } from \"@vueuse/core\";\nimport Vue, { ref, nextTick } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { g as getRoute } from \"./autolink-cbuFALXr.mjs\";\nimport NcButton from \"../Components/NcButton.mjs\";\nimport NcLoadingIcon from \"../Components/NcLoadingIcon.mjs\";\nimport { N as NcTextField } from \"./NcTextField-o_8gWurX.mjs\";\nimport { D as DotsHorizontal } from \"./DotsHorizontal-C6LNsw4N.mjs\";\nimport NcModal from \"../Components/NcModal.mjs\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { A as ArrowLeft } from \"./ArrowLeft-DuT2LZOm.mjs\";\nimport { C as Close } from \"./Close-BtLPUSdO.mjs\";\nregister(t21);\nconst IDLE_TIMEOUT = 3 * 60 * 1e3;\nconst _sfc_main$8 = {\n name: \"NcReferenceWidget\",\n components: {\n NcButton\n },\n props: {\n reference: {\n type: Object,\n required: true\n },\n interactive: {\n type: Boolean,\n default: true\n },\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n setup() {\n const isVisible = ref(false);\n const widgetRoot = ref();\n const { width } = useElementSize(widgetRoot);\n useIntersectionObserver(widgetRoot, ([entry]) => {\n nextTick(() => {\n isVisible.value = entry.isIntersecting;\n });\n });\n return {\n width,\n isVisible,\n widgetRoot\n };\n },\n data() {\n return {\n showInteractive: false,\n rendered: false,\n idleTimeout: null\n };\n },\n computed: {\n isInteractive() {\n return !this.interactiveOptIn && this.interactive || this.showInteractive;\n },\n hasFullWidth() {\n return hasFullWidth(this.reference.richObjectType);\n },\n hasCustomWidget() {\n return isWidgetRegistered(this.reference.richObjectType);\n },\n hasInteractiveView() {\n return isWidgetRegistered(this.reference.richObjectType) && hasInteractiveView(this.reference.richObjectType);\n },\n noAccess() {\n return this.reference && !this.reference.accessible;\n },\n descriptionStyle() {\n if (this.numberOfLines === 0) {\n return {\n display: \"none\"\n };\n }\n const lineClamp = this.numberOfLines;\n return {\n lineClamp,\n webkitLineClamp: lineClamp\n };\n },\n numberOfLines() {\n const lineCountOffsets = [450, 550, 650, Infinity];\n return lineCountOffsets.findIndex((max) => this.width < max);\n },\n compactLink() {\n const link = this.reference.openGraphObject.link;\n if (!link) {\n return \"\";\n }\n if (link.startsWith(\"https://\")) {\n return link.substring(8);\n }\n if (link.startsWith(\"http://\")) {\n return link.substring(7);\n }\n return link;\n },\n route() {\n return getRoute(this.$router, this.reference.openGraphObject.link);\n },\n referenceWidgetLinkComponent() {\n return this.route ? RouterLink : \"a\";\n },\n referenceWidgetLinkProps() {\n return this.route ? { to: this.route } : { href: this.reference.openGraphObject.link, target: \"_blank\" };\n }\n },\n watch: {\n isVisible: {\n handler(val) {\n if (!val) {\n this.idleTimeout = setTimeout(() => {\n if (!this.isVisible) {\n this.destroyWidget();\n }\n }, IDLE_TIMEOUT);\n return;\n }\n if (this.idleTimeout) {\n clearTimeout(this.idleTimeout);\n this.idleTimeout = null;\n }\n if (!this.rendered) {\n this.renderWidget();\n }\n },\n immediate: true\n }\n },\n beforeDestroy() {\n this.destroyWidget();\n },\n methods: {\n t,\n enableInteractive() {\n this.showInteractive = true;\n this.renderWidget();\n },\n renderWidget() {\n if (!this.$refs.customWidget) {\n return;\n }\n if (this?.reference?.richObjectType === \"open-graph\") {\n return;\n }\n this.$refs.customWidget.innerHTML = \"\";\n const widget = document.createElement(\"div\");\n widget.style = \"width: 100%;\";\n this.$refs.customWidget.appendChild(widget);\n this.$nextTick(() => {\n renderWidget(widget, {\n ...this.reference,\n interactive: this.isInteractive\n });\n this.rendered = true;\n });\n },\n destroyWidget() {\n if (this.rendered) {\n destroyWidget(this.reference.richObjectType, this.$el);\n this.rendered = false;\n }\n }\n }\n};\nvar _sfc_render$8 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { ref: \"widgetRoot\", class: { \"toggle-interactive\": _vm.hasInteractiveView && !_vm.isInteractive } }, [_vm.reference && _vm.hasCustomWidget ? _c(\"div\", { ref: \"customWidget\", staticClass: \"widget-custom\", class: { \"full-width\": _vm.hasFullWidth } }) : !_vm.noAccess && _vm.reference && _vm.reference.openGraphObject && !_vm.hasCustomWidget ? _c(_vm.referenceWidgetLinkComponent, _vm._b({ tag: \"component\", staticClass: \"widget-default\", attrs: { \"rel\": \"noopener noreferrer\" } }, \"component\", _vm.referenceWidgetLinkProps, false), [_vm.reference.openGraphObject.thumb ? _c(\"img\", { staticClass: \"widget-default--image\", attrs: { \"src\": _vm.reference.openGraphObject.thumb } }) : _vm._e(), _c(\"div\", { staticClass: \"widget-default--details\" }, [_c(\"p\", { staticClass: \"widget-default--name\" }, [_vm._v(\" \" + _vm._s(_vm.reference.openGraphObject.name) + \" \")]), _c(\"p\", { staticClass: \"widget-default--description\", style: _vm.descriptionStyle }, [_vm._v(\" \" + _vm._s(_vm.reference.openGraphObject.description) + \" \")]), _c(\"p\", { staticClass: \"widget-default--link\" }, [_vm._v(\" \" + _vm._s(_vm.compactLink) + \" \")])])]) : _vm._e(), _vm.interactiveOptIn && _vm.hasInteractiveView && !_vm.isInteractive ? _c(\"NcButton\", { staticClass: \"toggle-interactive--button\", on: { \"click\": _vm.enableInteractive } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Enable interactive view\")) + \" \")]) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns$8 = [];\nvar __component__$8 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$8,\n _sfc_render$8,\n _sfc_staticRenderFns$8,\n false,\n null,\n \"734d6ae9\"\n);\nconst NcReferenceWidget = __component__$8.exports;\nconst _sfc_main$7 = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n isRegistered: isCustomPickerElementRegistered(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n if (this.isRegistered) {\n this.renderElement();\n }\n },\n beforeDestroy() {\n if (this.isRegistered) {\n destroyCustomPickerElement(this.provider.id, this.$el, this.renderResult);\n }\n },\n methods: {\n renderElement() {\n if (this.$refs.domElement) {\n this.$refs.domElement.innerHTML = \"\";\n }\n const renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false });\n Promise.resolve(renderFunctionResult).then((result) => {\n this.renderResult = result;\n if (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n this.renderResult.object.$on(\"submit\", this.onSubmit);\n this.renderResult.object.$on(\"cancel\", this.onCancel);\n }\n this.renderResult.element.addEventListener(\"submit\", (e) => {\n this.onSubmit(e.detail);\n });\n this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(value) {\n this.$emit(\"submit\", value);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nvar _sfc_render$7 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { ref: \"domElement\" });\n};\nvar _sfc_staticRenderFns$7 = [];\nvar __component__$7 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$7,\n _sfc_render$7,\n _sfc_staticRenderFns$7,\n false,\n null,\n \"de9850e4\"\n);\nconst NcCustomPickerElement = __component__$7.exports;\nregister(t7);\nconst anyLinkProviderId = \"any-link\";\nconst anyLinkProvider = {\n id: anyLinkProviderId,\n title: t(\"Any link\"),\n icon_url: imagePath(\"core\", \"filetypes/link.svg\")\n};\nif (!window._vue_richtext_reference_providers) {\n window._vue_richtext_reference_providers = loadState(\"core\", \"reference-provider-list\", []);\n}\nif (!window._vue_richtext_reference_provider_timestamps) {\n window._vue_richtext_reference_provider_timestamps = loadState(\"core\", \"reference-provider-timestamps\", {});\n}\nfunction getProvider(providerId) {\n if (providerId === anyLinkProviderId) {\n return anyLinkProvider;\n }\n return getProviders().find((p) => p.id === providerId);\n}\nfunction getProviders() {\n return window._vue_richtext_reference_providers.filter((p) => {\n const keep = !!p.search_providers_ids && p.search_providers_ids.length > 0 || isCustomPickerElementRegistered(p.id);\n if (!keep) {\n console.debug(\"[smart picker]\", p.id, \"reference provider is discoverable but does not have any related search provider or custom picker component registered\");\n }\n return keep;\n });\n}\nfunction sortProviders(providerList) {\n const timestamps = window._vue_richtext_reference_provider_timestamps;\n return providerList.sort((a, b) => {\n return a.order === b.order ? 0 : a.order > b.order ? 1 : -1;\n }).sort((a, b) => {\n const ta = timestamps[a.id];\n const tb = timestamps[b.id];\n return ta === tb ? 0 : tb === void 0 ? -1 : ta === void 0 ? 1 : ta > tb ? -1 : 1;\n });\n}\nfunction searchProvider(query, limit = null) {\n const providers = getProviders();\n const escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n const regexp = new RegExp(escapedQuery, \"i\");\n const sortedProviders = sortProviders(providers);\n const filteredSortedProviders = sortedProviders.filter((p) => {\n return p.title.match(regexp);\n });\n const searchResult = limit ? filteredSortedProviders.slice(0, limit) : filteredSortedProviders;\n if (query === \"\" || searchResult.length === 0) {\n searchResult.push(anyLinkProvider);\n }\n return searchResult;\n}\nfunction touchProvider(providerId) {\n const timestamp = Math.floor(Date.now() / 1e3);\n const params = {\n timestamp\n };\n const url = generateOcsUrl(\"references/provider/{providerId}\", { providerId });\n axios.put(url, params).then((response) => {\n window._vue_richtext_reference_provider_timestamps[providerId] = timestamp;\n });\n}\nlet mytimer = 0;\nfunction delay(callback, ms) {\n return function() {\n const context = this;\n const args = arguments;\n clearTimeout(mytimer);\n mytimer = setTimeout(function() {\n callback.apply(context, args);\n }, ms);\n };\n}\nfunction isUrl(str) {\n try {\n return Boolean(new URL(str));\n } catch (error) {\n return false;\n }\n}\nregister(t38, t44);\nconst _sfc_main$6 = {\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};\nvar _sfc_render$6 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon link-variant-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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 _sfc_staticRenderFns$6 = [];\nvar __component__$6 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$6,\n _sfc_render$6,\n _sfc_staticRenderFns$6,\n false,\n null,\n null\n);\nconst LinkVariantIcon = __component__$6.exports;\nconst _sfc_main$5 = {\n name: \"NcProviderList\",\n components: {\n NcSelect,\n NcHighlight,\n NcEmptyContent,\n LinkVariantIcon\n },\n emits: [\n \"select-provider\",\n \"submit\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: t(\"Select provider\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const result = [];\n if (this.query !== \"\" && isUrl(this.query)) {\n result.push({\n id: this.query,\n title: this.query,\n isLink: true\n });\n }\n result.push(...searchProvider(this.query));\n return result;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n this.$refs[\"provider-select\"]?.$el?.querySelector(\"#provider-select-input\")?.focus();\n }, 300);\n },\n onProviderSelected(p) {\n if (p !== null) {\n if (p.isLink) {\n this.$emit(\"submit\", p.title);\n } else {\n this.$emit(\"select-provider\", p);\n }\n this.selectedProvider = null;\n }\n },\n onSearch(query, loading) {\n this.query = query;\n }\n }\n};\nvar _sfc_render$5 = function render4() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"provider-list\" }, [_c(\"NcSelect\", { ref: \"provider-select\", staticClass: \"provider-list--select\", attrs: { \"input-id\": \"provider-select-input\", \"label\": \"title\", \"placeholder\": _vm.multiselectPlaceholder, \"options\": _vm.options, \"append-to-body\": false, \"clear-search-on-select\": true, \"clear-search-on-blur\": () => false, \"filterable\": false }, on: { \"search\": _vm.onSearch, \"input\": _vm.onProviderSelected }, scopedSlots: _vm._u([{ key: \"option\", fn: function(option) {\n return [option.isLink ? _c(\"div\", { staticClass: \"provider\" }, [_c(\"LinkVariantIcon\", { staticClass: \"link-icon\", attrs: { \"size\": 20 } }), _c(\"span\", [_vm._v(_vm._s(option.title))])], 1) : _c(\"div\", { staticClass: \"provider\" }, [_c(\"img\", { staticClass: \"provider-icon\", attrs: { \"src\": option.icon_url, \"alt\": _vm.providerIconAlt } }), _c(\"NcHighlight\", { staticClass: \"option-text\", attrs: { \"search\": _vm.query, \"text\": option.title } })], 1)];\n } }]), model: { value: _vm.selectedProvider, callback: function($$v) {\n _vm.selectedProvider = $$v;\n }, expression: \"selectedProvider\" } }), _c(\"NcEmptyContent\", { staticClass: \"provider-list--empty-content\", scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"LinkVariantIcon\")];\n }, proxy: true }]) })], 1);\n};\nvar _sfc_staticRenderFns$5 = [];\nvar __component__$5 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$5,\n _sfc_render$5,\n _sfc_staticRenderFns$5,\n false,\n null,\n \"f03ee0c9\"\n);\nconst NcProviderList = __component__$5.exports;\nregister(t22);\nconst _sfc_main$4 = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon,\n NcEmptyContent,\n NcLoadingIcon,\n NcReferenceWidget,\n NcTextField\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: false,\n reference: null,\n abortController: null,\n inputPlaceholder: t(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return isUrl(this.inputValue);\n }\n },\n methods: {\n focus() {\n this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]?.focus();\n },\n onSubmit(e) {\n const value = e.target.value;\n if (this.isLinkValid) {\n this.$emit(\"submit\", value);\n }\n },\n onClear() {\n this.inputValue = \"\";\n this.reference = null;\n },\n onInput() {\n this.reference = null;\n if (this.abortController) {\n this.abortController.abort();\n }\n if (this.isLinkValid) {\n delay(() => {\n this.updateReference();\n }, 500)();\n }\n },\n updateReference() {\n this.loading = true;\n this.abortController = new AbortController();\n axios.get(generateOcsUrl(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((response) => {\n this.reference = response.data.ocs.data.references[this.inputValue];\n }).catch((error) => {\n console.error(error);\n }).then(() => {\n this.loading = false;\n });\n }\n }\n};\nvar _sfc_render$4 = function render5() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"raw-link\" }, [_c(\"div\", { staticClass: \"input-wrapper\" }, [_c(\"NcTextField\", { ref: \"url-input\", attrs: { \"value\": _vm.inputValue, \"show-trailing-button\": _vm.inputValue !== \"\", \"label\": _vm.inputPlaceholder }, on: { \"update:value\": [function($event) {\n _vm.inputValue = $event;\n }, _vm.onInput], \"trailing-button-click\": _vm.onClear }, nativeOn: { \"keyup\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n return _vm.onSubmit.apply(null, arguments);\n } } }, [_vm.loading ? _c(\"NcLoadingIcon\", { attrs: { \"size\": 16 } }) : _c(\"LinkVariantIcon\", { attrs: { \"size\": 16 } })], 1)], 1), _vm.reference !== null ? _c(\"NcReferenceWidget\", { staticClass: \"reference-widget\", attrs: { \"reference\": _vm.reference } }) : _c(\"NcEmptyContent\", { staticClass: \"raw-link--empty-content\", scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm.provider.icon_url ? _c(\"img\", { staticClass: \"provider-icon\", attrs: { \"src\": _vm.provider.icon_url } }) : _c(\"LinkVariantIcon\")];\n }, proxy: true }]) })], 1);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n \"3c1803b5\"\n);\nconst NcRawLinkInput = __component__$4.exports;\nconst _sfc_main$3 = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: true\n },\n /**\n * The query that led to getting this result\n * Used to highlight the entry text\n */\n query: {\n type: String,\n required: true\n }\n }\n};\nvar _sfc_render$3 = function render6() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"result\" }, [_vm.entry.icon ? _c(\"div\", { staticClass: \"result--icon-class\", class: { [_vm.entry.icon]: true, rounded: _vm.entry.rounded } }) : _c(\"img\", { staticClass: \"result--image\", class: { rounded: _vm.entry.rounded }, attrs: { \"src\": _vm.entry.thumbnailUrl } }), _c(\"div\", { staticClass: \"result--content\" }, [_c(\"span\", { staticClass: \"result--content--name\" }, [_c(\"NcHighlight\", { attrs: { \"search\": _vm.query, \"text\": _vm.entry.title } })], 1), _c(\"span\", { staticClass: \"result--content--subline\" }, [_c(\"NcHighlight\", { attrs: { \"search\": _vm.query, \"text\": _vm.entry.subline } })], 1)])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n \"ff4bcbf3\"\n);\nconst NcSearchResult = __component__$3.exports;\nregister(t29, t38, t40);\nconst LIMIT = 5;\nconst _sfc_main$2 = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon,\n DotsHorizontalIcon: DotsHorizontal,\n NcEmptyContent,\n NcSelect,\n NcSearchResult\n },\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: true\n },\n showEmptyContent: {\n type: Boolean,\n default: true\n },\n searchPlaceholder: {\n type: String,\n default: null\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n searchQuery: \"\",\n selectedResult: null,\n resultsBySearchProvider: {},\n searching: false,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: t(\"Start typing to search\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || t(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\") {\n return [];\n }\n const options = [];\n if (isUrl(this.searchQuery)) {\n options.push(this.rawLinkEntry);\n }\n options.push(...this.formattedSearchResults);\n return options;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: true\n };\n },\n formattedSearchResults() {\n const results = [];\n this.searchProviderIds.forEach((pid) => {\n if (this.resultsBySearchProvider[pid].entries.length > 0) {\n if (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n results.push({\n id: \"groupTitle-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isCustomGroupTitle: true,\n providerId: pid\n });\n }\n const providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n return {\n id: \"provider-\" + pid + \"-entry-\" + index,\n ...entry\n };\n });\n results.push(...providerEntriesWithId);\n if (this.resultsBySearchProvider[pid].isPaginated) {\n results.push({\n id: \"moreOf-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isMore: true,\n providerId: pid,\n isLoading: this.searchingMoreOf === pid\n });\n }\n }\n });\n return results;\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeDestroy() {\n this.cancelSearchRequests();\n },\n methods: {\n t,\n resetResults() {\n const resultsBySearchProvider = {};\n this.searchProviderIds.forEach((pid) => {\n resultsBySearchProvider[pid] = {\n entries: []\n };\n });\n this.resultsBySearchProvider = resultsBySearchProvider;\n },\n focus() {\n setTimeout(() => {\n this.$refs[\"search-select\"]?.$el?.querySelector(\"#search-select-input\")?.focus();\n }, 300);\n },\n cancelSearchRequests() {\n if (this.abortController) {\n this.abortController.abort();\n }\n },\n onSearchInput(query, loading) {\n this.searchQuery = query;\n delay(() => {\n this.updateSearch();\n }, 500)();\n },\n onSelectResultSelected(item) {\n if (item !== null) {\n if (item.resourceUrl) {\n this.cancelSearchRequests();\n this.$emit(\"submit\", item.resourceUrl);\n } else if (item.isMore) {\n this.searchMoreOf(item.providerId).then(() => {\n this.selectedResult = null;\n });\n }\n }\n },\n searchMoreOf(searchProviderId) {\n this.searchingMoreOf = searchProviderId;\n this.cancelSearchRequests();\n return this.searchProviders(searchProviderId);\n },\n updateSearch() {\n this.cancelSearchRequests();\n this.resetResults();\n if (this.searchQuery === \"\") {\n this.searching = false;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(searchProviderId = null) {\n this.abortController = new AbortController();\n this.searching = true;\n const searchPromises = searchProviderId === null ? [...this.searchProviderIds].map((pid) => {\n return this.searchOneProvider(pid);\n }) : [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)];\n return Promise.allSettled(searchPromises).then((promises) => {\n const isOneCanceled = !!promises.find((p) => {\n return p.status === \"rejected\" && (p.reason.name === \"CanceledError\" || p.reason.code === \"ERR_CANCELED\");\n });\n if (!isOneCanceled) {\n this.searching = false;\n this.searchingMoreOf = null;\n }\n });\n },\n searchOneProvider(providerId, cursor = null) {\n const url = cursor === null ? generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId, term: this.searchQuery, limit: LIMIT }) : generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId, term: this.searchQuery, limit: LIMIT, cursor });\n return axios.get(url, {\n signal: this.abortController.signal\n }).then((response) => {\n const data = response.data.ocs.data;\n this.resultsBySearchProvider[providerId].name = data.name;\n this.resultsBySearchProvider[providerId].cursor = data.cursor;\n this.resultsBySearchProvider[providerId].isPaginated = data.isPaginated;\n this.resultsBySearchProvider[providerId].entries.push(...data.entries);\n });\n }\n }\n};\nvar _sfc_render$2 = function render7() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"smart-picker-search\", class: { \"with-empty-content\": _vm.showEmptyContent } }, [_c(\"NcSelect\", { ref: \"search-select\", staticClass: \"smart-picker-search--select\", attrs: { \"input-id\": \"search-select-input\", \"label\": \"name\", \"placeholder\": _vm.mySearchPlaceholder, \"options\": _vm.options, \"append-to-body\": false, \"close-on-select\": false, \"clear-search-on-select\": false, \"clear-search-on-blur\": () => false, \"reset-focus-on-options-change\": false, \"filterable\": false, \"autoscroll\": true, \"reset-on-options-change\": false, \"loading\": _vm.searching }, on: { \"search\": _vm.onSearchInput, \"input\": _vm.onSelectResultSelected }, scopedSlots: _vm._u([{ key: \"option\", fn: function(option) {\n return [option.isRawLink ? _c(\"div\", { staticClass: \"custom-option\" }, [_c(\"LinkVariantIcon\", { staticClass: \"option-simple-icon\", attrs: { \"size\": 20 } }), _c(\"span\", { staticClass: \"option-text\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Raw link {options}\", { options: option.resourceUrl })) + \" \")])], 1) : option.resourceUrl ? _c(\"NcSearchResult\", { staticClass: \"search-result\", attrs: { \"entry\": option, \"query\": _vm.searchQuery } }) : option.isCustomGroupTitle ? _c(\"span\", { staticClass: \"custom-option group-name\" }, [_vm.provider.icon_url ? _c(\"img\", { staticClass: \"provider-icon group-name-icon\", attrs: { \"src\": _vm.provider.icon_url } }) : _vm._e(), _c(\"span\", { staticClass: \"option-text\" }, [_c(\"strong\", [_vm._v(_vm._s(option.name))])])]) : option.isMore ? _c(\"span\", { class: { \"custom-option\": true } }, [option.isLoading ? _c(\"span\", { staticClass: \"option-simple-icon icon-loading-small\" }) : _c(\"DotsHorizontalIcon\", { staticClass: \"option-simple-icon\", attrs: { \"size\": 20 } }), _c(\"span\", { staticClass: \"option-text\" }, [_vm._v(\" \" + _vm._s(_vm.t('Load more \"{options}\"', { options: option.name })) + \" \")])], 1) : _vm._e()];\n } }, { key: \"no-options\", fn: function() {\n return [_vm._v(\" \" + _vm._s(_vm.noOptionsText) + \" \")];\n }, proxy: true }]), model: { value: _vm.selectedResult, callback: function($$v) {\n _vm.selectedResult = $$v;\n }, expression: \"selectedResult\" } }), _vm.showEmptyContent ? _c(\"NcEmptyContent\", { staticClass: \"smart-picker-search--empty-content\", scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm.provider.icon_url ? _c(\"img\", { staticClass: \"provider-icon\", attrs: { \"alt\": _vm.providerIconAlt, \"src\": _vm.provider.icon_url } }) : _c(\"LinkVariantIcon\")];\n }, proxy: true }], null, false, 2922132592) }) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n \"05fef988\"\n);\nconst NcSearch = __component__$2.exports;\nconst MODES = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n};\nconst _sfc_main$1 = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement,\n NcProviderList,\n NcRawLinkInput,\n NcSearch\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"cancel\",\n \"cancel-raw-link\",\n \"cancel-search\",\n \"provider-selected\",\n \"submit\"\n ],\n data() {\n return {\n MODES,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? MODES.providerList : isCustomPickerElementRegistered(this.selectedProvider.id) ? MODES.customElement : this.selectedProvider.search_providers_ids ? MODES.searchInput : MODES.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n if (this.focusOnCreate) {\n if (this.initialProvider) {\n setTimeout(() => {\n this.$refs[\"url-input\"]?.focus();\n }, 300);\n } else {\n this.$nextTick(() => {\n this.$refs[\"provider-list\"]?.focus();\n });\n }\n }\n },\n methods: {\n onEscapePressed() {\n if (this.selectedProvider !== null) {\n this.deselectProvider();\n } else {\n this.cancelProviderSelection();\n }\n },\n onProviderSelected(provider) {\n this.selectedProvider = provider;\n this.$emit(\"provider-selected\", provider);\n this.$nextTick(() => {\n this.$refs[\"url-input\"]?.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n this.$emit(\"cancel-search\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelRawLinkInput() {\n this.$emit(\"cancel-raw-link\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(link) {\n if (this.selectedProvider !== null) {\n touchProvider(this.selectedProvider.id);\n }\n this.$emit(\"submit\", link);\n this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null;\n this.$emit(\"provider-selected\", null);\n setTimeout(() => {\n this.$refs[\"provider-list\"]?.focus();\n }, 300);\n }\n }\n};\nvar _sfc_render$1 = function render8() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"reference-picker\", style: _vm.pickerWrapperStyle, attrs: { \"tabindex\": \"-1\" }, on: { \"keydown\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) return null;\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.onEscapePressed.apply(null, arguments);\n } } }, [_vm.mode === _vm.MODES.providerList ? _c(\"NcProviderList\", { ref: \"provider-list\", on: { \"select-provider\": _vm.onProviderSelected, \"submit\": _vm.submitLink, \"cancel\": _vm.cancelProviderSelection } }) : _vm.mode === _vm.MODES.standardLinkInput ? _c(\"NcRawLinkInput\", { ref: \"url-input\", attrs: { \"provider\": _vm.selectedProvider }, on: { \"submit\": _vm.submitLink, \"cancel\": _vm.cancelRawLinkInput } }) : _vm.mode === _vm.MODES.searchInput ? _c(\"NcSearch\", { ref: \"url-input\", attrs: { \"provider\": _vm.selectedProvider }, on: { \"cancel\": _vm.cancelSearch, \"submit\": _vm.submitLink } }) : _vm.mode === _vm.MODES.customElement ? _c(\"div\", { staticClass: \"custom-element-wrapper\" }, [_c(\"NcCustomPickerElement\", { staticClass: \"custom-element\", attrs: { \"provider\": _vm.selectedProvider }, on: { \"submit\": _vm.submitLink, \"cancel\": _vm.cancelCustomElement } })], 1) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"cd33df8e\"\n);\nconst NcReferencePicker = __component__$1.exports;\nregister(t11, t17);\nconst _sfc_main = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker,\n NcModal,\n NcButton,\n ArrowLeftIcon: ArrowLeft,\n CloseIcon: Close\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n },\n /**\n * If true, add the modal content to the Viewer trap elements via the event-bus\n */\n isInsideViewer: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n show: true,\n selectedProvider: this.initialProvider,\n backButtonTitle: t(\"Back to provider selection\"),\n closeButtonTitle: t(\"Close\"),\n closeButtonLabel: t(\"Close Smart Picker\")\n };\n },\n computed: {\n isProviderSelected() {\n return this.selectedProvider !== null;\n },\n showBackButton() {\n return this.initialProvider === null && this.isProviderSelected;\n },\n modalSize() {\n return this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id) ? getCustomPickerElementSize(this.selectedProvider.id) ?? \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : t(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const elem = this.$refs.modal_content;\n emit(\"viewer:trapElements:changed\", elem);\n }\n },\n methods: {\n onCancel() {\n this.show = false;\n this.$emit(\"cancel\");\n },\n onSubmit(value) {\n this.show = false;\n this.$emit(\"submit\", value);\n },\n onProviderSelect(provider) {\n this.selectedProvider = provider;\n if (provider === null && this.initialProvider !== null) {\n this.onCancel();\n }\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nvar _sfc_render = function render9() {\n var _vm = this, _c = _vm._self._c;\n return _vm.show ? _c(\"NcModal\", { staticClass: \"reference-picker-modal\", attrs: { \"size\": _vm.modalSize, \"can-close\": true }, on: { \"close\": _vm.onCancel } }, [_c(\"div\", { ref: \"modal_content\", staticClass: \"reference-picker-modal--content\" }, [_vm.showBackButton ? _c(\"NcButton\", { staticClass: \"back-button\", attrs: { \"aria-label\": _vm.backButtonTitle, \"title\": _vm.backButtonTitle }, on: { \"click\": _vm.onBackClicked }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"ArrowLeftIcon\")];\n }, proxy: true }], null, false, 3001860362) }) : _vm._e(), _c(\"NcButton\", { staticClass: \"close-button\", attrs: { \"aria-label\": _vm.closeButtonLabel, \"title\": _vm.closeButtonTitle, \"variant\": \"tertiary\" }, on: { \"click\": _vm.onCancel }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"CloseIcon\")];\n }, proxy: true }], null, false, 2491825086) }), _vm.showModalName ? _c(\"h2\", [_vm._v(\" \" + _vm._s(_vm.modalName) + \" \")]) : _vm._e(), _c(\"NcReferencePicker\", { ref: \"referencePicker\", attrs: { \"initial-provider\": _vm.initialProvider, \"focus-on-create\": _vm.focusOnCreate }, on: { \"provider-selected\": _vm.onProviderSelect, \"submit\": _vm.onSubmit, \"cancel\": _vm.onCancel } })], 1)]) : _vm._e();\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"c66449c1\"\n);\nconst NcReferencePickerModal = __component__.exports;\nasync function getLinkWithPicker(providerId = null, isInsideViewer = void 0) {\n return await new Promise((resolve, reject) => {\n const modalId = \"referencePickerModal\";\n const modalElement = document.createElement(\"div\");\n modalElement.id = modalId;\n document.body.append(modalElement);\n const initialProvider = providerId === null ? null : getProvider(providerId) ?? null;\n const View = Vue.extend(NcReferencePickerModal);\n const view = new View({\n propsData: {\n initialProvider,\n isInsideViewer\n }\n }).$mount(modalElement);\n view.$on(\"cancel\", () => {\n view.$destroy();\n reject(new Error(\"User cancellation\"));\n });\n view.$on(\"submit\", (link) => {\n view.$destroy();\n resolve(link);\n });\n });\n}\nexport {\n NcReferenceWidget as N,\n anyLinkProviderId as a,\n getProvider as b,\n getProviders as c,\n searchProvider as d,\n NcReferencePicker as e,\n NcReferencePickerModal as f,\n getLinkWithPicker as g,\n NcSearch as h,\n sortProviders as s\n};\n//# sourceMappingURL=referencePickerModal-4kExxHbR.mjs.map\n","import '../assets/NcRichText-li93TNBn.css';\nimport { ref } from \"vue\";\nimport { N as NcReferenceWidget } from \"./referencePickerModal-4kExxHbR.mjs\";\nimport { U as URL_PATTERN, p as parseUrl, r as remarkAutolink, g as getRoute } from \"./autolink-cbuFALXr.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { getSharingToken } from \"@nextcloud/sharing/public\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch-VeztTzpz.mjs\";\nimport { visit, SKIP as SKIP$1, EXIT as EXIT$1 } from \"unist-util-visit\";\nimport { u } from \"unist-builder\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport breaks from \"remark-breaks\";\nimport remarkUnlinkProtocols from \"remark-unlink-protocols\";\nimport remark2rehype from \"remark-rehype\";\nimport rehype2react from \"rehype-react\";\nimport rehypeExternalLinks from \"rehype-external-links\";\nimport { RouterLink } from \"vue-router\";\nconst _sfc_main$1 = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget\n },\n props: {\n text: {\n type: String,\n default: \"\"\n },\n referenceData: {\n type: Array,\n default: null\n },\n limit: {\n type: Number,\n default: 1\n },\n displayFallback: {\n type: Boolean,\n default: false\n },\n interactive: {\n type: Boolean,\n default: true\n },\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n references: null,\n loading: true\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences.length !== 0;\n },\n values() {\n if (this.referenceData) {\n return this.referenceData;\n }\n if (this.displayFallback && !this.loading && !this.references) {\n return [this.fallbackReference];\n }\n return this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n return this.values[0] ?? null;\n },\n displayedReferences() {\n return this.values.slice(0, this.limit);\n },\n fallbackReference() {\n return {\n accessible: true,\n openGraphObject: {\n id: this.text,\n link: this.text,\n name: this.text\n },\n richObjectType: \"open-graph\"\n };\n }\n },\n watch: {\n text: \"fetch\"\n },\n mounted() {\n this.fetch();\n },\n methods: {\n fetch() {\n this.loading = true;\n if (this.referenceData) {\n this.references = null;\n this.loading = false;\n return;\n }\n if (!new RegExp(URL_PATTERN).exec(this.text)) {\n this.references = null;\n this.loading = false;\n return;\n }\n this.resolve().then((response) => {\n this.references = response.data.ocs.data.references;\n this.loading = false;\n this.$emit(\"loaded\");\n }).catch((error) => {\n console.error(\"Failed to extract references\", error);\n this.loading = false;\n this.$emit(\"loaded\");\n });\n },\n resolve() {\n const match = new RegExp(URL_PATTERN).exec(this.text.trim());\n const isPublic = getCurrentUser() === null;\n if (this.limit === 1 && match) {\n return isPublic ? axios.get(generateOcsUrl(\"references/resolvePublic\") + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) : axios.get(generateOcsUrl(\"references/resolve\") + `?reference=${encodeURIComponent(match[0])}`);\n }\n return isPublic ? axios.post(generateOcsUrl(\"references/extractPublic\"), {\n text: this.text,\n resolve: true,\n limit: this.limit,\n sharingToken: getSharingToken()\n }) : axios.post(generateOcsUrl(\"references/extract\"), {\n text: this.text,\n resolve: true,\n limit: this.limit\n });\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _vm.isVisible ? _c(\"div\", { staticClass: \"widgets--list\", class: { \"icon-loading\": _vm.loading } }, _vm._l(_vm.displayedReferences, function(reference) {\n return _c(\"NcReferenceWidget\", { key: reference?.openGraphObject?.id, attrs: { \"reference\": reference, \"interactive\": _vm.interactive, \"interactive-opt-in\": _vm.interactiveOptIn } });\n }), 1) : _vm._e();\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"ffdba753\"\n);\nconst NcReferenceList = __component__$1.exports;\nconst remarkPlaceholder = function() {\n return function(ast) {\n visit(ast, (node2) => node2.type === \"text\", visitor);\n function visitor(node2, index, parent) {\n const placeholders = node2.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry, index2, list2) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return u(\"text\", entry);\n }\n const [, component] = matches;\n return u(\"element\", {\n tagName: `#${component}`\n });\n });\n parent.children.splice(index, 1, ...placeholders);\n }\n };\n};\nconst prepareTextNode = ({ h, context }, text2) => {\n if (context.autolink) {\n text2 = parseUrl(text2);\n }\n if (Array.isArray(text2)) {\n return text2.map((entry) => {\n if (typeof entry === \"string\") {\n return entry;\n }\n const { component, props } = entry;\n const componentClass = component.name === \"NcLink\" ? void 0 : \"rich-text--component\";\n return h(component, {\n props,\n class: componentClass\n });\n });\n }\n return text2;\n};\nconst remarkUnescape = function() {\n return function(tree) {\n visit(\n tree,\n (node2) => [\"text\", \"code\", \"inlineCode\"].includes(node2.type),\n (node2, index, parent) => {\n parent.children.splice(index, 1, {\n ...node2,\n value: node2.value.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n });\n return [SKIP$1, index + 1];\n }\n );\n };\n};\nfunction ccount(value, character) {\n const source = String(value);\n if (typeof character !== \"string\") {\n throw new TypeError(\"Expected character\");\n }\n let count = 0;\n let index = source.indexOf(character);\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n return count;\n}\nfunction ok$1() {\n}\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nfunction asciiControl(code2) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code2 !== null && (code2 < 32 || code2 === 127)\n );\n}\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\"));\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && code2 > -1 && regex.test(String.fromCharCode(code2));\n }\n}\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\nconst convert = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function(test) {\n if (test === null || test === void 0) {\n return ok;\n }\n if (typeof test === \"function\") {\n return castFactory(test);\n }\n if (typeof test === \"object\") {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test);\n }\n if (typeof test === \"string\") {\n return typeFactory(test);\n }\n throw new Error(\"Expected function, string, or object as test\");\n }\n);\nfunction anyFactory(tests) {\n const checks = [];\n let index = -1;\n while (++index < tests.length) {\n checks[index] = convert(tests[index]);\n }\n return castFactory(any);\n function any(...parameters) {\n let index2 = -1;\n while (++index2 < checks.length) {\n if (checks[index2].apply(this, parameters)) return true;\n }\n return false;\n }\n}\nfunction propsFactory(check) {\n const checkAsRecord = (\n /** @type {Record<string, unknown>} */\n check\n );\n return castFactory(all2);\n function all2(node2) {\n const nodeAsRecord = (\n /** @type {Record<string, unknown>} */\n /** @type {unknown} */\n node2\n );\n let key;\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false;\n }\n return true;\n }\n}\nfunction typeFactory(check) {\n return castFactory(type);\n function type(node2) {\n return node2 && node2.type === check;\n }\n}\nfunction castFactory(testFunction) {\n return check;\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) && testFunction.call(\n this,\n value,\n typeof index === \"number\" ? index : void 0,\n parent || void 0\n )\n );\n }\n}\nfunction ok() {\n return true;\n}\nfunction looksLikeANode(value) {\n return value !== null && typeof value === \"object\" && \"type\" in value;\n}\nfunction color(d) {\n return d;\n}\nconst empty = [];\nconst CONTINUE = true;\nconst EXIT = false;\nconst SKIP = \"skip\";\nfunction visitParents(tree, test, visitor, reverse) {\n let check;\n {\n check = test;\n }\n const is = convert(check);\n const step = 1;\n factory(tree, void 0, [])();\n function factory(node2, index, parents) {\n const value = (\n /** @type {Record<string, unknown>} */\n node2 && typeof node2 === \"object\" ? node2 : {}\n );\n if (typeof value.type === \"string\") {\n const name = (\n // `hast`\n typeof value.tagName === \"string\" ? value.tagName : (\n // `xast`\n typeof value.name === \"string\" ? value.name : void 0\n )\n );\n Object.defineProperty(visit2, \"name\", {\n value: \"node (\" + color(node2.type + (name ? \"<\" + name + \">\" : \"\")) + \")\"\n });\n }\n return visit2;\n function visit2() {\n let result = empty;\n let subresult;\n let offset;\n let grandparents;\n if (is(node2, index, parents[parents.length - 1] || void 0)) {\n result = toResult(visitor(node2, parents));\n if (result[0] === EXIT) {\n return result;\n }\n }\n if (\"children\" in node2 && node2.children) {\n const nodeAsParent = (\n /** @type {UnistParent} */\n node2\n );\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = -1 + step;\n grandparents = parents.concat(nodeAsParent);\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset];\n subresult = factory(child, offset, grandparents)();\n if (subresult[0] === EXIT) {\n return subresult;\n }\n offset = typeof subresult[1] === \"number\" ? subresult[1] : offset + step;\n }\n }\n }\n return result;\n }\n }\n}\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === \"number\") {\n return [CONTINUE, value];\n }\n return value === null || value === void 0 ? empty : [value];\n}\nfunction findAndReplace(tree, list2, options) {\n const settings = options || {};\n const ignored = convert(settings.ignore || []);\n const pairs = toPairs(list2);\n let pairIndex = -1;\n while (++pairIndex < pairs.length) {\n visitParents(tree, \"text\", visitor);\n }\n function visitor(node2, parents) {\n let index = -1;\n let grandparent;\n while (++index < parents.length) {\n const parent = parents[index];\n const siblings = grandparent ? grandparent.children : void 0;\n if (ignored(\n parent,\n siblings ? siblings.indexOf(parent) : void 0,\n grandparent\n )) {\n return;\n }\n grandparent = parent;\n }\n if (grandparent) {\n return handler(node2, parents);\n }\n }\n function handler(node2, parents) {\n const parent = parents[parents.length - 1];\n const find = pairs[pairIndex][0];\n const replace2 = pairs[pairIndex][1];\n let start = 0;\n const siblings = parent.children;\n const index = siblings.indexOf(node2);\n let change = false;\n let nodes = [];\n find.lastIndex = 0;\n let match = find.exec(node2.value);\n while (match) {\n const position = match.index;\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node2]\n };\n let value = replace2(...match, matchObject);\n if (typeof value === \"string\") {\n value = value.length > 0 ? { type: \"text\", value } : void 0;\n }\n if (value === false) {\n find.lastIndex = position + 1;\n } else {\n if (start !== position) {\n nodes.push({\n type: \"text\",\n value: node2.value.slice(start, position)\n });\n }\n if (Array.isArray(value)) {\n nodes.push(...value);\n } else if (value) {\n nodes.push(value);\n }\n start = position + match[0].length;\n change = true;\n }\n if (!find.global) {\n break;\n }\n match = find.exec(node2.value);\n }\n if (change) {\n if (start < node2.value.length) {\n nodes.push({ type: \"text\", value: node2.value.slice(start) });\n }\n parent.children.splice(index, 1, ...nodes);\n } else {\n nodes = [node2];\n }\n return index + nodes.length;\n }\n}\nfunction toPairs(tupleOrList) {\n const result = [];\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError(\"Expected find and replace tuple or list of tuples\");\n }\n const list2 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];\n let index = -1;\n while (++index < list2.length) {\n const tuple = list2[index];\n result.push([toExpression(tuple[0]), toFunction(tuple[1])]);\n }\n return result;\n}\nfunction toExpression(find) {\n return typeof find === \"string\" ? new RegExp(escapeStringRegexp(find), \"g\") : find;\n}\nfunction toFunction(replace2) {\n return typeof replace2 === \"function\" ? replace2 : function() {\n return replace2;\n };\n}\nconst inConstruct = \"phrasing\";\nconst notInConstruct = [\"autolink\", \"link\", \"image\", \"label\"];\nfunction gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n };\n}\nfunction gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: \"@\",\n before: \"[+\\\\-.\\\\w]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \".\",\n before: \"[Ww]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \":\",\n before: \"[ps]\",\n after: \"\\\\/\",\n inConstruct,\n notInConstruct\n }\n ]\n };\n}\nfunction enterLiteralAutolink(token) {\n this.enter({ type: \"link\", title: null, url: \"\", children: [] }, token);\n}\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token);\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"link\");\n node2.url = \"http://\" + this.sliceSerialize(token);\n}\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token);\n}\nfunction exitLiteralAutolink(token) {\n this.exit(token);\n}\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n { ignore: [\"link\", \"linkReference\"] }\n );\n}\nfunction findUrl(_, protocol, domain2, path2, match) {\n let prefix = \"\";\n if (!previous(match)) {\n return false;\n }\n if (/^w/i.test(protocol)) {\n domain2 = protocol + domain2;\n protocol = \"\";\n prefix = \"http://\";\n }\n if (!isCorrectDomain(domain2)) {\n return false;\n }\n const parts = splitUrl(domain2 + path2);\n if (!parts[0]) return false;\n const result = {\n type: \"link\",\n title: null,\n url: prefix + protocol + parts[0],\n children: [{ type: \"text\", value: protocol + parts[0] }]\n };\n if (parts[1]) {\n return [result, { type: \"text\", value: parts[1] }];\n }\n return result;\n}\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) || // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false;\n }\n return {\n type: \"link\",\n title: null,\n url: \"mailto:\" + atext + \"@\" + label,\n children: [{ type: \"text\", value: atext + \"@\" + label }]\n };\n}\nfunction isCorrectDomain(domain2) {\n const parts = domain2.split(\".\");\n if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 2]))) {\n return false;\n }\n return true;\n}\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url);\n if (!trailExec) {\n return [url, void 0];\n }\n url = url.slice(0, trailExec.index);\n let trail2 = trailExec[0];\n let closingParenIndex = trail2.indexOf(\")\");\n const openingParens = ccount(url, \"(\");\n let closingParens = ccount(url, \")\");\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail2.slice(0, closingParenIndex + 1);\n trail2 = trail2.slice(closingParenIndex + 1);\n closingParenIndex = trail2.indexOf(\")\");\n closingParens++;\n }\n return [url, trail2];\n}\nfunction previous(match, email) {\n const code2 = match.input.charCodeAt(match.index - 1);\n return (match.index === 0 || unicodeWhitespace(code2) || unicodePunctuation(code2)) && (!email || code2 !== 47);\n}\nfunction normalizeIdentifier(value) {\n return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nfootnoteReference.peek = footnoteReferencePeek;\nfunction gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n };\n}\nfunction gfmFootnoteToMarkdown() {\n return {\n // This is on by default already.\n unsafe: [{ character: \"[\", inConstruct: [\"phrasing\", \"label\", \"reference\"] }],\n handlers: { footnoteDefinition, footnoteReference }\n };\n}\nfunction enterFootnoteDefinition(token) {\n this.enter(\n { type: \"footnoteDefinition\", identifier: \"\", label: \"\", children: [] },\n token\n );\n}\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer();\n}\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume();\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"footnoteDefinition\");\n node2.label = label;\n node2.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n}\nfunction exitFootnoteDefinition(token) {\n this.exit(token);\n}\nfunction enterFootnoteCall(token) {\n this.enter({ type: \"footnoteReference\", identifier: \"\", label: \"\" }, token);\n}\nfunction enterFootnoteCallString() {\n this.buffer();\n}\nfunction exitFootnoteCallString(token) {\n const label = this.resume();\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"footnoteReference\");\n node2.label = label;\n node2.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n}\nfunction exitFootnoteCall(token) {\n this.exit(token);\n}\nfunction footnoteReference(node2, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteReference\");\n const subexit = state.enter(\"reference\");\n value += tracker.move(\n state.safe(state.associationId(node2), {\n ...tracker.current(),\n before: value,\n after: \"]\"\n })\n );\n subexit();\n exit2();\n value += tracker.move(\"]\");\n return value;\n}\nfunction footnoteReferencePeek() {\n return \"[\";\n}\nfunction footnoteDefinition(node2, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteDefinition\");\n const subexit = state.enter(\"label\");\n value += tracker.move(\n state.safe(state.associationId(node2), {\n ...tracker.current(),\n before: value,\n after: \"]\"\n })\n );\n subexit();\n value += tracker.move(\n \"]:\" + (node2.children && node2.children.length > 0 ? \" \" : \"\")\n );\n tracker.shift(4);\n value += tracker.move(\n state.indentLines(state.containerFlow(node2, tracker.current()), map$2)\n );\n exit2();\n return value;\n}\nfunction map$2(line, index, blank) {\n if (index === 0) {\n return line;\n }\n return (blank ? \"\" : \" \") + line;\n}\nconst constructsWithoutStrikethrough = [\n \"autolink\",\n \"destinationLiteral\",\n \"destinationRaw\",\n \"reference\",\n \"titleQuote\",\n \"titleApostrophe\"\n];\nhandleDelete.peek = peekDelete;\nfunction gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: [\"delete\"],\n enter: { strikethrough: enterStrikethrough },\n exit: { strikethrough: exitStrikethrough }\n };\n}\nfunction gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: \"~\",\n inConstruct: \"phrasing\",\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: { delete: handleDelete }\n };\n}\nfunction enterStrikethrough(token) {\n this.enter({ type: \"delete\", children: [] }, token);\n}\nfunction exitStrikethrough(token) {\n this.exit(token);\n}\nfunction handleDelete(node2, _, state, info) {\n const tracker = state.createTracker(info);\n const exit2 = state.enter(\"strikethrough\");\n let value = tracker.move(\"~~\");\n value += state.containerPhrasing(node2, {\n ...tracker.current(),\n before: value,\n after: \"~\"\n });\n value += tracker.move(\"~~\");\n exit2();\n return value;\n}\nfunction peekDelete() {\n return \"~\";\n}\nfunction markdownTable(table, options = {}) {\n const align = (options.align || []).concat();\n const stringLength = options.stringLength || defaultStringLength;\n const alignments = [];\n const cellMatrix = [];\n const sizeMatrix = [];\n const longestCellByColumn = [];\n let mostCellsPerRow = 0;\n let rowIndex = -1;\n while (++rowIndex < table.length) {\n const row2 = [];\n const sizes2 = [];\n let columnIndex2 = -1;\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length;\n }\n while (++columnIndex2 < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex2]);\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell);\n sizes2[columnIndex2] = size;\n if (longestCellByColumn[columnIndex2] === void 0 || size > longestCellByColumn[columnIndex2]) {\n longestCellByColumn[columnIndex2] = size;\n }\n }\n row2.push(cell);\n }\n cellMatrix[rowIndex] = row2;\n sizeMatrix[rowIndex] = sizes2;\n }\n let columnIndex = -1;\n if (typeof align === \"object\" && \"length\" in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex]);\n }\n } else {\n const code2 = toAlignment(align);\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code2;\n }\n }\n columnIndex = -1;\n const row = [];\n const sizes = [];\n while (++columnIndex < mostCellsPerRow) {\n const code2 = alignments[columnIndex];\n let before = \"\";\n let after = \"\";\n if (code2 === 99) {\n before = \":\";\n after = \":\";\n } else if (code2 === 108) {\n before = \":\";\n } else if (code2 === 114) {\n after = \":\";\n }\n let size = options.alignDelimiters === false ? 1 : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n );\n const cell = before + \"-\".repeat(size) + after;\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length;\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size;\n }\n sizes[columnIndex] = size;\n }\n row[columnIndex] = cell;\n }\n cellMatrix.splice(1, 0, row);\n sizeMatrix.splice(1, 0, sizes);\n rowIndex = -1;\n const lines = [];\n while (++rowIndex < cellMatrix.length) {\n const row2 = cellMatrix[rowIndex];\n const sizes2 = sizeMatrix[rowIndex];\n columnIndex = -1;\n const line = [];\n while (++columnIndex < mostCellsPerRow) {\n const cell = row2[columnIndex] || \"\";\n let before = \"\";\n let after = \"\";\n if (options.alignDelimiters !== false) {\n const size = longestCellByColumn[columnIndex] - (sizes2[columnIndex] || 0);\n const code2 = alignments[columnIndex];\n if (code2 === 114) {\n before = \" \".repeat(size);\n } else if (code2 === 99) {\n if (size % 2) {\n before = \" \".repeat(size / 2 + 0.5);\n after = \" \".repeat(size / 2 - 0.5);\n } else {\n before = \" \".repeat(size / 2);\n after = before;\n }\n } else {\n after = \" \".repeat(size);\n }\n }\n if (options.delimiterStart !== false && !columnIndex) {\n line.push(\"|\");\n }\n if (options.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === \"\") && (options.delimiterStart !== false || columnIndex)) {\n line.push(\" \");\n }\n if (options.alignDelimiters !== false) {\n line.push(before);\n }\n line.push(cell);\n if (options.alignDelimiters !== false) {\n line.push(after);\n }\n if (options.padding !== false) {\n line.push(\" \");\n }\n if (options.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1) {\n line.push(\"|\");\n }\n }\n lines.push(\n options.delimiterEnd === false ? line.join(\"\").replace(/ +$/, \"\") : line.join(\"\")\n );\n }\n return lines.join(\"\\n\");\n}\nfunction serialize(value) {\n return value === null || value === void 0 ? \"\" : String(value);\n}\nfunction defaultStringLength(value) {\n return value.length;\n}\nfunction toAlignment(value) {\n const code2 = typeof value === \"string\" ? value.codePointAt(0) : 0;\n return code2 === 67 || code2 === 99 ? 99 : code2 === 76 || code2 === 108 ? 108 : code2 === 82 || code2 === 114 ? 114 : 0;\n}\nfunction blockquote(node2, _, state, info) {\n const exit2 = state.enter(\"blockquote\");\n const tracker = state.createTracker(info);\n tracker.move(\"> \");\n tracker.shift(2);\n const value = state.indentLines(\n state.containerFlow(node2, tracker.current()),\n map$1\n );\n exit2();\n return value;\n}\nfunction map$1(line, _, blank) {\n return \">\" + (blank ? \"\" : \" \") + line;\n}\nfunction patternInScope(stack, pattern) {\n return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);\n}\nfunction listInScope(stack, list2, none) {\n if (typeof list2 === \"string\") {\n list2 = [list2];\n }\n if (!list2 || list2.length === 0) {\n return none;\n }\n let index = -1;\n while (++index < list2.length) {\n if (stack.includes(list2[index])) {\n return true;\n }\n }\n return false;\n}\nfunction hardBreak(_, _1, state, info) {\n let index = -1;\n while (++index < state.unsafe.length) {\n if (state.unsafe[index].character === \"\\n\" && patternInScope(state.stack, state.unsafe[index])) {\n return /[ \\t]/.test(info.before) ? \"\" : \" \";\n }\n }\n return \"\\\\\\n\";\n}\nfunction longestStreak(value, substring) {\n const source = String(value);\n let index = source.indexOf(substring);\n let expected = index;\n let count = 0;\n let max = 0;\n if (typeof substring !== \"string\") {\n throw new TypeError(\"Expected substring\");\n }\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count;\n }\n } else {\n count = 1;\n }\n expected = index + substring.length;\n index = source.indexOf(substring, expected);\n }\n return max;\n}\nfunction formatCodeAsIndented(node2, state) {\n return Boolean(\n state.options.fences === false && node2.value && // If there’s no info…\n !node2.lang && // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node2.value) && // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node2.value)\n );\n}\nfunction checkFence(state) {\n const marker = state.options.fence || \"`\";\n if (marker !== \"`\" && marker !== \"~\") {\n throw new Error(\n \"Cannot serialize code with `\" + marker + \"` for `options.fence`, expected `` ` `` or `~`\"\n );\n }\n return marker;\n}\nfunction code$1(node2, _, state, info) {\n const marker = checkFence(state);\n const raw = node2.value || \"\";\n const suffix = marker === \"`\" ? \"GraveAccent\" : \"Tilde\";\n if (formatCodeAsIndented(node2, state)) {\n const exit3 = state.enter(\"codeIndented\");\n const value2 = state.indentLines(raw, map);\n exit3();\n return value2;\n }\n const tracker = state.createTracker(info);\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3));\n const exit2 = state.enter(\"codeFenced\");\n let value = tracker.move(sequence);\n if (node2.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`);\n value += tracker.move(\n state.safe(node2.lang, {\n before: value,\n after: \" \",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n if (node2.lang && node2.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`);\n value += tracker.move(\" \");\n value += tracker.move(\n state.safe(node2.meta, {\n before: value,\n after: \"\\n\",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n value += tracker.move(\"\\n\");\n if (raw) {\n value += tracker.move(raw + \"\\n\");\n }\n value += tracker.move(sequence);\n exit2();\n return value;\n}\nfunction map(line, _, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nfunction checkQuote(state) {\n const marker = state.options.quote || '\"';\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n \"Cannot serialize title with `\" + marker + \"` for `options.quote`, expected `\\\"`, or `'`\"\n );\n }\n return marker;\n}\nfunction definition(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"definition\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"]: \");\n subexit();\n if (\n // If there’s no url, or…\n !node2.url || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \"\\n\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n exit2();\n return value;\n}\nfunction checkEmphasis(state) {\n const marker = state.options.emphasis || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize emphasis with `\" + marker + \"` for `options.emphasis`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nemphasis.peek = emphasisPeek;\nfunction emphasis(node2, _, state, info) {\n const marker = checkEmphasis(state);\n const exit2 = state.enter(\"emphasis\");\n const tracker = state.createTracker(info);\n let value = tracker.move(marker);\n value += tracker.move(\n state.containerPhrasing(node2, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n );\n value += tracker.move(marker);\n exit2();\n return value;\n}\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || \"*\";\n}\nconst emptyOptions$1 = {};\nfunction toString(value, options) {\n const settings = emptyOptions$1;\n const includeImageAlt = typeof settings.includeImageAlt === \"boolean\" ? settings.includeImageAlt : true;\n const includeHtml = typeof settings.includeHtml === \"boolean\" ? settings.includeHtml : true;\n return one(value, includeImageAlt, includeHtml);\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 if (includeImageAlt && \"alt\" in value && value.alt) {\n return value.alt;\n }\n if (\"children\" in value) {\n return all(value.children, includeImageAlt, includeHtml);\n }\n }\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml);\n }\n return \"\";\n}\nfunction all(values, includeImageAlt, includeHtml) {\n const result = [];\n let index = -1;\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml);\n }\n return result.join(\"\");\n}\nfunction node(value) {\n return Boolean(value && typeof value === \"object\");\n}\nfunction formatHeadingAsSetext(node2, state) {\n let literalWithBreak = false;\n visit(node2, function(node3) {\n if (\"value\" in node3 && /\\r?\\n|\\r/.test(node3.value) || node3.type === \"break\") {\n literalWithBreak = true;\n return EXIT$1;\n }\n });\n return Boolean(\n (!node2.depth || node2.depth < 3) && toString(node2) && (state.options.setext || literalWithBreak)\n );\n}\nfunction heading(node2, _, state, info) {\n const rank = Math.max(Math.min(6, node2.depth || 1), 1);\n const tracker = state.createTracker(info);\n if (formatHeadingAsSetext(node2, state)) {\n const exit3 = state.enter(\"headingSetext\");\n const subexit2 = state.enter(\"phrasing\");\n const value2 = state.containerPhrasing(node2, {\n ...tracker.current(),\n before: \"\\n\",\n after: \"\\n\"\n });\n subexit2();\n exit3();\n return value2 + \"\\n\" + (rank === 1 ? \"=\" : \"-\").repeat(\n // The whole size…\n value2.length - // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value2.lastIndexOf(\"\\r\"), value2.lastIndexOf(\"\\n\")) + 1)\n );\n }\n const sequence = \"#\".repeat(rank);\n const exit2 = state.enter(\"headingAtx\");\n const subexit = state.enter(\"phrasing\");\n tracker.move(sequence + \" \");\n let value = state.containerPhrasing(node2, {\n before: \"# \",\n after: \"\\n\",\n ...tracker.current()\n });\n if (/^[\\t ]/.test(value)) {\n value = \"&#x\" + value.charCodeAt(0).toString(16).toUpperCase() + \";\" + value.slice(1);\n }\n value = value ? sequence + \" \" + value : sequence;\n if (state.options.closeAtx) {\n value += \" \" + sequence;\n }\n subexit();\n exit2();\n return value;\n}\nhtml.peek = htmlPeek;\nfunction html(node2) {\n return node2.value || \"\";\n}\nfunction htmlPeek() {\n return \"<\";\n}\nimage.peek = imagePeek;\nfunction image(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"image\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n value += tracker.move(\n state.safe(node2.alt, { before: value, after: \"]\", ...tracker.current() })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node2.url && node2.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction imagePeek() {\n return \"!\";\n}\nimageReference.peek = imageReferencePeek;\nfunction imageReference(node2, _, state, info) {\n const type = node2.referenceType;\n const exit2 = state.enter(\"imageReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n const alt = state.safe(node2.alt, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(alt + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !alt || alt !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction imageReferencePeek() {\n return \"!\";\n}\ninlineCode.peek = inlineCodePeek;\nfunction inlineCode(node2, _, state) {\n let value = node2.value || \"\";\n let sequence = \"`\";\n let index = -1;\n while (new RegExp(\"(^|[^`])\" + sequence + \"([^`]|$)\").test(value)) {\n sequence += \"`\";\n }\n if (/[^ \\r\\n]/.test(value) && (/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value) || /^`|`$/.test(value))) {\n value = \" \" + value + \" \";\n }\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index];\n const expression = state.compilePattern(pattern);\n let match;\n if (!pattern.atBreak) continue;\n while (match = expression.exec(value)) {\n let position = match.index;\n if (value.charCodeAt(position) === 10 && value.charCodeAt(position - 1) === 13) {\n position--;\n }\n value = value.slice(0, position) + \" \" + value.slice(match.index + 1);\n }\n }\n return sequence + value + sequence;\n}\nfunction inlineCodePeek() {\n return \"`\";\n}\nfunction formatLinkAsAutolink(node2, state) {\n const raw = toString(node2);\n return Boolean(\n !state.options.resourceLink && // If there’s a url…\n node2.url && // And there’s a no title…\n !node2.title && // And the content of `node` is a single text node…\n node2.children && node2.children.length === 1 && node2.children[0].type === \"text\" && // And if the url is the same as the content…\n (raw === node2.url || \"mailto:\" + raw === node2.url) && // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node2.url) && // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node2.url)\n );\n}\nlink.peek = linkPeek;\nfunction link(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const tracker = state.createTracker(info);\n let exit2;\n let subexit;\n if (formatLinkAsAutolink(node2, state)) {\n const stack = state.stack;\n state.stack = [];\n exit2 = state.enter(\"autolink\");\n let value2 = tracker.move(\"<\");\n value2 += tracker.move(\n state.containerPhrasing(node2, {\n before: value2,\n after: \">\",\n ...tracker.current()\n })\n );\n value2 += tracker.move(\">\");\n exit2();\n state.stack = stack;\n return value2;\n }\n exit2 = state.enter(\"link\");\n subexit = state.enter(\"label\");\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.containerPhrasing(node2, {\n before: value,\n after: \"](\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node2.url && node2.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction linkPeek(node2, _, state) {\n return formatLinkAsAutolink(node2, state) ? \"<\" : \"[\";\n}\nlinkReference.peek = linkReferencePeek;\nfunction linkReference(node2, _, state, info) {\n const type = node2.referenceType;\n const exit2 = state.enter(\"linkReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n const text2 = state.containerPhrasing(node2, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(text2 + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !text2 || text2 !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction linkReferencePeek() {\n return \"[\";\n}\nfunction checkBullet(state) {\n const marker = state.options.bullet || \"*\";\n if (marker !== \"*\" && marker !== \"+\" && marker !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bullet`, expected `*`, `+`, or `-`\"\n );\n }\n return marker;\n}\nfunction checkBulletOther(state) {\n const bullet = checkBullet(state);\n const bulletOther = state.options.bulletOther;\n if (!bulletOther) {\n return bullet === \"*\" ? \"-\" : \"*\";\n }\n if (bulletOther !== \"*\" && bulletOther !== \"+\" && bulletOther !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + bulletOther + \"` for `options.bulletOther`, expected `*`, `+`, or `-`\"\n );\n }\n if (bulletOther === bullet) {\n throw new Error(\n \"Expected `bullet` (`\" + bullet + \"`) and `bulletOther` (`\" + bulletOther + \"`) to be different\"\n );\n }\n return bulletOther;\n}\nfunction checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || \".\";\n if (marker !== \".\" && marker !== \")\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bulletOrdered`, expected `.` or `)`\"\n );\n }\n return marker;\n}\nfunction checkRule(state) {\n const marker = state.options.rule || \"*\";\n if (marker !== \"*\" && marker !== \"-\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize rules with `\" + marker + \"` for `options.rule`, expected `*`, `-`, or `_`\"\n );\n }\n return marker;\n}\nfunction list(node2, parent, state, info) {\n const exit2 = state.enter(\"list\");\n const bulletCurrent = state.bulletCurrent;\n let bullet = node2.ordered ? checkBulletOrdered(state) : checkBullet(state);\n const bulletOther = node2.ordered ? bullet === \".\" ? \")\" : \".\" : checkBulletOther(state);\n let useDifferentMarker = parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false;\n if (!node2.ordered) {\n const firstListItem = node2.children ? node2.children[0] : void 0;\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === \"*\" || bullet === \"-\") && // Empty first list item:\n firstListItem && (!firstListItem.children || !firstListItem.children[0]) && // Directly in two other list items:\n state.stack[state.stack.length - 1] === \"list\" && state.stack[state.stack.length - 2] === \"listItem\" && state.stack[state.stack.length - 3] === \"list\" && state.stack[state.stack.length - 4] === \"listItem\" && // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 && state.indexStack[state.indexStack.length - 2] === 0 && state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true;\n }\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1;\n while (++index < node2.children.length) {\n const item = node2.children[index];\n if (item && item.type === \"listItem\" && item.children && item.children[0] && item.children[0].type === \"thematicBreak\") {\n useDifferentMarker = true;\n break;\n }\n }\n }\n }\n if (useDifferentMarker) {\n bullet = bulletOther;\n }\n state.bulletCurrent = bullet;\n const value = state.containerFlow(node2, info);\n state.bulletLastUsed = bullet;\n state.bulletCurrent = bulletCurrent;\n exit2();\n return value;\n}\nfunction checkListItemIndent(state) {\n const style = state.options.listItemIndent || \"one\";\n if (style !== \"tab\" && style !== \"one\" && style !== \"mixed\") {\n throw new Error(\n \"Cannot serialize items with `\" + style + \"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`\"\n );\n }\n return style;\n}\nfunction listItem(node2, parent, state, info) {\n const listItemIndent = checkListItemIndent(state);\n let bullet = state.bulletCurrent || checkBullet(state);\n if (parent && parent.type === \"list\" && parent.ordered) {\n bullet = (typeof parent.start === \"number\" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node2)) + bullet;\n }\n let size = bullet.length + 1;\n if (listItemIndent === \"tab\" || listItemIndent === \"mixed\" && (parent && parent.type === \"list\" && parent.spread || node2.spread)) {\n size = Math.ceil(size / 4) * 4;\n }\n const tracker = state.createTracker(info);\n tracker.move(bullet + \" \".repeat(size - bullet.length));\n tracker.shift(size);\n const exit2 = state.enter(\"listItem\");\n const value = state.indentLines(\n state.containerFlow(node2, tracker.current()),\n map2\n );\n exit2();\n return value;\n function map2(line, index, blank) {\n if (index) {\n return (blank ? \"\" : \" \".repeat(size)) + line;\n }\n return (blank ? bullet : bullet + \" \".repeat(size - bullet.length)) + line;\n }\n}\nfunction paragraph(node2, _, state, info) {\n const exit2 = state.enter(\"paragraph\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node2, info);\n subexit();\n exit2();\n return value;\n}\nconst phrasing = (\n /** @type {(node?: unknown) => node is Exclude<PhrasingContent, Html>} */\n convert([\n \"break\",\n \"delete\",\n \"emphasis\",\n // To do: next major: removed since footnotes were added to GFM.\n \"footnote\",\n \"footnoteReference\",\n \"image\",\n \"imageReference\",\n \"inlineCode\",\n // Enabled by `mdast-util-math`:\n \"inlineMath\",\n \"link\",\n \"linkReference\",\n // Enabled by `mdast-util-mdx`:\n \"mdxJsxTextElement\",\n // Enabled by `mdast-util-mdx`:\n \"mdxTextExpression\",\n \"strong\",\n \"text\",\n // Enabled by `mdast-util-directive`:\n \"textDirective\"\n ])\n);\nfunction root(node2, _, state, info) {\n const hasPhrasing = node2.children.some(function(d) {\n return phrasing(d);\n });\n const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow;\n return fn.call(state, node2, info);\n}\nfunction checkStrong(state) {\n const marker = state.options.strong || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize strong with `\" + marker + \"` for `options.strong`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nstrong.peek = strongPeek;\nfunction strong(node2, _, state, info) {\n const marker = checkStrong(state);\n const exit2 = state.enter(\"strong\");\n const tracker = state.createTracker(info);\n let value = tracker.move(marker + marker);\n value += tracker.move(\n state.containerPhrasing(node2, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n );\n value += tracker.move(marker + marker);\n exit2();\n return value;\n}\nfunction strongPeek(_, _1, state) {\n return state.options.strong || \"*\";\n}\nfunction text$1(node2, _, state, info) {\n return state.safe(node2.value, info);\n}\nfunction checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3;\n if (repetition < 3) {\n throw new Error(\n \"Cannot serialize rules with repetition `\" + repetition + \"` for `options.ruleRepetition`, expected `3` or more\"\n );\n }\n return repetition;\n}\nfunction thematicBreak(_, _1, state) {\n const value = (checkRule(state) + (state.options.ruleSpaces ? \" \" : \"\")).repeat(checkRuleRepetition(state));\n return state.options.ruleSpaces ? value.slice(0, -1) : value;\n}\nconst handle = {\n blockquote,\n break: hardBreak,\n code: code$1,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text: text$1,\n thematicBreak\n};\nfunction gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n };\n}\nfunction enterTable(token) {\n const align = token._align;\n this.enter(\n {\n type: \"table\",\n align: align.map(function(d) {\n return d === \"none\" ? null : d;\n }),\n children: []\n },\n token\n );\n this.data.inTable = true;\n}\nfunction exitTable(token) {\n this.exit(token);\n this.data.inTable = void 0;\n}\nfunction enterRow(token) {\n this.enter({ type: \"tableRow\", children: [] }, token);\n}\nfunction exit(token) {\n this.exit(token);\n}\nfunction enterCell(token) {\n this.enter({ type: \"tableCell\", children: [] }, token);\n}\nfunction exitCodeText(token) {\n let value = this.resume();\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"inlineCode\");\n node2.value = value;\n this.exit(token);\n}\nfunction replace($0, $1) {\n return $1 === \"|\" ? $1 : $0;\n}\nfunction gfmTableToMarkdown(options) {\n const settings = options || {};\n const padding = settings.tableCellPadding;\n const alignDelimiters = settings.tablePipeAlign;\n const stringLength = settings.stringLength;\n const around = padding ? \" \" : \"|\";\n return {\n unsafe: [\n { character: \"\\r\", inConstruct: \"tableCell\" },\n { character: \"\\n\", inConstruct: \"tableCell\" },\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n { atBreak: true, character: \"|\", after: \"[\t :-]\" },\n // A pipe in a cell must be encoded.\n { character: \"|\", inConstruct: \"tableCell\" },\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n { atBreak: true, character: \":\", after: \"-\" },\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n { atBreak: true, character: \"-\", after: \"[:|-]\" }\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n };\n function handleTable(node2, _, state, info) {\n return serializeData(handleTableAsData(node2, state, info), node2.align);\n }\n function handleTableRow(node2, _, state, info) {\n const row = handleTableRowAsData(node2, state, info);\n const value = serializeData([row]);\n return value.slice(0, value.indexOf(\"\\n\"));\n }\n function handleTableCell(node2, _, state, info) {\n const exit2 = state.enter(\"tableCell\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node2, {\n ...info,\n before: around,\n after: around\n });\n subexit();\n exit2();\n return value;\n }\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n });\n }\n function handleTableAsData(node2, state, info) {\n const children = node2.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"table\");\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info);\n }\n subexit();\n return result;\n }\n function handleTableRowAsData(node2, state, info) {\n const children = node2.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"tableRow\");\n while (++index < children.length) {\n result[index] = handleTableCell(children[index], node2, state, info);\n }\n subexit();\n return result;\n }\n function inlineCodeWithTable(node2, parent, state) {\n let value = handle.inlineCode(node2, parent, state);\n if (state.stack.includes(\"tableCell\")) {\n value = value.replace(/\\|/g, \"\\\\$&\");\n }\n return value;\n }\n}\nfunction gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n };\n}\nfunction gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{ atBreak: true, character: \"-\", after: \"[:|-]\" }],\n handlers: { listItem: listItemWithTaskListItem }\n };\n}\nfunction exitCheck(token) {\n const node2 = this.stack[this.stack.length - 2];\n ok$1(node2.type === \"listItem\");\n node2.checked = token.type === \"taskListCheckValueChecked\";\n}\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2];\n if (parent && parent.type === \"listItem\" && typeof parent.checked === \"boolean\") {\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"paragraph\");\n const head = node2.children[0];\n if (head && head.type === \"text\") {\n const siblings = parent.children;\n let index = -1;\n let firstParaghraph;\n while (++index < siblings.length) {\n const sibling = siblings[index];\n if (sibling.type === \"paragraph\") {\n firstParaghraph = sibling;\n break;\n }\n }\n if (firstParaghraph === node2) {\n head.value = head.value.slice(1);\n if (head.value.length === 0) {\n node2.children.shift();\n } else if (node2.position && head.position && typeof head.position.start.offset === \"number\") {\n head.position.start.column++;\n head.position.start.offset++;\n node2.position.start = Object.assign({}, head.position.start);\n }\n }\n }\n }\n this.exit(token);\n}\nfunction listItemWithTaskListItem(node2, parent, state, info) {\n const head = node2.children[0];\n const checkable = typeof node2.checked === \"boolean\" && head && head.type === \"paragraph\";\n const checkbox = \"[\" + (node2.checked ? \"x\" : \" \") + \"] \";\n const tracker = state.createTracker(info);\n if (checkable) {\n tracker.move(checkbox);\n }\n let value = handle.listItem(node2, parent, state, {\n ...info,\n ...tracker.current()\n });\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check);\n }\n return value;\n function check($0) {\n return $0 + checkbox;\n }\n}\nfunction gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ];\n}\nfunction gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n };\n}\nfunction splice(list2, start, remove, items) {\n const end = list2.length;\n let chunkStart = 0;\n let parameters;\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 if (items.length < 1e4) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n list2.splice(...parameters);\n } else {\n if (remove) list2.splice(start, remove);\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 1e4);\n parameters.unshift(start, 0);\n list2.splice(...parameters);\n chunkStart += 1e4;\n start += 1e4;\n }\n }\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n const all2 = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all2, extensions[index]);\n }\n return all2;\n}\nfunction syntaxExtension(all2, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all2, hook) ? all2[hook] : void 0;\n const left = maybe || (all2[hook] = {});\n const right = extension[hook];\n let code2;\n if (right) {\n for (code2 in right) {\n if (!hasOwnProperty.call(left, code2)) left[code2] = [];\n const value = right[code2];\n constructs(\n // @ts-expect-error Looks like a list.\n left[code2],\n Array.isArray(value) ? value : value ? [value] : []\n );\n }\n }\n }\n}\nfunction constructs(existing, list2) {\n let index = -1;\n const before = [];\n while (++index < list2.length) {\n (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n }\n splice(existing, 0, 0, before);\n}\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\nconst text = {};\nfunction gfmAutolinkLiteral() {\n return {\n text\n };\n}\nlet code = 48;\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;\n else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok2, nok) {\n const self = this;\n let dot;\n let data;\n return start;\n function start(code2) {\n if (!gfmAtext(code2) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code2);\n }\n function atext(code2) {\n if (gfmAtext(code2)) {\n effects.consume(code2);\n return atext;\n }\n if (code2 === 64) {\n effects.consume(code2);\n return emailDomain;\n }\n return nok(code2);\n }\n function emailDomain(code2) {\n if (code2 === 46) {\n return effects.check(\n emailDomainDotTrail,\n emailDomainAfter,\n emailDomainDot\n )(code2);\n }\n if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n data = true;\n effects.consume(code2);\n return emailDomain;\n }\n return emailDomainAfter(code2);\n }\n function emailDomainDot(code2) {\n effects.consume(code2);\n dot = true;\n return emailDomain;\n }\n function emailDomainAfter(code2) {\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeWwwAutolink(effects, ok2, nok) {\n const self = this;\n return wwwStart;\n function wwwStart(code2) {\n if (code2 !== 87 && code2 !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n return effects.check(\n wwwPrefix,\n effects.attempt(domain, effects.attempt(path, wwwAfter), nok),\n nok\n )(code2);\n }\n function wwwAfter(code2) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeProtocolAutolink(effects, ok2, nok) {\n const self = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n function protocolStart(code2) {\n if ((code2 === 72 || code2 === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n return nok(code2);\n }\n function protocolPrefixInside(code2) {\n if (asciiAlpha(code2) && buffer.length < 5) {\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n if (code2 === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code2);\n return protocolSlashesInside;\n }\n }\n return nok(code2);\n }\n function protocolSlashesInside(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code2);\n }\n function afterProtocol(code2) {\n return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n }\n function protocolAfter(code2) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeWwwPrefix(effects, ok2, nok) {\n let size = 0;\n return wwwPrefixInside;\n function wwwPrefixInside(code2) {\n if ((code2 === 87 || code2 === 119) && size < 3) {\n size++;\n effects.consume(code2);\n return wwwPrefixInside;\n }\n if (code2 === 46 && size === 3) {\n effects.consume(code2);\n return wwwPrefixAfter;\n }\n return nok(code2);\n }\n function wwwPrefixAfter(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction tokenizeDomain(effects, ok2, nok) {\n let underscoreInLastSegment;\n let underscoreInLastLastSegment;\n let seen;\n return domainInside;\n function domainInside(code2) {\n if (code2 === 46 || code2 === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n return domainAfter(code2);\n }\n seen = true;\n effects.consume(code2);\n return domainInside;\n }\n function domainAtPunctuation(code2) {\n if (code2 === 95) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = void 0;\n }\n effects.consume(code2);\n return domainInside;\n }\n function domainAfter(code2) {\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code2);\n }\n return ok2(code2);\n }\n}\nfunction tokenizePath(effects, ok2) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n function pathInside(code2) {\n if (code2 === 40) {\n sizeOpen++;\n effects.consume(code2);\n return pathInside;\n }\n if (code2 === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code2);\n }\n if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n return effects.check(trail, ok2, pathAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n effects.consume(code2);\n return pathInside;\n }\n function pathAtPunctuation(code2) {\n if (code2 === 41) {\n sizeClose++;\n }\n effects.consume(code2);\n return pathInside;\n }\n}\nfunction tokenizeTrail(effects, ok2, nok) {\n return trail2;\n function trail2(code2) {\n if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n effects.consume(code2);\n return trail2;\n }\n if (code2 === 38) {\n effects.consume(code2);\n return trailCharRefStart;\n }\n if (code2 === 93) {\n effects.consume(code2);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code2 === 60 || // So is whitespace.\n code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)\n ) {\n return ok2(code2);\n }\n return nok(code2);\n }\n function trailBracketAfter(code2) {\n if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n return trail2(code2);\n }\n function trailCharRefStart(code2) {\n return asciiAlpha(code2) ? trailCharRefInside(code2) : nok(code2);\n }\n function trailCharRefInside(code2) {\n if (code2 === 59) {\n effects.consume(code2);\n return trail2;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return trailCharRefInside;\n }\n return nok(code2);\n }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok2, nok) {\n return start;\n function start(code2) {\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n return asciiAlphanumeric(code2) ? nok(code2) : ok2(code2);\n }\n}\nfunction previousWww(code2) {\n return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\nfunction classifyCharacter(code2) {\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return 1;\n }\n if (unicodePunctuation(code2)) {\n return 2;\n }\n}\nfunction resolveAll(constructs2, events, context) {\n const called = [];\n let index = -1;\n while (++index < constructs2.length) {\n const resolve = constructs2[index].resolveAll;\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n return events;\n}\nfunction factorySpace(effects, ok2, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n function start(code2) {\n if (markdownSpace(code2)) {\n effects.enter(type);\n return prefix(code2);\n }\n return ok2(code2);\n }\n function prefix(code2) {\n if (markdownSpace(code2) && size++ < limit) {\n effects.consume(code2);\n return prefix;\n }\n effects.exit(type);\n return ok2(code2);\n }\n}\nconst blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n};\nfunction tokenizeBlankLine(effects, ok2, nok) {\n return start;\n function start(code2) {\n return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n }\n function after(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok2(code2) : nok(code2);\n }\n}\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\nfunction gfmFootnote() {\n return {\n document: {\n [91]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let labelStart;\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code2);\n }\n const id = normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n );\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok2(code2);\n }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n events[index][1];\n break;\n }\n }\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: \"chunkString\",\n contentType: \"string\",\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n [\"enter\", call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n [\"enter\", marker, context],\n [\"exit\", marker, context],\n // Everything in between.\n [\"enter\", string, context],\n [\"enter\", chunk, context],\n [\"exit\", chunk, context],\n [\"exit\", string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n [\"exit\", call, context]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n function callStart(code2) {\n if (code2 !== 94) return nok(code2);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n function callData(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok2;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? callEscape : callData;\n }\n function callEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return callData;\n }\n return callData(code2);\n }\n}\nfunction tokenizeDefinitionStart(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let identifier;\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n function labelAtMarker(code2) {\n if (code2 === 94) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code2);\n }\n function labelInside(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return labelInside;\n }\n return labelInside(code2);\n }\n function labelAfter(code2) {\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return factorySpace(\n effects,\n whitespaceAfter,\n \"gfmFootnoteDefinitionWhitespace\"\n );\n }\n return nok(code2);\n }\n function whitespaceAfter(code2) {\n return ok2(code2);\n }\n}\nfunction tokenizeDefinitionContinuation(effects, ok2, nok) {\n return effects.check(blankLine, ok2, effects.attempt(indent, ok2, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok2, nok) {\n const self = this;\n return factorySpace(\n effects,\n afterPrefix,\n \"gfmFootnoteDefinitionIndent\",\n 4 + 1\n );\n function afterPrefix(code2) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok2(code2) : nok(code2);\n }\n}\nfunction gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === void 0) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n const text2 = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n const nextEvents = [\n [\"enter\", strikethrough, context],\n [\"enter\", events[open][1], context],\n [\"exit\", events[open][1], context],\n [\"enter\", text2, context]\n ];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(insideSpan, events.slice(open + 1, index), context)\n );\n }\n splice(nextEvents, nextEvents.length, 0, [\n [\"exit\", text2, context],\n [\"enter\", events[index][1], context],\n [\"exit\", events[index][1], context],\n [\"exit\", strikethrough, context]\n ]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n function tokenizeStrikethrough(effects, ok2, nok) {\n const previous2 = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n function start(code2) {\n if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code2);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code2);\n }\n function more(code2) {\n const before = classifyCharacter(previous2);\n if (code2 === 126) {\n if (size > 1) return nok(code2);\n effects.consume(code2);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code2);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = classifyCharacter(code2);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok2(code2);\n }\n }\n}\nclass EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n this.map = [];\n }\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImpl(this, index, remove, add);\n }\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array<Event>} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImpl(this, index, remove, add, true)\n // }\n /**\n * Done, change the events.\n *\n * @param {Array<Event>} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function(a, b) {\n return a[0] - b[0];\n });\n if (this.map.length === 0) {\n return;\n }\n let index = this.map.length;\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(\n events.slice(this.map[index][0] + this.map[index][1]),\n this.map[index][2]\n );\n events.length = this.map[index][0];\n }\n vecs.push([...events]);\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n events.push(...slice);\n slice = vecs.pop();\n }\n this.map.length = 0;\n }\n}\nfunction addImpl(editMap, at, remove, add) {\n let index = 0;\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n editMap.map[index][2].push(...add);\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\nfunction gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n if (event[1].type === \"tableContent\") {\n align.push(\n events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\"\n );\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\nfunction gfmTable() {\n return {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\nfunction tokenizeTable(effects, ok2, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n let seen;\n return start;\n function start(code2) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" || // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\")\n index--;\n else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n return next(code2);\n }\n function headRowBefore(code2) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code2);\n }\n function headRowStart(code2) {\n if (code2 === 124) {\n return headRowBreak(code2);\n }\n seen = true;\n sizeB += 1;\n return headRowBreak(code2);\n }\n function headRowBreak(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n if (sizeB > 1) {\n sizeB = 0;\n self.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n return nok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n size += 1;\n }\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n seen = true;\n return headRowBreak;\n }\n effects.enter(\"data\");\n return headRowData(code2);\n }\n function headRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return headRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? headRowEscape : headRowData;\n }\n function headRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return headRowData;\n }\n return headRowData(code2);\n }\n function headDelimiterStart(code2) {\n self.interrupt = false;\n if (self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n effects.enter(\"tableDelimiterRow\");\n seen = false;\n if (markdownSpace(code2)) {\n return factorySpace(\n effects,\n headDelimiterBefore,\n \"linePrefix\",\n self.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2);\n }\n return headDelimiterBefore(code2);\n }\n function headDelimiterBefore(code2) {\n if (code2 === 45 || code2 === 58) {\n return headDelimiterValueBefore(code2);\n }\n if (code2 === 124) {\n seen = true;\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterCellBefore(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n }\n return headDelimiterValueBefore(code2);\n }\n function headDelimiterValueBefore(code2) {\n if (code2 === 58) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n if (code2 === 45) {\n sizeB += 1;\n return headDelimiterLeftAlignmentAfter(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return headDelimiterCellAfter(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterLeftAlignmentAfter(code2) {\n if (code2 === 45) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterFiller(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return headDelimiterFiller;\n }\n if (code2 === 58) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code2);\n }\n function headDelimiterRightAlignmentAfter(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n }\n return headDelimiterCellAfter(code2);\n }\n function headDelimiterCellAfter(code2) {\n if (code2 === 124) {\n return headDelimiterBefore(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code2);\n }\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n return ok2(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterNok(code2) {\n return nok(code2);\n }\n function bodyRowStart(code2) {\n effects.enter(\"tableRow\");\n return bodyRowBreak(code2);\n }\n function bodyRowBreak(code2) {\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"tableRow\");\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n }\n effects.enter(\"data\");\n return bodyRowData(code2);\n }\n function bodyRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return bodyRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? bodyRowEscape : bodyRowData;\n }\n function bodyRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return bodyRowData;\n }\n return bodyRowData(code2);\n }\n}\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n let rowKind = 0;\n let lastCell = [0, 0, 0, 0];\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n let currentTable;\n let currentBody;\n let currentCell;\n const map2 = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n currentBody = void 0;\n lastTableEnd = 0;\n }\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentTable, context]]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = void 0;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentBody, context]]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map2,\n context,\n lastCell,\n rowKind,\n void 0,\n currentCell\n );\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map2,\n context,\n lastCell,\n rowKind,\n void 0,\n currentCell\n );\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map2,\n context,\n lastCell,\n rowKind,\n index,\n currentCell\n );\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map2, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n }\n map2.consume(context.events);\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\nfunction flushCell(map2, context, range, rowKind, rowEnd, previousCell) {\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n const valueName = \"tableContent\";\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map2.add(range[0], 0, [[\"exit\", previousCell, context]]);\n }\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map2.add(range[1], 0, [[\"enter\", previousCell, context]]);\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map2.add(range[2], 0, [[\"enter\", valueToken, context]]);\n if (rowKind !== 2) {\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map2.add(a, b, []);\n }\n }\n map2.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n }\n if (rowEnd !== void 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map2.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n previousCell = void 0;\n }\n return previousCell;\n}\nfunction flushTableEnd(map2, context, index, table, tableBody) {\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\"exit\", tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push([\"exit\", table, context]);\n map2.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n};\nfunction gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\nfunction tokenizeTasklistCheck(effects, ok2, nok) {\n const self = this;\n return open;\n function open(code2) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code2);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n function inside(code2) {\n if (markdownLineEndingOrSpace(code2)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code2);\n }\n function close(code2) {\n if (code2 === 93) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok2,\n nok\n )(code2);\n }\n return nok(code2);\n }\n}\nfunction spaceThenNonSpace(effects, ok2, nok) {\n return factorySpace(effects, after, \"whitespace\");\n function after(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ]);\n}\nconst emptyOptions = {};\nfunction remarkGfm(options) {\n const self = (\n /** @type {Processor<Root>} */\n this\n );\n const settings = options || emptyOptions;\n const data = self.data();\n const micromarkExtensions = data.micromarkExtensions || (data.micromarkExtensions = []);\n const fromMarkdownExtensions = data.fromMarkdownExtensions || (data.fromMarkdownExtensions = []);\n const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);\n micromarkExtensions.push(gfm(settings));\n fromMarkdownExtensions.push(gfmFromMarkdown());\n toMarkdownExtensions.push(gfmToMarkdown(settings));\n}\nconst LINK_PROTOCOLS = [\"http\", \"https\", \"mailto\", \"tel\"];\nconst rehypeHighlight = ref(null);\nasync function importRehypeHighlightLibrary() {\n const module = await import(\"rehype-highlight\");\n rehypeHighlight.value = module.default;\n}\nconst _sfc_main = {\n name: \"NcRichText\",\n components: {\n NcReferenceList\n },\n props: {\n text: {\n type: String,\n default: \"\"\n },\n arguments: {\n type: Object,\n default: () => {\n return {};\n }\n },\n referenceLimit: {\n type: Number,\n default: 0\n },\n referenceInteractive: {\n type: Boolean,\n default: true\n },\n referenceInteractiveOptIn: {\n type: Boolean,\n default: false\n },\n /** Provide data upfront to avoid extra http request */\n references: {\n type: Array,\n default: null\n },\n /** Provide basic Markdown syntax */\n useMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide GitHub Flavored Markdown syntax */\n useExtendedMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide event from rendered markdown inputs */\n interactive: {\n type: Boolean,\n default: false\n },\n autolink: {\n type: Boolean,\n default: true\n }\n },\n emits: [\"interact:todo\"],\n data() {\n return {\n parentId: GenRandomId(5)\n };\n },\n methods: {\n renderPlaintext(h) {\n const context = this;\n const placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map(function(entry, index, list2) {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return prepareTextNode({ h, context }, entry);\n }\n const argumentId = matches[1];\n const argument = context.arguments[argumentId];\n if (typeof argument === \"object\") {\n const { component, props } = argument;\n return h(component, {\n props,\n class: \"rich-text--component\"\n });\n }\n if (argument) {\n return h(\"span\", { class: \"rich-text--fallback\" }, argument);\n }\n return entry;\n });\n return h(\"div\", { class: \"rich-text--wrapper\" }, [\n h(\"div\", {}, placeholders.flat()),\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n props: {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n }\n })\n ]) : null\n ]);\n },\n renderMarkdown(h) {\n const renderedMarkdown = unified().use(remarkParse).use(remarkAutolink, {\n autolink: this.autolink,\n useMarkdown: this.useMarkdown,\n useExtendedMarkdown: this.useExtendedMarkdown\n }).use(remarkUnescape).use(this.useExtendedMarkdown ? remarkGfm : void 0).use(breaks).use(remarkUnlinkProtocols, { except: LINK_PROTOCOLS }).use(remark2rehype, {\n handlers: {\n component(toHast, node2) {\n return toHast(node2, node2.component, { value: node2.value });\n }\n }\n }).use(this.useExtendedMarkdown ? rehypeHighlight.value : void 0).use(remarkPlaceholder).use(rehypeExternalLinks, {\n target: \"_blank\",\n rel: [\"noopener noreferrer\"]\n }).use(rehype2react, {\n createElement: (tag, attrs, children) => {\n if (!tag.startsWith(\"#\")) {\n if (this.useExtendedMarkdown) {\n if (tag === \"code\" && !rehypeHighlight.value && attrs?.attrs?.class?.includes(\"language\")) {\n importRehypeHighlightLibrary();\n }\n let nestedNode = null;\n if (tag === \"li\" && Array.isArray(children) && children[0].tag === \"input\" && children[0].data.attrs.type === \"checkbox\") {\n const [inputNode, ...labelParts] = children;\n const nestedNodeIndex = labelParts.findIndex((child) => [\"ul\", \"ol\", \"li\", \"blockquote\", \"pre\"].includes(child.tag));\n if (nestedNodeIndex !== -1) {\n nestedNode = labelParts[nestedNodeIndex];\n labelParts.splice(nestedNodeIndex);\n }\n const id = this.parentId + \"-markdown-input-\" + GenRandomId(5);\n const inputComponent = h(NcCheckboxRadioSwitch, {\n attrs: {\n ...inputNode.data.attrs,\n id,\n disabled: !this.interactive\n },\n on: {\n \"update:checked\": () => {\n this.$emit(\"interact:todo\", id);\n }\n }\n }, labelParts);\n return h(tag, attrs, [inputComponent, nestedNode]);\n }\n }\n if (tag === \"a\") {\n const route = getRoute(this.$router, attrs.attrs.href);\n if (route) {\n delete attrs.attrs.href;\n delete attrs.attrs.target;\n return h(RouterLink, {\n ...attrs,\n props: {\n to: route\n }\n }, children);\n }\n }\n return h(tag, attrs, children);\n }\n const placeholder = this.arguments[tag.slice(1)];\n if (!placeholder) {\n return h(\"span\", { ...{ attrs }, ...{ class: \"rich-text--fallback\" } }, [`{${tag.slice(1)}}`]);\n }\n if (!placeholder.component) {\n return h(\"span\", attrs, [placeholder]);\n }\n return h(\n placeholder.component,\n {\n attrs,\n props: placeholder.props,\n class: \"rich-text--component\"\n },\n children\n );\n },\n prefix: false\n }).processSync(\n this.text.replace(/<[^>]+>/g, (match) => match.replace(/</g, \"<\")).replace(/>/gmi, \">\")\n ).result;\n return h(\"div\", { class: \"rich-text--wrapper rich-text--wrapper-markdown\" }, [\n renderedMarkdown,\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n props: {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n }\n })\n ]) : null\n ]);\n }\n },\n render(h) {\n return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown(h) : this.renderPlaintext(h);\n }\n};\nconst _sfc_render = null;\nconst _sfc_staticRenderFns = null;\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"ddd5e67e\"\n);\nconst NcRichText = __component__.exports;\nexport {\n NcRichText as N,\n NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText-CwXSzf21.mjs.map\n","if (!Array.prototype.find) {\n Array.prototype.find = function(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined')\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function')\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value\n }\n }\n return undefined\n };\n}\n\nif (window && typeof window.CustomEvent !== \"function\") {\n function CustomEvent$1(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt\n }\n\n if (typeof window.Event !== 'undefined') {\n CustomEvent$1.prototype = window.Event.prototype;\n }\n\n window.CustomEvent = CustomEvent$1;\n}\n\nclass TributeEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.events = this;\n }\n\n static keys() {\n return [\n {\n key: 9,\n value: \"TAB\"\n },\n {\n key: 8,\n value: \"DELETE\"\n },\n {\n key: 13,\n value: \"ENTER\"\n },\n {\n key: 27,\n value: \"ESCAPE\"\n },\n {\n key: 32,\n value: \"SPACE\"\n },\n {\n key: 38,\n value: \"UP\"\n },\n {\n key: 40,\n value: \"DOWN\"\n }\n ];\n }\n\n bind(element) {\n element.boundKeydown = this.keydown.bind(element, this);\n element.boundKeyup = this.keyup.bind(element, this);\n element.boundInput = this.input.bind(element, this);\n\n element.addEventListener(\"keydown\", element.boundKeydown, false);\n element.addEventListener(\"keyup\", element.boundKeyup, false);\n element.addEventListener(\"input\", element.boundInput, false);\n }\n\n unbind(element) {\n element.removeEventListener(\"keydown\", element.boundKeydown, false);\n element.removeEventListener(\"keyup\", element.boundKeyup, false);\n element.removeEventListener(\"input\", element.boundInput, false);\n\n delete element.boundKeydown;\n delete element.boundKeyup;\n delete element.boundInput;\n }\n\n keydown(instance, event) {\n if (instance.shouldDeactivate(event)) {\n instance.tribute.isActive = false;\n instance.tribute.hideMenu();\n }\n\n let element = this;\n instance.commandEvent = false;\n\n TributeEvents.keys().forEach(o => {\n if (o.key === event.keyCode) {\n instance.commandEvent = true;\n instance.callbacks()[o.value.toLowerCase()](event, element);\n }\n });\n }\n\n input(instance, event) {\n instance.inputEvent = true;\n instance.keyup.call(this, instance, event);\n }\n\n click(instance, event) {\n let tribute = instance.tribute;\n if (tribute.menu && tribute.menu.contains(event.target)) {\n let li = event.target;\n event.preventDefault();\n event.stopPropagation();\n while (li.nodeName.toLowerCase() !== \"li\") {\n li = li.parentNode;\n if (!li || li === tribute.menu) {\n throw new Error(\"cannot find the <li> container for the click\");\n }\n }\n tribute.selectItemAtIndex(li.getAttribute(\"data-index\"), event);\n tribute.hideMenu();\n\n // TODO: should fire with externalTrigger and target is outside of menu\n } else if (tribute.current.element && !tribute.current.externalTrigger) {\n tribute.current.externalTrigger = false;\n setTimeout(() => tribute.hideMenu());\n }\n }\n\n keyup(instance, event) {\n if (instance.inputEvent) {\n instance.inputEvent = false;\n }\n instance.updateSelection(this);\n\n if (event.keyCode === 27) return;\n\n if (!instance.tribute.allowSpaces && instance.tribute.hasTrailingSpace) {\n instance.tribute.hasTrailingSpace = false;\n instance.commandEvent = true;\n instance.callbacks()[\"space\"](event, this);\n return;\n }\n\n if (!instance.tribute.isActive) {\n if (instance.tribute.autocompleteMode) {\n instance.callbacks().triggerChar(event, this, \"\");\n } else {\n let keyCode = instance.getKeyCode(instance, this, event);\n\n if (isNaN(keyCode) || !keyCode) return;\n\n let trigger = instance.tribute.triggers().find(trigger => {\n return trigger.charCodeAt(0) === keyCode;\n });\n\n if (typeof trigger !== \"undefined\") {\n instance.callbacks().triggerChar(event, this, trigger);\n }\n }\n }\n\n if (\n instance.tribute.current.mentionText.length <\n instance.tribute.current.collection.menuShowMinLength\n ) {\n return;\n }\n\n if (\n ((instance.tribute.current.trigger ||\n instance.tribute.autocompleteMode) &&\n instance.commandEvent === false) ||\n (instance.tribute.isActive && event.keyCode === 8)\n ) {\n instance.tribute.showMenuFor(this, true);\n }\n }\n\n shouldDeactivate(event) {\n if (!this.tribute.isActive) return false;\n\n if (this.tribute.current.mentionText.length === 0) {\n let eventKeyPressed = false;\n TributeEvents.keys().forEach(o => {\n if (event.keyCode === o.key) eventKeyPressed = true;\n });\n\n return !eventKeyPressed;\n }\n\n return false;\n }\n\n getKeyCode(instance, el, event) {\n let tribute = instance.tribute;\n let info = tribute.range.getTriggerInfo(\n false,\n tribute.hasTrailingSpace,\n true,\n tribute.allowSpaces,\n tribute.autocompleteMode\n );\n\n if (info) {\n return info.mentionTriggerChar.charCodeAt(0);\n } else {\n return false;\n }\n }\n\n updateSelection(el) {\n this.tribute.current.element = el;\n let info = this.tribute.range.getTriggerInfo(\n false,\n this.tribute.hasTrailingSpace,\n true,\n this.tribute.allowSpaces,\n this.tribute.autocompleteMode\n );\n\n if (info) {\n this.tribute.current.selectedPath = info.mentionSelectedPath;\n this.tribute.current.mentionText = info.mentionText;\n this.tribute.current.selectedOffset = info.mentionSelectedOffset;\n }\n }\n\n callbacks() {\n return {\n triggerChar: (e, el, trigger) => {\n let tribute = this.tribute;\n tribute.current.trigger = trigger;\n\n let collectionItem = tribute.collection.find(item => {\n return item.trigger === trigger;\n });\n\n tribute.current.collection = collectionItem;\n\n if (\n tribute.current.mentionText.length >=\n tribute.current.collection.menuShowMinLength &&\n tribute.inputEvent\n ) {\n tribute.showMenuFor(el, true);\n }\n },\n enter: (e, el) => {\n // choose selection\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.selectItemAtIndex(this.tribute.menuSelected, e);\n this.tribute.hideMenu();\n }, 0);\n }\n },\n escape: (e, el) => {\n if (this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n this.tribute.isActive = false;\n this.tribute.hideMenu();\n }\n },\n tab: (e, el) => {\n // choose first match\n this.callbacks().enter(e, el);\n },\n space: (e, el) => {\n if (this.tribute.isActive) {\n if (this.tribute.spaceSelectsMatch) {\n this.callbacks().enter(e, el);\n } else if (!this.tribute.allowSpaces) {\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.hideMenu();\n this.tribute.isActive = false;\n }, 0);\n }\n }\n },\n up: (e, el) => {\n // navigate up ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length,\n selected = this.tribute.menuSelected;\n\n if (count > selected && selected > 0) {\n this.tribute.menuSelected--;\n this.setActiveLi();\n } else if (selected === 0) {\n this.tribute.menuSelected = count - 1;\n this.setActiveLi();\n this.tribute.menu.scrollTop = this.tribute.menu.scrollHeight;\n }\n }\n },\n down: (e, el) => {\n // navigate down ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length - 1,\n selected = this.tribute.menuSelected;\n\n if (count > selected) {\n this.tribute.menuSelected++;\n this.setActiveLi();\n } else if (count === selected) {\n this.tribute.menuSelected = 0;\n this.setActiveLi();\n this.tribute.menu.scrollTop = 0;\n }\n }\n },\n delete: (e, el) => {\n if (\n this.tribute.isActive &&\n this.tribute.current.mentionText.length < 1\n ) {\n this.tribute.hideMenu();\n } else if (this.tribute.isActive) {\n this.tribute.showMenuFor(el);\n }\n }\n };\n }\n\n setActiveLi(index) {\n let lis = this.tribute.menu.querySelectorAll(\"li\"),\n length = lis.length >>> 0;\n\n if (index) this.tribute.menuSelected = parseInt(index);\n\n for (let i = 0; i < length; i++) {\n let li = lis[i];\n if (i === this.tribute.menuSelected) {\n li.classList.add(this.tribute.current.collection.selectClass);\n\n let liClientRect = li.getBoundingClientRect();\n let menuClientRect = this.tribute.menu.getBoundingClientRect();\n\n if (liClientRect.bottom > menuClientRect.bottom) {\n let scrollDistance = liClientRect.bottom - menuClientRect.bottom;\n this.tribute.menu.scrollTop += scrollDistance;\n } else if (liClientRect.top < menuClientRect.top) {\n let scrollDistance = menuClientRect.top - liClientRect.top;\n this.tribute.menu.scrollTop -= scrollDistance;\n }\n } else {\n li.classList.remove(this.tribute.current.collection.selectClass);\n }\n }\n }\n\n getFullHeight(elem, includeMargin) {\n let height = elem.getBoundingClientRect().height;\n\n if (includeMargin) {\n let style = elem.currentStyle || window.getComputedStyle(elem);\n return (\n height + parseFloat(style.marginTop) + parseFloat(style.marginBottom)\n );\n }\n\n return height;\n }\n}\n\nclass TributeMenuEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.menuEvents = this;\n this.menu = this.tribute.menu;\n }\n\n bind(menu) {\n this.menuClickEvent = this.tribute.events.click.bind(null, this);\n this.menuContainerScrollEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.showMenuFor(this.tribute.current.element, false);\n }\n },\n 300,\n false\n );\n this.windowResizeEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.range.positionMenuAtCaret(true);\n }\n },\n 300,\n false\n );\n\n // fixes IE11 issues with mousedown\n this.tribute.range\n .getDocument()\n .addEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .addEventListener(\"mousedown\", this.menuClickEvent, false);\n window.addEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.addEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.addEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n unbind(menu) {\n this.tribute.range\n .getDocument()\n .removeEventListener(\"mousedown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .removeEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n window.removeEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.removeEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.removeEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n debounce(func, wait, immediate) {\n var timeout;\n return () => {\n var context = this,\n args = arguments;\n var later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n}\n\n// Thanks to https://github.com/jeff-collins/ment.io\n\nclass TributeRange {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.range = this;\n }\n\n getDocument() {\n let iframe;\n if (this.tribute.current.collection) {\n iframe = this.tribute.current.collection.iframe;\n }\n\n if (!iframe) {\n return document\n }\n\n return iframe.contentWindow.document\n }\n\n positionMenuAtCaret(scrollTo) {\n let context = this.tribute.current,\n coordinates;\n\n let info = this.getTriggerInfo(false, this.tribute.hasTrailingSpace, true, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (typeof info !== 'undefined') {\n\n if(!this.tribute.positionMenu){\n this.tribute.menu.style.cssText = `display: block;`;\n return\n }\n\n if (!this.isContentEditable(context.element)) {\n coordinates = this.getTextAreaOrInputUnderlinePosition(this.tribute.current.element,\n info.mentionPosition);\n }\n else {\n coordinates = this.getContentEditableCaretPosition(info.mentionPosition);\n }\n\n this.tribute.menu.style.cssText = `top: ${coordinates.top}px;\n left: ${coordinates.left}px;\n right: ${coordinates.right}px;\n bottom: ${coordinates.bottom}px;\n position: absolute;\n display: block;`;\n\n if (coordinates.left === 'auto') {\n this.tribute.menu.style.left = 'auto';\n }\n\n if (coordinates.top === 'auto') {\n this.tribute.menu.style.top = 'auto';\n }\n\n if (scrollTo) this.scrollIntoView();\n\n window.setTimeout(() => {\n let menuDimensions = {\n width: this.tribute.menu.offsetWidth,\n height: this.tribute.menu.offsetHeight\n };\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n let menuIsOffScreenHorizontally = window.innerWidth > menuDimensions.width && (menuIsOffScreen.left || menuIsOffScreen.right);\n let menuIsOffScreenVertically = window.innerHeight > menuDimensions.height && (menuIsOffScreen.top || menuIsOffScreen.bottom);\n if (menuIsOffScreenHorizontally || menuIsOffScreenVertically) {\n this.tribute.menu.style.cssText = 'display: none';\n this.positionMenuAtCaret(scrollTo);\n }\n }, 0);\n\n } else {\n this.tribute.menu.style.cssText = 'display: none';\n }\n }\n\n get menuContainerIsBody() {\n return this.tribute.menuContainer === document.body || !this.tribute.menuContainer;\n }\n\n\n selectElement(targetElement, path, offset) {\n let range;\n let elem = targetElement;\n\n if (path) {\n for (var i = 0; i < path.length; i++) {\n elem = elem.childNodes[path[i]];\n if (elem === undefined) {\n return\n }\n while (elem.length < offset) {\n offset -= elem.length;\n elem = elem.nextSibling;\n }\n if (elem.childNodes.length === 0 && !elem.length) {\n elem = elem.previousSibling;\n }\n }\n }\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(elem, offset);\n range.setEnd(elem, offset);\n range.collapse(true);\n\n try {\n sel.removeAllRanges();\n } catch (error) {}\n\n sel.addRange(range);\n targetElement.focus();\n }\n\n replaceTriggerText(text, requireLeadingSpace, hasTrailingSpace, originalEvent, item) {\n let info = this.getTriggerInfo(true, hasTrailingSpace, requireLeadingSpace, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (info !== undefined) {\n let context = this.tribute.current;\n let replaceEvent = new CustomEvent('tribute-replaced', {\n detail: {\n item: item,\n instance: context,\n context: info,\n event: originalEvent,\n }\n });\n\n if (!this.isContentEditable(context.element)) {\n let myField = this.tribute.current.element;\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : ' ';\n text += textSuffix;\n let startPos = info.mentionPosition;\n let endPos = info.mentionPosition + info.mentionText.length + textSuffix.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length - 1;\n }\n myField.value = myField.value.substring(0, startPos) + text +\n myField.value.substring(endPos, myField.value.length);\n myField.selectionStart = startPos + text.length;\n myField.selectionEnd = startPos + text.length;\n } else {\n // add a space to the end of the pasted text\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : '\\xA0';\n text += textSuffix;\n let endPos = info.mentionPosition + info.mentionText.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length;\n }\n this.pasteHtml(text, info.mentionPosition, endPos);\n }\n\n context.element.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n context.element.dispatchEvent(replaceEvent);\n }\n }\n\n pasteHtml(html, startPos, endPos) {\n let range, sel;\n sel = this.getWindowSelection();\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, startPos);\n range.setEnd(sel.anchorNode, endPos);\n range.deleteContents();\n\n let el = this.getDocument().createElement('div');\n el.innerHTML = html;\n let frag = this.getDocument().createDocumentFragment(),\n node, lastNode;\n while ((node = el.firstChild)) {\n lastNode = frag.appendChild(node);\n }\n range.insertNode(frag);\n\n // Preserve the selection\n if (lastNode) {\n range = range.cloneRange();\n range.setStartAfter(lastNode);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n\n getWindowSelection() {\n if (this.tribute.collection.iframe) {\n return this.tribute.collection.iframe.contentWindow.getSelection()\n }\n\n return window.getSelection()\n }\n\n getNodePositionInParent(element) {\n if (element.parentNode === null) {\n return 0\n }\n\n for (var i = 0; i < element.parentNode.childNodes.length; i++) {\n let node = element.parentNode.childNodes[i];\n\n if (node === element) {\n return i\n }\n }\n }\n\n getContentEditableSelectedPath(ctx) {\n let sel = this.getWindowSelection();\n let selected = sel.anchorNode;\n let path = [];\n let offset;\n\n if (selected != null) {\n let i;\n let ce = selected.contentEditable;\n while (selected !== null && ce !== 'true') {\n i = this.getNodePositionInParent(selected);\n path.push(i);\n selected = selected.parentNode;\n if (selected !== null) {\n ce = selected.contentEditable;\n }\n }\n path.reverse();\n\n // getRangeAt may not exist, need alternative\n offset = sel.getRangeAt(0).startOffset;\n\n return {\n selected: selected,\n path: path,\n offset: offset\n }\n }\n }\n\n getTextPrecedingCurrentSelection() {\n let context = this.tribute.current,\n text = '';\n\n if (!this.isContentEditable(context.element)) {\n let textComponent = this.tribute.current.element;\n if (textComponent) {\n let startPos = textComponent.selectionStart;\n if (textComponent.value && startPos >= 0) {\n text = textComponent.value.substring(0, startPos);\n }\n }\n\n } else {\n let selectedElem = this.getWindowSelection().anchorNode;\n\n if (selectedElem != null) {\n let workingNodeContent = selectedElem.textContent;\n let selectStartOffset = this.getWindowSelection().getRangeAt(0).startOffset;\n\n if (workingNodeContent && selectStartOffset >= 0) {\n text = workingNodeContent.substring(0, selectStartOffset);\n }\n }\n }\n\n return text\n }\n\n getLastWordInText(text) {\n text = text.replace(/\\u00A0/g, ' '); // https://stackoverflow.com/questions/29850407/how-do-i-replace-unicode-character-u00a0-with-a-space-in-javascript\n let wordsArray = text.split(/\\s+/);\n let worldsCount = wordsArray.length - 1;\n return wordsArray[worldsCount].trim()\n }\n\n getTriggerInfo(menuAlreadyActive, hasTrailingSpace, requireLeadingSpace, allowSpaces, isAutocomplete) {\n let ctx = this.tribute.current;\n let selected, path, offset;\n\n if (!this.isContentEditable(ctx.element)) {\n selected = this.tribute.current.element;\n } else {\n let selectionInfo = this.getContentEditableSelectedPath(ctx);\n\n if (selectionInfo) {\n selected = selectionInfo.selected;\n path = selectionInfo.path;\n offset = selectionInfo.offset;\n }\n }\n\n let effectiveRange = this.getTextPrecedingCurrentSelection();\n let lastWordOfEffectiveRange = this.getLastWordInText(effectiveRange);\n\n if (isAutocomplete) {\n return {\n mentionPosition: effectiveRange.length - lastWordOfEffectiveRange.length,\n mentionText: lastWordOfEffectiveRange,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset\n }\n }\n\n if (effectiveRange !== undefined && effectiveRange !== null) {\n let mostRecentTriggerCharPos = -1;\n let triggerChar;\n\n this.tribute.collection.forEach(config => {\n let c = config.trigger;\n let idx = config.requireLeadingSpace ?\n this.lastIndexWithLeadingSpace(effectiveRange, c) :\n effectiveRange.lastIndexOf(c);\n\n if (idx > mostRecentTriggerCharPos) {\n mostRecentTriggerCharPos = idx;\n triggerChar = c;\n requireLeadingSpace = config.requireLeadingSpace;\n }\n });\n\n if (mostRecentTriggerCharPos >= 0 &&\n (\n mostRecentTriggerCharPos === 0 ||\n !requireLeadingSpace ||\n /[\\xA0\\s]/g.test(\n effectiveRange.substring(\n mostRecentTriggerCharPos - 1,\n mostRecentTriggerCharPos)\n )\n )\n ) {\n let currentTriggerSnippet = effectiveRange.substring(mostRecentTriggerCharPos + triggerChar.length,\n effectiveRange.length);\n\n triggerChar = effectiveRange.substring(mostRecentTriggerCharPos, mostRecentTriggerCharPos + triggerChar.length);\n let firstSnippetChar = currentTriggerSnippet.substring(0, 1);\n let leadingSpace = currentTriggerSnippet.length > 0 &&\n (\n firstSnippetChar === ' ' ||\n firstSnippetChar === '\\xA0'\n );\n if (hasTrailingSpace) {\n currentTriggerSnippet = currentTriggerSnippet.trim();\n }\n\n let regex = allowSpaces ? /[^\\S ]/g : /[\\xA0\\s]/g;\n\n this.tribute.hasTrailingSpace = regex.test(currentTriggerSnippet);\n\n if (!leadingSpace && (menuAlreadyActive || !(regex.test(currentTriggerSnippet)))) {\n return {\n mentionPosition: mostRecentTriggerCharPos,\n mentionText: currentTriggerSnippet,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset,\n mentionTriggerChar: triggerChar\n }\n }\n }\n }\n }\n\n lastIndexWithLeadingSpace (str, trigger) {\n let reversedStr = str.split('').reverse().join('');\n let index = -1;\n\n for (let cidx = 0, len = str.length; cidx < len; cidx++) {\n let firstChar = cidx === str.length - 1;\n let leadingSpace = /\\s/.test(reversedStr[cidx + 1]);\n\n let match = true;\n for (let triggerIdx = trigger.length - 1; triggerIdx >= 0; triggerIdx--) {\n if (trigger[triggerIdx] !== reversedStr[cidx-triggerIdx]) {\n match = false;\n break\n }\n }\n\n if (match && (firstChar || leadingSpace)) {\n index = str.length - 1 - cidx;\n break\n }\n }\n\n return index\n }\n\n isContentEditable(element) {\n return element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA'\n }\n\n isMenuOffScreen(coordinates, menuDimensions) {\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let menuTop = typeof coordinates.top === 'number' ? coordinates.top : windowTop + windowHeight - coordinates.bottom - menuDimensions.height;\n let menuRight = typeof coordinates.right === 'number' ? coordinates.right : coordinates.left + menuDimensions.width;\n let menuBottom = typeof coordinates.bottom === 'number' ? coordinates.bottom : coordinates.top + menuDimensions.height;\n let menuLeft = typeof coordinates.left === 'number' ? coordinates.left : windowLeft + windowWidth - coordinates.right - menuDimensions.width;\n\n return {\n top: menuTop < Math.floor(windowTop),\n right: menuRight > Math.ceil(windowLeft + windowWidth),\n bottom: menuBottom > Math.ceil(windowTop + windowHeight),\n left: menuLeft < Math.floor(windowLeft)\n }\n }\n\n getMenuDimensions() {\n // Width of the menu depends of its contents and position\n // We must check what its width would be without any obstruction\n // This way, we can achieve good positioning for flipping the menu\n let dimensions = {\n width: null,\n height: null\n };\n\n this.tribute.menu.style.cssText = `top: 0px;\n left: 0px;\n position: fixed;\n display: block;\n visibility; hidden;`;\n dimensions.width = this.tribute.menu.offsetWidth;\n dimensions.height = this.tribute.menu.offsetHeight;\n\n this.tribute.menu.style.cssText = `display: none;`;\n\n return dimensions\n }\n\n getTextAreaOrInputUnderlinePosition(element, position, flipped) {\n let properties = ['direction', 'boxSizing', 'width', 'height', 'overflowX',\n 'overflowY', 'borderTopWidth', 'borderRightWidth',\n 'borderBottomWidth', 'borderLeftWidth', 'paddingTop',\n 'paddingRight', 'paddingBottom', 'paddingLeft',\n 'fontStyle', 'fontVariant', 'fontWeight', 'fontStretch',\n 'fontSize', 'fontSizeAdjust', 'lineHeight', 'fontFamily',\n 'textAlign', 'textTransform', 'textIndent',\n 'textDecoration', 'letterSpacing', 'wordSpacing'\n ];\n\n let isFirefox = (window.mozInnerScreenX !== null);\n\n let div = this.getDocument().createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n this.getDocument().body.appendChild(div);\n\n let style = div.style;\n let computed = window.getComputedStyle ? getComputedStyle(element) : element.currentStyle;\n\n style.whiteSpace = 'pre-wrap';\n if (element.nodeName !== 'INPUT') {\n style.wordWrap = 'break-word';\n }\n\n // position off-screen\n style.position = 'absolute';\n style.visibility = 'hidden';\n\n // transfer the element's properties to the div\n properties.forEach(prop => {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n style.width = `${(parseInt(computed.width) - 2)}px`;\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = 'scroll';\n } else {\n style.overflow = 'hidden';\n }\n\n div.textContent = element.value.substring(0, position);\n\n if (element.nodeName === 'INPUT') {\n div.textContent = div.textContent.replace(/\\s/g, ' ');\n }\n\n let span = this.getDocument().createElement('span');\n span.textContent = element.value.substring(position) || '.';\n div.appendChild(span);\n\n let rect = element.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let top = 0;\n let left = 0;\n if (this.menuContainerIsBody) {\n top = rect.top;\n left = rect.left;\n }\n\n let coordinates = {\n top: top + windowTop + span.offsetTop + parseInt(computed.borderTopWidth) + parseInt(computed.fontSize) - element.scrollTop,\n left: left + windowLeft + span.offsetLeft + parseInt(computed.borderLeftWidth)\n };\n\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.right = windowWidth - coordinates.left;\n coordinates.left = 'auto';\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top - span.offsetTop);\n coordinates.top = 'auto';\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n this.getDocument().body.removeChild(div);\n return coordinates\n }\n\n getContentEditableCaretPosition(selectedNodePosition) {\n let range;\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, selectedNodePosition);\n range.setEnd(sel.anchorNode, selectedNodePosition);\n\n range.collapse(false);\n\n let rect = range.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let left = rect.left;\n let top = rect.top;\n\n let coordinates = {\n left: left + windowLeft,\n top: top + rect.height + windowTop\n };\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.left = 'auto';\n coordinates.right = windowWidth - rect.left - windowLeft;\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.top = 'auto';\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top);\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n if (!this.menuContainerIsBody) {\n coordinates.left = coordinates.left ? coordinates.left - this.tribute.menuContainer.offsetLeft : coordinates.left;\n coordinates.top = coordinates.top ? coordinates.top - this.tribute.menuContainer.offsetTop : coordinates.top;\n }\n\n return coordinates\n }\n\n scrollIntoView(elem) {\n let reasonableBuffer = 20,\n clientRect;\n let maxScrollDisplacement = 100;\n let e = this.menu;\n\n if (typeof e === 'undefined') return;\n\n while (clientRect === undefined || clientRect.height === 0) {\n clientRect = e.getBoundingClientRect();\n\n if (clientRect.height === 0) {\n e = e.childNodes[0];\n if (e === undefined || !e.getBoundingClientRect) {\n return\n }\n }\n }\n\n let elemTop = clientRect.top;\n let elemBottom = elemTop + clientRect.height;\n\n if (elemTop < 0) {\n window.scrollTo(0, window.pageYOffset + clientRect.top - reasonableBuffer);\n } else if (elemBottom > window.innerHeight) {\n let maxY = window.pageYOffset + clientRect.top - reasonableBuffer;\n\n if (maxY - window.pageYOffset > maxScrollDisplacement) {\n maxY = window.pageYOffset + maxScrollDisplacement;\n }\n\n let targetY = window.pageYOffset - (window.innerHeight - elemBottom);\n\n if (targetY > maxY) {\n targetY = maxY;\n }\n\n window.scrollTo(0, targetY);\n }\n }\n}\n\n// Thanks to https://github.com/mattyork/fuzzy\nclass TributeSearch {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.search = this;\n }\n\n simpleFilter(pattern, array) {\n return array.filter(string => {\n return this.test(pattern, string)\n })\n }\n\n test(pattern, string) {\n return this.match(pattern, string) !== null\n }\n\n match(pattern, string, opts) {\n opts = opts || {};\n let len = string.length,\n pre = opts.pre || '',\n post = opts.post || '',\n compareString = opts.caseSensitive && string || string.toLowerCase();\n\n if (opts.skip) {\n return {rendered: string, score: 0}\n }\n\n pattern = opts.caseSensitive && pattern || pattern.toLowerCase();\n\n let patternCache = this.traverse(compareString, pattern, 0, 0, []);\n if (!patternCache) {\n return null\n }\n return {\n rendered: this.render(string, patternCache.cache, pre, post),\n score: patternCache.score\n }\n }\n\n traverse(string, pattern, stringIndex, patternIndex, patternCache) {\n // if the pattern search at end\n if (pattern.length === patternIndex) {\n\n // calculate score and copy the cache containing the indices where it's found\n return {\n score: this.calculateScore(patternCache),\n cache: patternCache.slice()\n }\n }\n\n // if string at end or remaining pattern > remaining string\n if (string.length === stringIndex || pattern.length - patternIndex > string.length - stringIndex) {\n return undefined\n }\n\n let c = pattern[patternIndex];\n let index = string.indexOf(c, stringIndex);\n let best, temp;\n\n while (index > -1) {\n patternCache.push(index);\n temp = this.traverse(string, pattern, index + 1, patternIndex + 1, patternCache);\n patternCache.pop();\n\n // if downstream traversal failed, return best answer so far\n if (!temp) {\n return best\n }\n\n if (!best || best.score < temp.score) {\n best = temp;\n }\n\n index = string.indexOf(c, index + 1);\n }\n\n return best\n }\n\n calculateScore(patternCache) {\n let score = 0;\n let temp = 1;\n\n patternCache.forEach((index, i) => {\n if (i > 0) {\n if (patternCache[i - 1] + 1 === index) {\n temp += temp + 1;\n }\n else {\n temp = 1;\n }\n }\n\n score += temp;\n });\n\n return score\n }\n\n render(string, indices, pre, post) {\n var rendered = string.substring(0, indices[0]);\n\n indices.forEach((index, i) => {\n rendered += pre + string[index] + post +\n string.substring(index + 1, (indices[i + 1]) ? indices[i + 1] : string.length);\n });\n\n return rendered\n }\n\n filter(pattern, arr, opts) {\n opts = opts || {};\n return arr\n .reduce((prev, element, idx, arr) => {\n let str = element;\n\n if (opts.extract) {\n str = opts.extract(element);\n\n if (!str) { // take care of undefineds / nulls / etc.\n str = '';\n }\n }\n\n let rendered = this.match(pattern, str, opts);\n\n if (rendered != null) {\n prev[prev.length] = {\n string: rendered.rendered,\n score: rendered.score,\n index: idx,\n original: element\n };\n }\n\n return prev\n }, [])\n\n .sort((a, b) => {\n let compare = b.score - a.score;\n if (compare) return compare\n return a.index - b.index\n })\n }\n}\n\nclass Tribute {\n constructor({\n values = null,\n iframe = null,\n selectClass = \"highlight\",\n containerClass = \"tribute-container\",\n itemClass = \"\",\n trigger = \"@\",\n autocompleteMode = false,\n selectTemplate = null,\n menuItemTemplate = null,\n lookup = \"key\",\n fillAttr = \"value\",\n collection = null,\n menuContainer = null,\n noMatchTemplate = null,\n requireLeadingSpace = true,\n allowSpaces = false,\n replaceTextSuffix = null,\n positionMenu = true,\n spaceSelectsMatch = false,\n searchOpts = {},\n menuItemLimit = null,\n menuShowMinLength = 0\n }) {\n this.autocompleteMode = autocompleteMode;\n this.menuSelected = 0;\n this.current = {};\n this.inputEvent = false;\n this.isActive = false;\n this.menuContainer = menuContainer;\n this.allowSpaces = allowSpaces;\n this.replaceTextSuffix = replaceTextSuffix;\n this.positionMenu = positionMenu;\n this.hasTrailingSpace = false;\n this.spaceSelectsMatch = spaceSelectsMatch;\n\n if (this.autocompleteMode) {\n trigger = \"\";\n allowSpaces = false;\n }\n\n if (values) {\n this.collection = [\n {\n // symbol that starts the lookup\n trigger: trigger,\n\n // is it wrapped in an iframe\n iframe: iframe,\n\n // class applied to selected item\n selectClass: selectClass,\n\n // class applied to the Container\n containerClass: containerClass,\n\n // class applied to each item\n itemClass: itemClass,\n\n // function called on select that retuns the content to insert\n selectTemplate: (\n selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n\n // function called that returns content for an item\n menuItemTemplate: (\n menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"<li>No Match Found!</li>\";\n }.bind(this)\n );\n })(noMatchTemplate),\n\n // column to search against in the object\n lookup: lookup,\n\n // column that contains the content to insert by default\n fillAttr: fillAttr,\n\n // array of objects or a function returning an array of objects\n values: values,\n\n requireLeadingSpace: requireLeadingSpace,\n\n searchOpts: searchOpts,\n\n menuItemLimit: menuItemLimit,\n\n menuShowMinLength: menuShowMinLength\n }\n ];\n } else if (collection) {\n if (this.autocompleteMode)\n console.warn(\n \"Tribute in autocomplete mode does not work for collections\"\n );\n this.collection = collection.map(item => {\n return {\n trigger: item.trigger || trigger,\n iframe: item.iframe || iframe,\n selectClass: item.selectClass || selectClass,\n containerClass: item.containerClass || containerClass,\n itemClass: item.itemClass || itemClass,\n selectTemplate: (\n item.selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n menuItemTemplate: (\n item.menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"<li>No Match Found!</li>\";\n }.bind(this)\n );\n })(noMatchTemplate),\n lookup: item.lookup || lookup,\n fillAttr: item.fillAttr || fillAttr,\n values: item.values,\n requireLeadingSpace: item.requireLeadingSpace,\n searchOpts: item.searchOpts || searchOpts,\n menuItemLimit: item.menuItemLimit || menuItemLimit,\n menuShowMinLength: item.menuShowMinLength || menuShowMinLength\n };\n });\n } else {\n throw new Error(\"[Tribute] No collection specified.\");\n }\n\n new TributeRange(this);\n new TributeEvents(this);\n new TributeMenuEvents(this);\n new TributeSearch(this);\n }\n\n get isActive() {\n return this._isActive;\n }\n\n set isActive(val) {\n if (this._isActive != val) {\n this._isActive = val;\n if (this.current.element) {\n let noMatchEvent = new CustomEvent(`tribute-active-${val}`);\n this.current.element.dispatchEvent(noMatchEvent);\n }\n }\n }\n\n static defaultSelectTemplate(item) {\n if (typeof item === \"undefined\")\n return `${this.current.collection.trigger}${this.current.mentionText}`;\n if (this.range.isContentEditable(this.current.element)) {\n return (\n '<span class=\"tribute-mention\">' +\n (this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]) +\n \"</span>\"\n );\n }\n\n return (\n this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]\n );\n }\n\n static defaultMenuItemTemplate(matchItem) {\n return matchItem.string;\n }\n\n static inputTypes() {\n return [\"TEXTAREA\", \"INPUT\"];\n }\n\n triggers() {\n return this.collection.map(config => {\n return config.trigger;\n });\n }\n\n attach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._attach(el[i]);\n }\n } else {\n this._attach(el);\n }\n }\n\n _attach(el) {\n if (el.hasAttribute(\"data-tribute\")) {\n console.warn(\"Tribute was already bound to \" + el.nodeName);\n }\n\n this.ensureEditable(el);\n this.events.bind(el);\n el.setAttribute(\"data-tribute\", true);\n }\n\n ensureEditable(element) {\n if (Tribute.inputTypes().indexOf(element.nodeName) === -1) {\n if (element.contentEditable) {\n element.contentEditable = true;\n } else {\n throw new Error(\"[Tribute] Cannot bind to \" + element.nodeName);\n }\n }\n }\n\n createMenu(containerClass) {\n let wrapper = this.range.getDocument().createElement(\"div\"),\n ul = this.range.getDocument().createElement(\"ul\");\n wrapper.className = containerClass;\n wrapper.appendChild(ul);\n\n if (this.menuContainer) {\n return this.menuContainer.appendChild(wrapper);\n }\n\n return this.range.getDocument().body.appendChild(wrapper);\n }\n\n showMenuFor(element, scrollTo) {\n // Only proceed if menu isn't already shown for the current element & mentionText\n if (\n this.isActive &&\n this.current.element === element &&\n this.current.mentionText === this.currentMentionTextSnapshot\n ) {\n return;\n }\n this.currentMentionTextSnapshot = this.current.mentionText;\n\n // create the menu if it doesn't exist.\n if (!this.menu) {\n this.menu = this.createMenu(this.current.collection.containerClass);\n element.tributeMenu = this.menu;\n this.menuEvents.bind(this.menu);\n }\n\n this.isActive = true;\n this.menuSelected = 0;\n\n if (!this.current.mentionText) {\n this.current.mentionText = \"\";\n }\n\n const processValues = values => {\n // Tribute may not be active any more by the time the value callback returns\n if (!this.isActive) {\n return;\n }\n\n let items = this.search.filter(this.current.mentionText, values, {\n pre: this.current.collection.searchOpts.pre || \"<span>\",\n post: this.current.collection.searchOpts.post || \"</span>\",\n skip: this.current.collection.searchOpts.skip,\n extract: el => {\n if (typeof this.current.collection.lookup === \"string\") {\n return el[this.current.collection.lookup];\n } else if (typeof this.current.collection.lookup === \"function\") {\n return this.current.collection.lookup(el, this.current.mentionText);\n } else {\n throw new Error(\n \"Invalid lookup attribute, lookup must be string or function.\"\n );\n }\n }\n });\n\n if (this.current.collection.menuItemLimit) {\n items = items.slice(0, this.current.collection.menuItemLimit);\n }\n\n this.current.filteredItems = items;\n\n let ul = this.menu.querySelector(\"ul\");\n\n this.range.positionMenuAtCaret(scrollTo);\n\n if (!items.length) {\n let noMatchEvent = new CustomEvent(\"tribute-no-match\", {\n detail: this.menu\n });\n this.current.element.dispatchEvent(noMatchEvent);\n if (\n (typeof this.current.collection.noMatchTemplate === \"function\" &&\n !this.current.collection.noMatchTemplate()) ||\n !this.current.collection.noMatchTemplate\n ) {\n this.hideMenu();\n } else {\n typeof this.current.collection.noMatchTemplate === \"function\"\n ? (ul.innerHTML = this.current.collection.noMatchTemplate())\n : (ul.innerHTML = this.current.collection.noMatchTemplate);\n }\n\n return;\n }\n\n ul.innerHTML = \"\";\n let fragment = this.range.getDocument().createDocumentFragment();\n\n items.forEach((item, index) => {\n let li = this.range.getDocument().createElement(\"li\");\n li.setAttribute(\"data-index\", index);\n li.className = this.current.collection.itemClass;\n li.addEventListener(\"mousemove\", e => {\n let [li, index] = this._findLiTarget(e.target);\n if (e.movementY !== 0) {\n this.events.setActiveLi(index);\n }\n });\n if (this.menuSelected === index) {\n li.classList.add(this.current.collection.selectClass);\n }\n li.innerHTML = this.current.collection.menuItemTemplate(item);\n fragment.appendChild(li);\n });\n ul.appendChild(fragment);\n };\n\n if (typeof this.current.collection.values === \"function\") {\n this.current.collection.values(this.current.mentionText, processValues);\n } else {\n processValues(this.current.collection.values);\n }\n }\n\n _findLiTarget(el) {\n if (!el) return [];\n const index = el.getAttribute(\"data-index\");\n return !index ? this._findLiTarget(el.parentNode) : [el, index];\n }\n\n showMenuForCollection(element, collectionIndex) {\n if (element !== document.activeElement) {\n this.placeCaretAtEnd(element);\n }\n\n this.current.collection = this.collection[collectionIndex || 0];\n this.current.externalTrigger = true;\n this.current.element = element;\n\n if (element.isContentEditable)\n this.insertTextAtCursor(this.current.collection.trigger);\n else this.insertAtCaret(element, this.current.collection.trigger);\n\n this.showMenuFor(element);\n }\n\n // TODO: make sure this works for inputs/textareas\n placeCaretAtEnd(el) {\n el.focus();\n if (\n typeof window.getSelection != \"undefined\" &&\n typeof document.createRange != \"undefined\"\n ) {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.body.createTextRange != \"undefined\") {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n }\n\n // for contenteditable\n insertTextAtCursor(text) {\n var sel, range;\n sel = window.getSelection();\n range = sel.getRangeAt(0);\n range.deleteContents();\n var textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.selectNodeContents(textNode);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n // for regular inputs\n insertAtCaret(textarea, text) {\n var scrollPos = textarea.scrollTop;\n var caretPos = textarea.selectionStart;\n\n var front = textarea.value.substring(0, caretPos);\n var back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length\n );\n textarea.value = front + text + back;\n caretPos = caretPos + text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n }\n\n hideMenu() {\n if (this.menu) {\n this.menu.style.cssText = \"display: none;\";\n this.isActive = false;\n this.menuSelected = 0;\n this.current = {};\n }\n }\n\n selectItemAtIndex(index, originalEvent) {\n index = parseInt(index);\n if (typeof index !== \"number\" || isNaN(index)) return;\n let item = this.current.filteredItems[index];\n let content = this.current.collection.selectTemplate(item);\n if (content !== null) this.replaceText(content, originalEvent, item);\n }\n\n replaceText(content, originalEvent, item) {\n this.range.replaceTriggerText(content, true, true, originalEvent, item);\n }\n\n _append(collection, newValues, replace) {\n if (typeof collection.values === \"function\") {\n throw new Error(\"Unable to append to values, as it is a function.\");\n } else if (!replace) {\n collection.values = collection.values.concat(newValues);\n } else {\n collection.values = newValues;\n }\n }\n\n append(collectionIndex, newValues, replace) {\n let index = parseInt(collectionIndex);\n if (typeof index !== \"number\")\n throw new Error(\"please provide an index for the collection to update.\");\n\n let collection = this.collection[index];\n\n this._append(collection, newValues, replace);\n }\n\n appendCurrent(newValues, replace) {\n if (this.isActive) {\n this._append(this.current.collection, newValues, replace);\n } else {\n throw new Error(\n \"No active state. Please use append instead and pass an index.\"\n );\n }\n }\n\n detach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._detach(el[i]);\n }\n } else {\n this._detach(el);\n }\n }\n\n _detach(el) {\n this.events.unbind(el);\n if (el.tributeMenu) {\n this.menuEvents.unbind(el.tributeMenu);\n }\n\n setTimeout(() => {\n el.removeAttribute(\"data-tribute\");\n this.isActive = false;\n if (el.tributeMenu) {\n el.tributeMenu.remove();\n }\n });\n }\n}\n\n/**\n * Tribute.js\n * Native ES6 JavaScript @mention Plugin\n **/\n\nexport default Tribute;\n","import '../assets/NcRichContenteditable-BbOjh6i7.css';\nimport { r as register, C as t34, F as t31, a as t, G as n } from \"./_l10n-DQgzdF9S.mjs\";\nimport { g as getAvatarUrl } from \"./getAvatarUrl-DxvUjKMi.mjs\";\nimport { N as NcUserStatusIcon } from \"./NcUserStatusIcon-kbPFeJV6.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { r as richEditor } from \"./index-Dpk-sL3D.mjs\";\nimport { e as emojiSearch, a as emojiAddRecent } from \"./emoji-BY_D0V5K.mjs\";\nimport \"./NcRichText-CwXSzf21.mjs\";\nimport \"./index-56SXuvlv.mjs\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport { g as getLinkWithPicker, d as searchProvider } from \"./referencePickerModal-4kExxHbR.mjs\";\nimport \"unist-util-visit\";\nimport \"unist-builder\";\nimport \"@nextcloud/router\";\nimport \"../Components/NcButton.mjs\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/sharing/public\";\nimport \"@nextcloud/auth\";\nimport \"../Components/NcEmptyContent.mjs\";\nimport \"./NcSelect-CjUzohn5.mjs\";\nimport \"../Components/NcLoadingIcon.mjs\";\nimport \"./NcTextField-o_8gWurX.mjs\";\nimport \"../Components/NcModal.mjs\";\nimport \"@nextcloud/event-bus\";\nimport Tribute from \"tributejs/dist/tribute.esm.js\";\nimport debounce from \"debounce\";\nimport stringLength from \"string-length\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nconst _sfc_main$1 = {\n name: \"NcAutoCompleteResult\",\n components: {\n NcUserStatusIcon\n },\n props: {\n /**\n * @deprecated Use `label` instead\n */\n title: {\n type: String,\n required: false,\n default: null\n },\n label: {\n type: String,\n required: false,\n default: null\n },\n subline: {\n type: String,\n default: null\n },\n id: {\n type: String,\n default: null\n },\n icon: {\n type: String,\n required: true\n },\n iconUrl: {\n type: String,\n default: null\n },\n source: {\n type: String,\n required: true\n },\n status: {\n type: [Object, Array],\n default: () => ({})\n }\n },\n computed: {\n avatarUrl() {\n if (this.iconUrl) {\n return this.iconUrl;\n }\n return this.id && this.source === \"users\" ? this.getAvatarUrl(this.id, 44) : null;\n },\n // For backwards compatibility\n labelWithFallback() {\n return this.label || this.title;\n }\n },\n methods: {\n getAvatarUrl\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"autocomplete-result\" }, [_c(\"div\", { staticClass: \"autocomplete-result__icon\", class: [_vm.icon, `autocomplete-result__icon--${_vm.avatarUrl ? \"with-avatar\" : \"\"}`], style: _vm.avatarUrl ? { backgroundImage: `url(${_vm.avatarUrl})` } : null }, [_vm.status.icon ? _c(\"span\", { staticClass: \"autocomplete-result__status autocomplete-result__status--icon\" }, [_vm._v(\" \" + _vm._s(_vm.status && _vm.status.icon || \"\") + \" \")]) : _vm.status.status && _vm.status.status !== \"offline\" ? _c(\"NcUserStatusIcon\", { staticClass: \"autocomplete-result__status\", attrs: { \"status\": _vm.status.status } }) : _vm._e()], 1), _c(\"span\", { staticClass: \"autocomplete-result__content\" }, [_c(\"span\", { staticClass: \"autocomplete-result__title\", attrs: { \"title\": _vm.labelWithFallback } }, [_vm._v(\" \" + _vm._s(_vm.labelWithFallback) + \" \")]), _vm.subline ? _c(\"span\", { staticClass: \"autocomplete-result__subline\" }, [_vm._v(\" \" + _vm._s(_vm.subline) + \" \")]) : _vm._e()])]);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"c723f255\"\n);\nconst NcAutoCompleteResult = __component__$1.exports;\nregister(t31, t34);\nconst style1 = {\n \"material-design-icon\": \"_material-design-icon_1sdgd_12\",\n \"tribute-container\": \"_tribute-container_1sdgd_20\",\n \"tribute-container__item\": \"_tribute-container__item_1sdgd_41\",\n \"tribute-container--focus-visible\": \"_tribute-container--focus-visible_1sdgd_55\",\n \"tribute-container-autocomplete\": \"_tribute-container-autocomplete_1sdgd_59\",\n \"tribute-container-emoji\": \"_tribute-container-emoji_1sdgd_65\",\n \"tribute-container-link\": \"_tribute-container-link_1sdgd_66\",\n \"tribute-item\": \"_tribute-item_1sdgd_71\",\n \"tribute-item__title\": \"_tribute-item__title_1sdgd_86\",\n \"tribute-item__icon\": \"_tribute-item__icon_1sdgd_91\"\n};\nconst smilesCharacters = [\"d\", \"D\", \"p\", \"P\", \"s\", \"S\", \"x\", \"X\", \")\", \"(\", \"|\", \"/\"];\nconst textSmiles = [];\nsmilesCharacters.forEach((char) => {\n textSmiles.push(\":\" + char);\n textSmiles.push(\":-\" + char);\n});\nconst _sfc_main = {\n name: \"NcRichContenteditable\",\n mixins: [richEditor],\n inheritAttrs: false,\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n },\n props: {\n /**\n * The ID attribute of the content editable\n */\n id: {\n type: String,\n default: () => GenRandomId(7)\n },\n /**\n * Visual label of the contenteditable\n */\n label: {\n type: String,\n default: \"\"\n },\n /**\n * Removed in v9 - use `modelValue` (`v-model`) instead\n * @deprecated\n */\n value: {\n type: String,\n default: void 0\n },\n modelValue: {\n type: String,\n default: \"\"\n },\n placeholder: {\n type: String,\n default: t(\"Write a message …\")\n },\n autoComplete: {\n type: Function,\n default: () => []\n },\n menuContainer: {\n type: Element,\n default: () => document.body\n },\n /**\n * Make the contenteditable looks like a textarea or not.\n * Default looks like a single-line input.\n * This also handle the default enter/shift+enter behaviour.\n * if multiline, enter = newline; otherwise enter = submit\n * shift+enter always add a new line. ctrl+enter always submits\n */\n multiline: {\n type: Boolean,\n default: false\n },\n /**\n * Is the content editable ?\n */\n contenteditable: {\n type: Boolean,\n default: true\n },\n /**\n * Disable the editing and show specific disabled design\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Max allowed length\n */\n maxlength: {\n type: Number,\n default: null\n },\n /**\n * Enable or disable emoji autocompletion\n */\n emojiAutocomplete: {\n type: Boolean,\n default: true\n },\n /**\n * Enable or disable link autocompletion\n */\n linkAutocomplete: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"submit\",\n \"paste\",\n /**\n * Removed in v9 - use `update:modelValue` (`v-model`) instead\n * @deprecated\n */\n \"update:value\",\n \"update:modelValue\",\n /** Same as update:modelValue for Vue 2 compatibility */\n \"update:model-value\",\n \"smart-picker-submit\"\n ],\n setup() {\n const uid = GenRandomId(5);\n const model = useModelMigration(\"value\", \"update:value\", true);\n return {\n model,\n // Constants\n labelId: `nc-rich-contenteditable-${uid}-label`,\n tributeId: `nc-rich-contenteditable-${uid}-tribute`,\n /**\n * Non-reactive property to store Tribute instance\n *\n * @type {import('tributejs').default | null}\n */\n tribute: null,\n tributeStyleMutationObserver: null\n };\n },\n data() {\n return {\n // Represent the raw untrimmed text of the contenteditable\n // serves no other purpose than to check whether the\n // content is empty or not\n localValue: this.model,\n // Is in text composition session in IME\n isComposing: false,\n // Tribute autocomplete\n isAutocompleteOpen: false,\n autocompleteActiveId: void 0,\n isTributeIntegrationDone: false\n };\n },\n computed: {\n /**\n * Is the current trimmed value empty?\n *\n * @return {boolean}\n */\n isEmptyValue() {\n return !this.localValue || this.localValue.trim() === \"\";\n },\n /**\n * Is the current value over maxlength?\n *\n * @return {boolean}\n */\n isOverMaxlength() {\n if (this.isEmptyValue || !this.maxlength) {\n return false;\n }\n return stringLength(this.localValue) > this.maxlength;\n },\n /**\n * Tooltip to show if characters count is over limit\n *\n * @return {string}\n */\n tooltipString() {\n if (!this.isOverMaxlength) {\n return null;\n }\n return n(\"Message limit of %n character reached\", \"Message limit of %n characters reached\", this.maxlength);\n },\n /**\n * Edit is only allowed when contenteditableis true and disabled is false\n *\n * @return {boolean}\n */\n canEdit() {\n return this.contenteditable && !this.disabled;\n },\n /**\n * Proxied native event handlers without custom event handlers\n *\n * @return {Record<string, Function>}\n */\n listeners() {\n const listeners = { ...this.$listeners };\n delete listeners.paste;\n return listeners;\n },\n /**\n * Compute debounce function for the autocomplete function\n */\n debouncedAutoComplete() {\n return debounce(async (search, callback) => {\n this.autoComplete(search, callback);\n }, 100);\n }\n },\n watch: {\n /**\n * If the parent value change, we compare the plain text rendering\n * If it's different, we render everything and update the main content\n */\n model() {\n const html = this.$refs.contenteditable.innerHTML;\n if (this.model.trim() !== this.parseContent(html).trim()) {\n this.updateContent(this.model);\n }\n }\n },\n mounted() {\n this.initializeTribute();\n this.updateContent(this.model);\n this.$refs.contenteditable.contentEditable = this.canEdit;\n },\n beforeDestroy() {\n if (this.tribute) {\n this.tribute.detach(this.$refs.contenteditable);\n }\n if (this.tributeStyleMutationObserver) {\n this.tributeStyleMutationObserver.disconnect();\n }\n },\n methods: {\n /**\n * Focus the richContenteditable\n *\n * @public\n */\n focus() {\n this.$refs.contenteditable.focus();\n },\n initializeTribute() {\n const renderMenuItem = (content) => `<div id=\"nc-rich-contenteditable-tribute-item-${GenRandomId(5)}\" class=\"${this.$style[\"tribute-item\"]}\" role=\"option\">${content}</div>`;\n const tributesCollection = [];\n tributesCollection.push({\n fillAttr: \"id\",\n // Search against id and label (display name) (fallback to title for v8.0.0..8.6.1 compatibility)\n lookup: (result) => `${result.id} ${result.label ?? result.title}`,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => renderMenuItem(this.renderComponentHtml(item.original, NcAutoCompleteResult)),\n // Hide if no results\n noMatchTemplate: () => '<span class=\"hidden\"></span>',\n // Inner display of mentions\n selectTemplate: (item) => this.genSelectTemplate(item?.original?.id),\n // Autocompletion results\n values: this.debouncedAutoComplete,\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-autocomplete\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n if (this.emojiAutocomplete) {\n tributesCollection.push({\n trigger: \":\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (result, query) => query,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => {\n if (textSmiles.includes(item.original)) {\n return item.original;\n }\n return renderMenuItem(`<span class=\"${this.$style[\"tribute-item__emoji\"]}\">${item.original.native}</span> :${item.original.short_name}`);\n },\n // Hide if no results\n noMatchTemplate: () => t(\"No emoji found\"),\n // Display raw emoji along with its name\n selectTemplate: (item) => {\n if (textSmiles.includes(item.original)) {\n return item.original;\n }\n emojiAddRecent(item.original);\n return item.original.native;\n },\n // Pass the search results as values\n values: (text, cb) => {\n const emojiResults = emojiSearch(text);\n if (textSmiles.includes(\":\" + text)) {\n emojiResults.unshift(\":\" + text);\n }\n cb(emojiResults);\n },\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-emoji\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n }\n if (this.linkAutocomplete) {\n tributesCollection.push({\n trigger: \"/\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (result, query) => query,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => renderMenuItem(`<img class=\"${this.$style[\"tribute-item__icon\"]}\" src=\"${item.original.icon_url}\"> <span class=\"${this.$style[\"tribute-item__title\"]}\">${item.original.title}</span>`),\n // Hide if no results\n noMatchTemplate: () => t(\"No link provider found\"),\n selectTemplate: this.getLink,\n // Pass the search results as values\n values: (text, cb) => cb(searchProvider(text)),\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-link\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n }\n this.tribute = new Tribute({\n collection: tributesCollection,\n // FIXME: tributejs doesn't support allowSpaces as a collection option, only as a global one\n // Requires to fork a library to allow spaces only in the middle of mentions ('@' trigger)\n allowSpaces: false,\n // Where to inject the menu popup\n menuContainer: this.menuContainer\n });\n this.tribute.attach(this.$refs.contenteditable);\n },\n getLink(item) {\n getLinkWithPicker(item.original.id).then((result) => {\n const tmpElem = document.getElementById(\"tmp-smart-picker-result-node\");\n const eventData = {\n result,\n insertText: true\n };\n this.$emit(\"smart-picker-submit\", eventData);\n if (eventData.insertText) {\n const newElem = document.createTextNode(result);\n tmpElem.replaceWith(newElem);\n this.setCursorAfter(newElem);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n } else {\n tmpElem.remove();\n }\n }).catch((error) => {\n console.debug(\"Smart picker promise rejected:\", error);\n const tmpElem = document.getElementById(\"tmp-smart-picker-result-node\");\n this.setCursorAfter(tmpElem);\n tmpElem.remove();\n });\n return '<span id=\"tmp-smart-picker-result-node\"></span>';\n },\n setCursorAfter(element) {\n const range = document.createRange();\n range.setEndAfter(element);\n range.collapse();\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n },\n moveCursorToEnd() {\n if (!document.createRange) {\n return;\n }\n const range = document.createRange();\n range.selectNodeContents(this.$refs.contenteditable);\n range.collapse(false);\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n },\n /**\n * Re-emit the input event to the parent\n *\n * @param {Event} event the input event\n */\n onInput(event) {\n this.updateValue(event.target.innerHTML);\n },\n /**\n * When pasting, sanitize the content, extract text\n * and render it again\n *\n * @param {Event} event the paste event\n * @fires Event paste the original paste event\n */\n onPaste(event) {\n if (!this.canEdit) {\n return;\n }\n event.preventDefault();\n const clipboardData = event.clipboardData;\n this.$emit(\"paste\", event);\n if (clipboardData.files.length !== 0 || !Object.values(clipboardData.items).find((item) => item?.type.startsWith(\"text\"))) {\n return;\n }\n const text = clipboardData.getData(\"text\");\n const selection = window.getSelection();\n const range = selection.getRangeAt(0);\n range.deleteContents();\n range.insertNode(document.createTextNode(text));\n range.collapse(false);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n },\n /**\n * Update the value text from the provided html\n *\n * @param {string} htmlOrText the html content (or raw text with @mentions)\n */\n updateValue(htmlOrText) {\n const text = this.parseContent(htmlOrText).replace(/^\\n$/, \"\");\n this.localValue = text;\n this.model = text;\n },\n /**\n * Update content and local value\n *\n * @param {string} value the message value\n */\n updateContent(value) {\n const renderedContent = this.renderContent(value);\n this.$refs.contenteditable.innerHTML = renderedContent;\n this.localValue = value;\n },\n /**\n * Enter key pressed. Submits if not multiline\n *\n * @param {Event} event the keydown event\n */\n onEnter(event) {\n if (this.multiline || this.isOverMaxlength || this.tribute.isActive || this.isComposing) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this.$emit(\"submit\", event);\n },\n /**\n * Ctrl + Enter key pressed is used to submit\n *\n * @param {Event} event the keydown event\n */\n onCtrlEnter(event) {\n if (this.isOverMaxlength) {\n return;\n }\n this.$emit(\"submit\", event);\n },\n onKeyUp(event) {\n event.stopImmediatePropagation();\n },\n onKeyEsc(event) {\n if (this.tribute && this.isAutocompleteOpen) {\n event.stopImmediatePropagation();\n this.tribute.hideMenu();\n }\n },\n /**\n * Get HTML element with Tribute.js container\n * @return {HTMLElement}\n */\n getTributeContainer() {\n return this.tribute.menu;\n },\n /**\n * Get the currently selected item element id in Tribute.js container\n * @return {HTMLElement}\n */\n getTributeSelectedItem() {\n return this.getTributeContainer().querySelector('.highlight [id^=\"nc-rich-contenteditable-tribute-item-\"]');\n },\n /**\n * Handle Tribute activation\n * @param {boolean} isActive - is active\n */\n onTributeActive(isActive) {\n this.isAutocompleteOpen = isActive;\n if (isActive) {\n this.getTributeContainer().setAttribute(\"class\", this.tribute.current.collection.containerClass || this.$style[\"tribute-container\"]);\n this.setupTributeIntegration();\n document.removeEventListener(\"click\", this.hideTribute, true);\n } else {\n this.debouncedAutoComplete.clear();\n this.autocompleteActiveId = void 0;\n this.setTributeFocusVisible(false);\n }\n },\n onTributeArrowKeyDown() {\n if (!this.isAutocompleteOpen) {\n return;\n }\n this.setTributeFocusVisible(true);\n this.onTributeSelectedItemWillChange();\n },\n onTributeSelectedItemWillChange() {\n requestAnimationFrame(() => {\n this.autocompleteActiveId = this.getTributeSelectedItem()?.id;\n });\n },\n setupTributeIntegration() {\n if (this.isTributeIntegrationDone) {\n return;\n }\n this.isTributeIntegrationDone = true;\n const tributeContainer = this.getTributeContainer();\n tributeContainer.id = this.tributeId;\n tributeContainer.setAttribute(\"role\", \"listbox\");\n const ul = tributeContainer.children[0];\n ul.setAttribute(\"role\", \"presentation\");\n this.tributeStyleMutationObserver = new MutationObserver(([{ target }]) => {\n if (target.style.display !== \"none\") {\n this.onTributeSelectedItemWillChange();\n }\n }).observe(tributeContainer, {\n attributes: true,\n attributeFilter: [\"style\"]\n });\n tributeContainer.addEventListener(\"mousemove\", () => {\n this.setTributeFocusVisible(false);\n this.onTributeSelectedItemWillChange();\n }, { passive: true });\n },\n /**\n * Set tribute-container--focus-visible class on the Tribute container when the user navigates the listbox via keyboard.\n *\n * Because the real focus is kept on the textbox, we cannot use the :focus-visible pseudo-class\n * to style selected options in the autocomplete listbox.\n *\n * @param {boolean} withFocusVisible - should the focus-visible class be added\n */\n setTributeFocusVisible(withFocusVisible) {\n if (withFocusVisible) {\n this.getTributeContainer().classList.add(this.$style[\"tribute-container--focus-visible\"]);\n } else {\n this.getTributeContainer().classList.remove(this.$style[\"tribute-container--focus-visible\"]);\n }\n },\n /**\n * Show tribute menu programmatically.\n * @param {string} trigger - trigger character, can be '/', '@', or ':'\n *\n * @public\n */\n showTribute(trigger) {\n this.focus();\n const index = this.tribute.collection.findIndex((collection) => collection.trigger === trigger);\n this.tribute.showMenuForCollection(this.$refs.contenteditable, index);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n document.addEventListener(\"click\", this.hideTribute, true);\n },\n /**\n * Hide tribute menu programmatically\n *\n */\n hideTribute() {\n this.tribute.hideMenu();\n document.removeEventListener(\"click\", this.hideTribute, true);\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"rich-contenteditable\" }, [_c(\"div\", _vm._g(_vm._b({ ref: \"contenteditable\", staticClass: \"rich-contenteditable__input\", class: {\n \"rich-contenteditable__input--empty\": _vm.isEmptyValue,\n \"rich-contenteditable__input--multiline\": _vm.multiline,\n \"rich-contenteditable__input--has-label\": _vm.label,\n \"rich-contenteditable__input--overflow\": _vm.isOverMaxlength,\n \"rich-contenteditable__input--disabled\": _vm.disabled\n }, attrs: { \"id\": _vm.id, \"contenteditable\": _vm.canEdit, \"aria-labelledby\": _vm.label ? _vm.labelId : void 0, \"aria-placeholder\": _vm.placeholder, \"aria-multiline\": \"true\", \"role\": \"textbox\", \"aria-haspopup\": \"listbox\", \"aria-autocomplete\": \"inline\", \"aria-controls\": _vm.tributeId, \"aria-expanded\": _vm.isAutocompleteOpen ? \"true\" : \"false\", \"aria-activedescendant\": _vm.autocompleteActiveId, \"title\": _vm.tooltipString }, on: { \"focus\": _vm.moveCursorToEnd, \"input\": _vm.onInput, \"compositionstart\": function($event) {\n _vm.isComposing = true;\n }, \"compositionend\": function($event) {\n _vm.isComposing = false;\n }, \"!keydown\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) return null;\n return _vm.onKeyEsc.apply(null, arguments);\n }, \"keydown\": [function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n return _vm.onEnter.apply(null, arguments);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n if (!$event.ctrlKey) return null;\n if ($event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.onCtrlEnter.apply(null, arguments);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"up\", 38, $event.key, [\"Up\", \"ArrowUp\"])) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.stopPropagation();\n return _vm.onTributeArrowKeyDown.apply(null, arguments);\n }, function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"down\", 40, $event.key, [\"Down\", \"ArrowDown\"])) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.stopPropagation();\n return _vm.onTributeArrowKeyDown.apply(null, arguments);\n }], \"paste\": _vm.onPaste, \"!keyup\": function($event) {\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.onKeyUp.apply(null, arguments);\n }, \"tribute-active-true\": function($event) {\n return _vm.onTributeActive(true);\n }, \"tribute-active-false\": function($event) {\n return _vm.onTributeActive(false);\n } } }, \"div\", _vm.$attrs, false), _vm.listeners)), _vm.label ? _c(\"div\", { staticClass: \"rich-contenteditable__label\", attrs: { \"id\": _vm.labelId } }, [_vm._v(\" \" + _vm._s(_vm.label) + \" \")]) : _vm._e()]);\n};\nvar _sfc_staticRenderFns = [];\nconst __cssModules = {\n \"$style\": style1\n};\nfunction _sfc_injectStyles(ctx) {\n for (var key in __cssModules) {\n this[key] = __cssModules[key];\n }\n}\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n _sfc_injectStyles,\n \"a47e9298\"\n);\nconst NcRichContenteditable = __component__.exports;\nexport {\n NcAutoCompleteResult as N,\n NcRichContenteditable as a\n};\n//# sourceMappingURL=NcRichContenteditable-B8UqleMX.mjs.map\n","import NcEllipsisedOption from \"../Components/NcEllipsisedOption.mjs\";\nimport { N as NcSelect } from \"./NcSelect-CjUzohn5.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { r as register, j as t0, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst xmlToJson = (xml) => {\n let obj = {};\n if (xml.nodeType === 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n const attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType === 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n const item = xml.childNodes.item(i);\n const nodeName = item.nodeName;\n if (typeof obj[nodeName] === \"undefined\") {\n obj[nodeName] = xmlToJson(item);\n } else {\n if (typeof obj[nodeName].push === \"undefined\") {\n const old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(xmlToJson(item));\n }\n }\n }\n return obj;\n};\nconst parseXml = (xml) => {\n let dom = null;\n try {\n dom = new DOMParser().parseFromString(xml, \"text/xml\");\n } catch (e) {\n console.error(\"Failed to parse xml document\", e);\n }\n return dom;\n};\nconst xmlToTagList = (xml) => {\n const json = xmlToJson(parseXml(xml));\n const list = json[\"d:multistatus\"][\"d:response\"];\n const result = [];\n for (const index in list) {\n const tag = list[index][\"d:propstat\"];\n if (tag[\"d:status\"][\"#text\"] !== \"HTTP/1.1 200 OK\") {\n continue;\n }\n result.push({\n id: parseInt(tag[\"d:prop\"][\"oc:id\"][\"#text\"]),\n displayName: tag[\"d:prop\"][\"oc:display-name\"][\"#text\"],\n canAssign: tag[\"d:prop\"][\"oc:can-assign\"][\"#text\"] === \"true\",\n userAssignable: tag[\"d:prop\"][\"oc:user-assignable\"][\"#text\"] === \"true\",\n userVisible: tag[\"d:prop\"][\"oc:user-visible\"][\"#text\"] === \"true\"\n });\n }\n return result;\n};\nconst searchTags = async function() {\n if (window.NextcloudVueDocs) {\n return Promise.resolve(xmlToTagList(window.NextcloudVueDocs.tags));\n }\n const result = await axios({\n method: \"PROPFIND\",\n url: generateRemoteUrl(\"dav\") + \"/systemtags/\",\n 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>`\n });\n return xmlToTagList(result.data);\n};\nregister(t0);\nconst _sfc_main = {\n name: \"NcSelectTags\",\n components: {\n NcEllipsisedOption,\n NcSelect\n },\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n },\n props: {\n // Add NcSelect prop defaults and populate $props\n ...NcSelect.props,\n /**\n * Enable automatic fetching of tags\n *\n * If `false`, available tags must be passed using the `options` prop\n */\n fetchTags: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to generate the label text\n *\n * @see https://vue-select.org/api/props.html#getoptionlabel\n */\n getOptionLabel: {\n type: Function,\n default: (option) => {\n const { displayName, userVisible, userAssignable } = option;\n if (userVisible === false) {\n return t(\"{tag} (invisible)\", { tag: displayName });\n }\n if (userAssignable === false) {\n return t(\"{tag} (restricted)\", { tag: displayName });\n }\n return displayName;\n }\n },\n /**\n * Sets the maximum number of tags to display in the dropdown list\n *\n * Because of compatibility reasons only 5 tag entries are shown by\n * default\n */\n limit: {\n type: Number,\n default: 5\n },\n /**\n * Allow selection of multiple options\n *\n * This prop automatically sets the internal `closeOnSelect` prop to\n * its boolean opposite\n *\n * @see https://vue-select.org/api/props.html#multiple\n */\n multiple: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to filter available options\n */\n optionsFilter: {\n type: Function,\n default: null\n },\n /**\n * Enable passing of `value` prop and emitted `input` events as-is\n * i.e. for usage with `v-model`\n *\n * If `true`, custom internal `value` and `input` handling is disabled\n */\n passthru: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder text\n *\n * @see https://vue-select.org/api/props.html#placeholder\n */\n placeholder: {\n type: String,\n default: t(\"Select a tag\")\n },\n /**\n * Removed in v9 - use `modelValue` (`v-model`) instead\n * @deprecated\n */\n value: {\n type: [Number, Array, Object],\n default: void 0\n },\n /**\n * Currently selected value\n */\n modelValue: {\n type: [Number, Array, Object],\n default: null\n },\n /**\n * Any available prop\n *\n * @see https://vue-select.org/api/props.html\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n },\n emits: [\n /**\n * Removed in v9 - use `update:modelValue` (`v-model`) instead\n */\n \"input\",\n /**\n * Emitted on input events of the multiselect field\n *\n * @type {number|number[]}\n */\n \"update:modelValue\",\n /** Same as update:modelValue for Vue 2 compatibility */\n \"update:model-value\",\n /**\n * All events from https://vue-select.org/api/events.html\n */\n // Not an actual event but needed to show in vue-styleguidist docs\n \" \"\n ],\n setup() {\n const model = useModelMigration(\"value\", \"input\");\n const noop = () => {\n };\n return {\n model,\n noop\n };\n },\n data() {\n return {\n search: \"\",\n availableTags: []\n };\n },\n computed: {\n availableOptions() {\n if (this.optionsFilter) {\n return this.tags.filter(this.optionsFilter);\n }\n return this.tags;\n },\n localValue() {\n if (this.tags.length === 0) {\n return [];\n }\n if (this.multiple) {\n return this.model.filter((tag) => tag !== \"\").map((id) => this.tags.find((tag2) => tag2.id === id));\n } else {\n return this.tags.find((tag) => tag.id === this.model);\n }\n },\n propsToForward() {\n const {\n // Props handled by this component\n fetchTags,\n optionsFilter,\n passthru,\n // Props to forward\n ...propsToForward\n } = this.$props;\n return propsToForward;\n },\n tags() {\n if (!this.fetchTags) {\n return this.options;\n }\n return this.availableTags;\n }\n },\n async created() {\n if (!this.fetchTags) {\n return;\n }\n try {\n const result = await searchTags();\n this.availableTags = result;\n } catch (error) {\n console.error(\"Loading systemtags failed\", error);\n }\n },\n methods: {\n handleInput(value) {\n if (this.multiple) {\n this.model = value.map((element) => element.id);\n } else {\n if (value === null) {\n this.model = null;\n } else {\n this.model = value.id;\n }\n }\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"NcSelect\", _vm._g(_vm._b({ attrs: { \"options\": _vm.availableOptions, \"close-on-select\": !_vm.multiple, \"value\": _vm.passthru ? _vm.model : _vm.localValue }, on: { \"search\": (searchString) => _vm.search = searchString }, scopedSlots: _vm._u([{ key: \"option\", fn: function(option) {\n return [_c(\"NcEllipsisedOption\", { attrs: { \"name\": _vm.getOptionLabel(option), \"search\": _vm.search } })];\n } }, { key: \"selected-option\", fn: function(selectedOption) {\n return [_c(\"NcEllipsisedOption\", { attrs: { \"name\": _vm.getOptionLabel(selectedOption), \"search\": _vm.search } })];\n } }, _vm._l(_vm.$scopedSlots, function(_, name) {\n return { key: name, fn: function(data) {\n return [_vm._t(name, null, null, data)];\n } };\n })], null, true) }, \"NcSelect\", _vm.propsToForward, false), {\n ..._vm.$listeners,\n input: _vm.passthru ? _vm.$listeners.input : _vm.noop,\n \"update:modelValue\": _vm.passthru ? _vm.$listeners[\"update:modelValue\"] : _vm.handleInput,\n \"update:model-value\": _vm.passthru ? _vm.$listeners[\"update:model-value\"] : _vm.noop\n }));\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n null\n);\nconst NcSelectTags = __component__.exports;\nexport {\n NcSelectTags as N\n};\n//# sourceMappingURL=NcSelectTags-wJN9J7_t.mjs.map\n","import '../assets/NcSelectUsers-CRH00RA2.css';\nimport { ref, watch } from \"vue\";\nimport { r as register, i as t43, d as t15, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { N as NcListItemIcon } from \"./NcListItemIcon-0H1Pepui.mjs\";\nimport { N as NcSelect } from \"./NcSelect-CjUzohn5.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t15, t43);\nconst _sfc_main = {\n __name: \"NcSelectUsers\",\n props: {\n /**\n * `aria-label` for the clear input button\n */\n ariaLabelClearSelected: {\n type: String,\n default: t(\"Clear selected\")\n },\n /**\n * `aria-label` for the listbox element\n */\n ariaLabelListbox: {\n type: String,\n default: t(\"Options\")\n },\n /**\n * Allows to customize the `aria-label` for the deselect-option button\n * The default is \"Deselect \" + optionLabel\n * @type {(optionLabel: string) => string}\n */\n ariaLabelDeselectOption: {\n type: Function,\n default: (optionLabel) => t(\"Deselect {option}\", { option: optionLabel })\n },\n /**\n * Keep the dropdown open after selecting an entry.\n */\n keepOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the component\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Callback to determine if the provided option should match the current search text.\n * Used to determine if the option should be displayed.\n *\n * By default it filters by the `displayName` and `subname` properties of the user\n * option object unless this prop is set explicitly\n */\n filterBy: {\n type: Function,\n default: null\n },\n /**\n * Input element id\n */\n inputId: {\n type: String,\n default: () => GenRandomId()\n },\n /**\n * Visible label for the input element\n *\n * @default 'Select account'\n */\n inputLabel: {\n type: String,\n default: t(\"Select account\")\n },\n /**\n * Pass true if you are using an external label.\n * In this case make sure you set the `for` attribute of your `<label>` to the `inputId` of this component.\n */\n labelOutside: {\n type: Boolean,\n default: false\n },\n /**\n * Show a loading icon.\n *\n * @default false\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Allow selection of multiple options\n *\n * @default false\n */\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Disable automatic wrapping when selected options overflow the width.\n *\n * @default false\n */\n noWrap: {\n type: Boolean,\n default: false\n },\n /**\n * Array of users.\n *\n * @type {{displayName: string, user: string, subname?: string, iconSvg?: string, iconName?: string, isGuest?: boolean, isNoUser?: boolean}[]}\n */\n options: {\n type: Array,\n default: () => []\n },\n /**\n * Placeholder text.\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * Enable if a value is required for native form validation\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Currently selected value\n *\n * The `v-model` directive may be used for two-way data binding\n */\n modelValue: {\n type: Object,\n default: null\n }\n },\n emits: [\"search\", \"update:modelValue\"],\n setup(__props, { emit }) {\n const props = __props;\n const search = ref(\"\");\n watch(search, () => {\n emit(\"search\", search.value);\n });\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n function localFilterBy(option, label, search2) {\n if (props.filterBy) {\n return props.filterBy;\n }\n const EMAIL_NOTATION = /[^<]*<([^>]+)/;\n const match = search2.match(EMAIL_NOTATION);\n const subname = option.subname?.toLocaleLowerCase() ?? \"\";\n return match && subname.indexOf(match[1].toLocaleLowerCase()) > -1 || `${label} ${option.subname}`.toLocaleLowerCase().indexOf(search2.toLocaleLowerCase()) > -1;\n }\n return { __sfc: true, props, emit, search, clickableArea, gridBaseLine, avatarSize, localFilterBy, NcListItemIcon, NcSelect };\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(_setup.NcSelect, _vm._b({ staticClass: \"nc-select-users\", attrs: { \"filter-by\": _setup.localFilterBy, \"label\": \"displayName\" }, on: { \"search\": function($event) {\n _setup.search = $event;\n }, \"update:model-value\": function($event) {\n return _vm.$emit(\"update:modelValue\", $event);\n } }, scopedSlots: _vm._u([{ key: \"option\", fn: function(option) {\n return [_c(_setup.NcListItemIcon, _vm._b({ attrs: { \"avatar-size\": 32, \"name\": option.displayName, \"search\": _setup.search } }, \"NcListItemIcon\", option, false))];\n } }, { key: \"selected-option\", fn: function(selectedOption) {\n return [_c(_setup.NcListItemIcon, _vm._b({ attrs: { \"avatar-size\": _setup.avatarSize, \"name\": selectedOption.displayName, \"no-margin\": \"\", \"search\": _setup.search } }, \"NcListItemIcon\", selectedOption, false))];\n } }]) }, \"NcSelect\", _vm.$props, false));\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"ecb8da4e\"\n);\nconst NcSelectUsers = __component__.exports;\nexport {\n NcSelectUsers as N\n};\n//# sourceMappingURL=NcSelectUsers-W17kOow7.mjs.map\n","import '../assets/NcSettingsInputText-Bsp_6DjJ.css';\nimport { r as register, h as t47, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t47);\nconst _sfc_main = {\n name: \"NcSettingsInputText\",\n model: {\n prop: \"value\",\n event: \"update:value\"\n },\n props: {\n /**\n * label of the select group element\n */\n label: {\n type: String,\n required: true\n },\n /**\n * hint of the select group input\n */\n hint: {\n type: String,\n default: \"\"\n },\n /**\n * Removed in v9 - use `modelValue` (`v-model`) instead\n * @deprecated\n */\n value: {\n type: String,\n default: void 0\n },\n /**\n * value of the select group input\n */\n modelValue: {\n type: String,\n default: \"\"\n },\n /**\n * disabled state of the settings select group input\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * id attribute of the select group element\n */\n id: {\n type: String,\n default: () => \"settings-input-text-\" + GenRandomId(),\n validator: (id) => id.trim() !== \"\"\n }\n },\n emits: [\n /**\n * Removed in v9 - use `update:modelValue` (`v-model`) instead\n * @deprecated\n */\n \"update:value\",\n /**\n * Emitted when the inputs value changes\n *\n * @type {string}\n */\n \"update:modelValue\",\n /* Same as update:modelValue for Vue 2 compatibility */\n \"update:model-value\",\n \"input\",\n \"submit\",\n \"change\"\n ],\n setup() {\n const model = useModelMigration(\"value\", \"update:value\");\n return {\n model\n };\n },\n data() {\n return {\n submitTranslated: t(\"Submit\")\n };\n },\n computed: {\n /**\n * @return {string}\n */\n idSubmit() {\n return this.id + \"-submit\";\n }\n },\n methods: {\n onInput(event) {\n this.$emit(\"input\", event);\n this.model = event.target.value;\n },\n onSubmit(event) {\n if (!this.disabled) {\n this.$emit(\"submit\", event);\n }\n },\n onChange(event) {\n this.$emit(\"change\", event);\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"form\", { ref: \"form\", attrs: { \"disabled\": _vm.disabled }, on: { \"submit\": function($event) {\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.onSubmit.apply(null, arguments);\n } } }, [_c(\"div\", { staticClass: \"input-wrapper\" }, [_c(\"label\", { staticClass: \"action-input__label\", attrs: { \"for\": _vm.id } }, [_vm._v(_vm._s(_vm.label))]), _c(\"input\", { attrs: { \"id\": _vm.id, \"type\": \"text\", \"disabled\": _vm.disabled }, domProps: { \"value\": _vm.model }, on: { \"input\": _vm.onInput, \"change\": _vm.onChange } }), _c(\"input\", { staticClass: \"action-input__submit\", attrs: { \"id\": _vm.idSubmit, \"type\": \"submit\" }, domProps: { \"value\": _vm.submitTranslated } }), _vm.hint ? _c(\"p\", { staticClass: \"hint\" }, [_vm._v(\" \" + _vm._s(_vm.hint) + \" \")]) : _vm._e()])]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"0907eb0a\"\n);\nconst NcSettingsInputText = __component__.exports;\nexport {\n NcSettingsInputText as N\n};\n//# sourceMappingURL=NcSettingsInputText-YO053agL.mjs.map\n","import '../assets/NcSettingsSection-_mX6UqM_.css';\nimport { r as register, w as t23, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t23);\nconst _sfc_main$1 = {\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};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon help-circle-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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 _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst HelpCircle = __component__$1.exports;\nconst _sfc_main = {\n name: \"NcSettingsSection\",\n components: {\n HelpCircle\n },\n props: {\n name: {\n type: String,\n required: true\n },\n description: {\n type: String,\n default: \"\"\n },\n docUrl: {\n type: String,\n default: \"\"\n },\n /**\n * Limit the width of the setting's content\n *\n * Setting this to false allows unrestricted (width) settings content.\n * Note that the name and description have always a width limit.\n * @deprecated Will be removed with next version and will not be used on Nextcloud 30+ (always forced to true)\n */\n limitWidth: {\n type: Boolean,\n default: true\n }\n },\n data() {\n return {\n docNameTranslated: t(\"External documentation for {name}\", {\n name: this.name\n })\n };\n },\n computed: {\n forceLimitWidth() {\n if (this.limitWidth) {\n return true;\n }\n const [major] = window._oc_config?.version.split(\".\", 2) ?? [];\n return major && Number.parseInt(major) >= 30;\n },\n hasDescription() {\n return this.description.length > 0;\n },\n hasDocUrl() {\n return this.docUrl.length > 0;\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"settings-section\", class: { \"settings-section--limit-width\": _vm.forceLimitWidth } }, [_c(\"h2\", { staticClass: \"settings-section__name\" }, [_vm._v(\" \" + _vm._s(_vm.name) + \" \"), _vm.hasDocUrl ? _c(\"a\", { staticClass: \"settings-section__info\", attrs: { \"href\": _vm.docUrl, \"title\": _vm.docNameTranslated, \"aria-label\": _vm.docNameTranslated, \"target\": \"_blank\", \"rel\": \"noreferrer nofollow\" } }, [_c(\"HelpCircle\", { attrs: { \"size\": 20 } })], 1) : _vm._e()]), _vm.hasDescription ? _c(\"p\", { staticClass: \"settings-section__desc\" }, [_vm._v(\" \" + _vm._s(_vm.description) + \" \")]) : _vm._e(), _vm._t(\"default\")], 2);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"6f6953b5\"\n);\nconst NcSettingsSection = __component__.exports;\nexport {\n NcSettingsSection as N\n};\n//# sourceMappingURL=NcSettingsSection-C76Kqeew.mjs.map\n","import '../assets/NcSettingsSelectGroup-BEjOwCJQ.css';\nimport { N as NcSelect } from \"./NcSelect-CjUzohn5.mjs\";\nimport { r as register, g as t48, a as t } from \"./_l10n-DQgzdF9S.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport debounce from \"debounce\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t48);\nconst _sfc_main = {\n name: \"NcSettingsSelectGroup\",\n components: {\n NcSelect\n },\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n },\n props: {\n /**\n * The text of the label element of the select group input\n */\n label: {\n type: String,\n required: true\n },\n /**\n * Placeholder for the input element\n * For backwards compatibility it falls back to the `label` value\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * id attribute of the select group element\n */\n id: {\n type: String,\n default: () => \"action-\" + GenRandomId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Removed in v9 - use `modelValue` (`v-model`) instead\n * @deprecated\n */\n value: {\n type: Array,\n default: void 0\n },\n /**\n * value of the select group input\n * A list of group IDs can be provided\n */\n modelValue: {\n type: Array,\n default: () => []\n },\n /**\n * disabled state of the settings select group input\n */\n disabled: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n /**\n * Removed in v9 - use `update:modelValue` (`v-model`) instead\n * @deprecated\n */\n \"input\",\n /** Emitted when the groups selection changes<br />**Payload:** `value` (`Array`) - *Ids of selected groups */\n \"update:modelValue\",\n /** Same as update:modelValue for Vue 2 compatibility */\n \"update:model-value\",\n \"error\"\n ],\n setup() {\n const model = useModelMigration(\"value\", \"input\");\n return {\n model\n };\n },\n data() {\n return {\n /** Temporary store to cache groups */\n groups: {},\n randId: GenRandomId(),\n errorMessage: \"\"\n };\n },\n computed: {\n /**\n * If the error message should be shown\n */\n hasError() {\n return this.errorMessage !== \"\";\n },\n /**\n * Validate input value and only return valid strings (group IDs)\n *\n * @return {string[]}\n */\n filteredValue() {\n return this.model.filter((group) => group !== \"\" && typeof group === \"string\");\n },\n /**\n * value property converted to an array of group objects used as input for the NcSelect\n */\n inputValue() {\n return this.filteredValue.map(\n (id) => {\n if (typeof this.groups[id] === \"undefined\") {\n return {\n id,\n displayname: id\n };\n }\n return this.groups[id];\n }\n );\n },\n /**\n * Convert groups object to array of groups required for NcSelect.options\n * Filter out currently selected values\n *\n * @return {object[]}\n */\n groupsArray() {\n return Object.values(this.groups).filter((g) => !this.model.includes(g.id));\n }\n },\n watch: {\n /**\n * If the value is changed, check that all groups are loaded so we show the correct display name\n */\n value: {\n handler() {\n const loadedGroupIds = Object.keys(this.groups);\n const missing = this.filteredValue.filter((group) => !loadedGroupIds.includes(group));\n missing.forEach((groupId) => {\n this.loadGroup(groupId);\n });\n },\n // Run the watch handler also when the component is initially mounted\n immediate: true\n }\n },\n /**\n * Load groups matching the empty query to reduce API calls\n */\n async mounted() {\n const storageName = `${appName}:${appVersion}/initialGroups`;\n let savedGroups = window.sessionStorage.getItem(storageName);\n if (savedGroups) {\n savedGroups = Object.fromEntries(JSON.parse(savedGroups).map((group) => [group.id, group]));\n this.groups = { ...this.groups, ...savedGroups };\n } else {\n await this.loadGroup(\"\");\n window.sessionStorage.setItem(storageName, JSON.stringify(Object.values(this.groups)));\n }\n },\n methods: {\n t,\n /**\n * Called when a new group is selected or previous group is deselected to emit the update event\n *\n * @param {object[]} updatedValue Array of selected groups\n */\n update(updatedValue) {\n const value = updatedValue.map((element) => element.id);\n this.model = value;\n },\n /**\n * Use provisioning API to search for given group and save it in the groups object\n *\n * @param {string} query The query like parts of the id oder display name\n * @return {boolean}\n */\n async loadGroup(query) {\n try {\n query = typeof query === \"string\" ? encodeURI(query) : \"\";\n const response = await axios.get(generateOcsUrl(`cloud/groups/details?search=${query}&limit=10`, 2));\n if (this.errorMessage !== \"\") {\n window.setTimeout(() => {\n this.errorMessage = \"\";\n }, 5e3);\n }\n if (Object.keys(response.data.ocs.data.groups).length > 0) {\n const newGroups = Object.fromEntries(response.data.ocs.data.groups.map((element) => [element.id, element]));\n this.groups = { ...this.groups, ...newGroups };\n return true;\n }\n } catch (error) {\n this.$emit(\"error\", error);\n this.errorMessage = t(\"Unable to search the group\");\n }\n return false;\n },\n /**\n * Custom filter function for `NcSelect` to filter by ID *and* display name\n *\n * @param {object} option One of the groups\n * @param {string} label The label property of the group\n * @param {string} search The current search string\n */\n filterGroups(option, label, search) {\n return `${label || \"\"} ${option.id}`.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;\n },\n /**\n * Debounce the group search (reduce API calls)\n */\n onSearch: debounce(function(query) {\n this.loadGroup(query);\n }, 200)\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", [_vm.label ? _c(\"label\", { staticClass: \"hidden-visually\", attrs: { \"for\": _vm.id } }, [_vm._v(_vm._s(_vm.label))]) : _vm._e(), _c(\"NcSelect\", { attrs: { \"value\": _vm.inputValue, \"options\": _vm.groupsArray, \"placeholder\": _vm.placeholder || _vm.label, \"filter-by\": _vm.filterGroups, \"input-id\": _vm.id, \"limit\": 5, \"label\": \"displayname\", \"multiple\": true, \"close-on-select\": false, \"disabled\": _vm.disabled }, on: { \"update:model-value\": _vm.update, \"search\": _vm.onSearch } }), _c(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: _vm.hasError, expression: \"hasError\" }], staticClass: \"select-group-error\" }, [_vm._v(\" \" + _vm._s(_vm.errorMessage) + \" \")])], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"a53a2bb4\"\n);\nconst NcSettingsSelectGroup = __component__.exports;\nexport {\n NcSettingsSelectGroup as N\n};\n//# sourceMappingURL=NcSettingsSelectGroup-CH_kppKo.mjs.map\n","function checkIfDarkTheme(el = document.body) {\n const backgroundInvertIfDark = window.getComputedStyle(el).getPropertyValue(\"--background-invert-if-dark\");\n if (backgroundInvertIfDark !== void 0) {\n return backgroundInvertIfDark === \"invert(100%)\";\n }\n return false;\n}\nconst isDarkTheme = checkIfDarkTheme();\nexport {\n checkIfDarkTheme,\n isDarkTheme\n};\n//# sourceMappingURL=isDarkTheme.mjs.map\n","import '../assets/Tooltip-C-QZMStp.css';\nimport { options } from \"floating-vue\";\nimport { VTooltip, options as options2 } from \"floating-vue\";\noptions.themes.tooltip.html = false;\noptions.themes.tooltip.delay = { show: 500, hide: 200 };\noptions.themes.tooltip.distance = 10;\noptions.themes.tooltip[\"arrow-padding\"] = 3;\nexport {\n VTooltip as default,\n options2 as options\n};\n//# sourceMappingURL=Tooltip.mjs.map\n","import { isMobileState } from \"../Composables/useIsMobile.mjs\";\nconst index = {\n computed: {\n /**\n * @deprecated Is to be removed in v9.0.0 with Vue 3 migration.\n * Use `composables/useIsMobile` instead.\n */\n isMobile() {\n return isMobileState.value;\n }\n }\n};\nexport {\n index as default\n};\n//# sourceMappingURL=isMobile.mjs.map\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div>\n\t\t<CollectionContent\n\t\t\tref=\"collectionContent\"\n\t\t\t:collection=\"album\"\n\t\t\t:collection-file-ids=\"albumFileIds\"\n\t\t\t:allow-selection=\"false\"\n\t\t\t:loading=\"loadingCollection || loadingCollectionFiles\"\n\t\t\t:error=\"errorFetchingCollection || errorFetchingCollectionFiles\">\n\t\t\t<!-- Header -->\n\t\t\t<HeaderNavigation\n\t\t\t\tv-if=\"albumOriginalName !== ''\"\n\t\t\t\tkey=\"navigation\"\n\t\t\t\tslot=\"header\"\n\t\t\t\tslot-scope=\"{ selectedFileIds }\"\n\t\t\t\t:loading=\"loadingCollection || loadingCollectionFiles\"\n\t\t\t\t:params=\"{ token }\"\n\t\t\t\tpath=\"/\"\n\t\t\t\t:root-title=\"albumOriginalName\"\n\t\t\t\t:title=\"albumOriginalName\"\n\t\t\t\t@refresh=\"fetchAlbumContent\">\n\t\t\t\t<div v-if=\"album.attributes.location !== ''\" slot=\"subtitle\" class=\"album__location\">\n\t\t\t\t\t<MapMarkerOutline />{{ album.attributes.location }}\n\t\t\t\t</div>\n\n\t\t\t\t<template v-if=\"album !== undefined\" slot=\"right\">\n\t\t\t\t\t<NcActions :force-menu=\"true\" :aria-label=\"t('photos', 'Open actions menu')\">\n\t\t\t\t\t\t<!-- TODO: enable download on public albums -->\n\t\t\t\t\t\t<!-- <ActionDownload v-if=\"albumFileIds.length > 0\"\n\t\t\t\t\t\t\t:selected-file-ids=\"albumFileIds\"\n\t\t\t\t\t\t\t:title=\"t('photos', 'Download all files in album')\">\n\t\t\t\t\t\t\t<DownloadMultiple slot=\"icon\" />\n\t\t\t\t\t\t</ActionDownload> -->\n\n\t\t\t\t\t\t<template v-if=\"selectedFileIds.length > 0\">\n\t\t\t\t\t\t\t<!-- TODO: enable download on public albums -->\n\t\t\t\t\t\t\t<!-- <NcActionSeparator />\n\n\t\t\t\t\t\t\t<ActionDownload :selected-file-ids=\"selectedFileIds\" :title=\"t('photos', 'Download selected files')\">\n\t\t\t\t\t\t\t\t<Download slot=\"icon\" />\n\t\t\t\t\t\t\t</ActionDownload> -->\n\n\t\t\t\t\t\t\t<!-- </** :close */-after-click=\"true\"\n\t\t\t\t\t\t\t\t@click=\"handleRemoveFilesFromAlbum(selectedFileIds)\">\n\t\t\t\t\t\t\t\t{{ t('photos', 'Remove selection from album') }}\n\t\t\t\t\t\t\t\t<Close slot=\"icon\" />\n\t\t\t\t\t\t\t<//** > */ -->\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcActions>\n\t\t\t\t</template>\n\t\t\t</HeaderNavigation>\n\n\t\t\t<!-- No content -->\n\t\t\t<NcEmptyContent\n\t\t\t\tslot=\"empty-content\"\n\t\t\t\t:name=\"t('photos', 'This album does not have any photos or videos yet!')\"\n\t\t\t\tclass=\"album__empty\">\n\t\t\t\t<ImageOffOutline slot=\"icon\" />\n\n\t\t\t\t<!-- Public upload is not implemented yet\n\t\t\t\t<NcButton slot=\"action\"\n\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t:aria-label=\"t('photos', 'Add photos to this album')\"\n\t\t\t\t\t@click=\"showAddPhotosModal = true\">\n\t\t\t\t\t<Plus slot=\"icon\" />\n\t\t\t\t\t{{ t('photos', \"Add\") }}\n\t\t\t\t</NcButton>\n\t\t\t\t-->\n\t\t\t</NcEmptyContent>\n\t\t</CollectionContent>\n\t</div>\n</template>\n\n<script lang='ts'>\nimport type { PublicAlbum } from '../store/publicAlbums.ts'\n\nimport { getClient } from '@nextcloud/files/dav'\n// import Download from 'vue-material-design-icons/TrayArrowDown.vue'\n// import DownloadMultiple from 'vue-material-design-icons/DownloadMultiple.vue'\nimport { translate } from '@nextcloud/l10n'\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport { isMobile, /** NcButton, */ NcActions, /** NcActionSeparator, */ NcEmptyContent } from '@nextcloud/vue'\n// import Plus from 'vue-material-design-icons/Plus.vue'\n// import ImagePlus from 'vue-material-design-icons/ImagePlus.vue'\nimport ImageOffOutline from 'vue-material-design-icons/ImageOffOutline.vue'\nimport MapMarkerOutline from 'vue-material-design-icons/MapMarkerOutline.vue'\nimport CollectionContent from '../components/Collection/CollectionContent.vue'\nimport HeaderNavigation from '../components/HeaderNavigation.vue'\n// import ActionDownload from '../components/Actions/ActionDownload.vue'\nimport FetchCollectionContentMixin from '../mixins/FetchCollectionContentMixin.ts'\nimport { albumFilesExtraProps } from '../store/albums.ts'\nimport { publicAlbumsExtraProps, publicAlbumsPrefix } from '../store/publicAlbums.ts'\n\nexport default {\n\tname: 'PublicAlbumContent',\n\tcomponents: {\n\t\tMapMarkerOutline,\n\t\t// Plus,\n\t\t// Download,\n\t\t// DownloadMultiple,\n\t\t// ImagePlus,\n\t\tImageOffOutline,\n\t\tNcEmptyContent,\n\t\tNcActions,\n\t\t// NcActionSeparator,\n\t\t// NcButton,\n\t\tCollectionContent,\n\t\t// ActionDownload,\n\t\tHeaderNavigation,\n\t},\n\n\tmixins: [\n\t\tFetchCollectionContentMixin,\n\t\tisMobile,\n\t],\n\n\tprops: {\n\t\ttoken: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshowAddPhotosModal: false,\n\t\t\tloadingCount: 0,\n\t\t\tloadingAddFilesToAlbum: false,\n\t\t\talbumOriginalName: '',\n\t\t\tpublicClient: getClient(generateRemoteUrl('dav'), {\n\t\t\t\tAuthorization: `Basic ${btoa(`${this.token}:`)}`,\n\t\t\t}),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\talbum(): PublicAlbum {\n\t\t\treturn this.$store.getters.getPublicAlbum(this.albumName)\n\t\t},\n\n\t\talbumName(): string {\n\t\t\treturn this.token\n\t\t},\n\n\t\talbumFileIds(): string[] {\n\t\t\treturn this.$store.getters.getPublicAlbumFiles(this.albumName)\n\t\t},\n\n\t\tpublicAlbumFileName(): string {\n\t\t\treturn this.$store.getters.getPublicAlbumName(this.albumName)\n\t\t},\n\t},\n\n\tasync beforeMount() {\n\t\tawait this.fetchAlbumInfo()\n\t\tawait this.fetchAlbumContent()\n\t},\n\n\tmethods: {\n\t\tasync fetchAlbumInfo() {\n\t\t\tconst album = await this.fetchCollection(\n\t\t\t\t`${publicAlbumsPrefix}/${this.token}`,\n\t\t\t\tpublicAlbumsExtraProps,\n\t\t\t\tthis.publicClient,\n\t\t\t) as PublicAlbum\n\n\t\t\tif (album !== null) { // Could be null in case of 404.\n\t\t\t\tthis.albumOriginalName = album.attributes['original-name']\n\t\t\t}\n\t\t},\n\n\t\tasync fetchAlbumContent() {\n\t\t\tconst files = await this.fetchCollectionFiles(\n\t\t\t\t`${publicAlbumsPrefix}/${this.token}`,\n\t\t\t\t[...albumFilesExtraProps, ...publicAlbumsExtraProps],\n\t\t\t\tthis.publicClient,\n\t\t\t)\n\n\t\t\tfiles.forEach((file) => {\n\t\t\t\tfile.update({\n\t\t\t\t\t// Use custom preview URL to avoid authentication prompt\n\t\t\t\t\tpreviewUrl: generateUrl(`/apps/photos/api/v1/publicPreview/${file.fileid}?x=2048&y=2048&token=${this.token}`),\n\t\t\t\t\t// Disable use of generic file previews for public albums - for older versions of the Viewer app\n\t\t\t\t\thasPreview: false,\n\t\t\t\t})\n\t\t\t})\n\t\t},\n\n\t\tasync handleFilesPicked(fileIds: string[]) {\n\t\t\tthis.showAddPhotosModal = false\n\t\t\tawait this.$store.dispatch('addFilesToCollection', { collectionFileName: this.album.root + this.albumName, fileIdsToAdd: fileIds })\n\t\t\t// Re-fetch album content to have the proper filenames.\n\t\t\tawait this.fetchAlbumContent()\n\t\t},\n\n\t\tasync handleRemoveFilesFromAlbum(fileIds: string[]) {\n\t\t\tthis.$refs.collectionContent.onUncheckFiles(fileIds)\n\t\t\tawait this.$store.dispatch('removeFilesFromCollection', { collectionFileName: this.album.root + this.albumName, fileIdsToRemove: fileIds })\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.album {\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t&__title {\n\t\twidth: 100%;\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__location {\n\t\tmargin-inline-start: -4px;\n\t\tdisplay: flex;\n\t\tcolor: var(--color-text-lighter);\n\t}\n}\n</style>\n"],"names":["register","t14","t42","t","t45","tlds","utlds","assign","target","properties","key","numeric","ascii","alpha","asciinumeric","alphanumeric","domain","emoji","scheme","slashscheme","whitespace","registerGroup","name","groups","addToGroups","flags","k","group","flagsForToken","result","c","State","token","input","state","nextState","i","regex","_nextState","exactOnly","inputs","next","regexp","len","templateState","allFlags","ta","tr","ts","tt","WORD","UWORD","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","WS","NL$1","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","SEMI","SLASH","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","ASCII_LETTER","LETTER","EMOJI","DIGIT","SPACE","NL","EMOJI_VARIATION","EMOJI_JOINER","init$2","customSchemes","_tr","_tr2","_tr3","_tr4","_tt","_tr5","Start","Num","Word","UWord","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","_i","a","b","_i2","_ref","_ref2","sch","optionalSlashSlash","run$1","start","str","iterable","stringToArray","charCount","tokens","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","index","first","second","char","defaultt","jr","_inheritsLoose","subClass","superClass","_setPrototypeOf","o","p","defaults","noop","Options","opts","defaultRender","ignoredTags","uppercaseIgnoredTags","ir","operator","isCallable","option","obj","renderFn","val","MultiToken","value","options","truncate","formatted","protocol","href","tagName","content","attributes","className","rel","attrs","eventListeners","createTokenClass","type","props","Token","_MultiToken","_this","Email","Text","Nl","Url","makeState","arg","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","EmailColon","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","UriPrefix","SlashSchemeColon","SlashSchemeColonSlash","UrlOpenbrace","UrlOpenbracket","UrlOpenanglebracket","UrlOpenparen","UrlOpenbraceQ","UrlOpenbracketQ","UrlOpenanglebracketQ","UrlOpenparenQ","UrlOpenbraceSyms","UrlOpenbracketSyms","UrlOpenanglebracketSyms","UrlOpenparenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","init","tokenize","escapeText","text","escapeAttr","attributesToString","attr","linkifyStr","t13","PQueue","t6","t26","e","module","this","n","r","u","f","v","x","h","d","s","m","g","l","_","w","F","y","C","S","A","O","E","M","j","L","P","R","G","U","N","H","D","V","q","B","T","J","I","$","W","z","X","Y","K","Z","Q","ee","te","ne","re","ie","oe","ae","global","t1","t32","se","getBuilder","t5","t34","t40","Color","t39","getCapabilities","t36","t8","registerWidget","id","callback","onDestroy","el","propsWithDefaults","registerCustomPickerElement","size","t21","t7","imagePath","loadState","t38","t44","t22","t29","t11","t17","asciiAlpha","regexCheck","asciiAlphanumeric","asciiControl","code2","markdownLineEndingOrSpace","unicodePunctuation","unicodeWhitespace","check","convert","test","ok","castFactory","anyFactory","propsFactory","typeFactory","tests","checks","any","parameters","index2","checkAsRecord","all2","node2","nodeAsRecord","testFunction","parent","looksLikeANode","wwwPrefix","tokenizeWwwPrefix","tokenizeDomain","path","tokenizePath","trail","tokenizeTrail","emailDomainDotTrail","tokenizeEmailDomainDotTrail","wwwAutolink","tokenizeWwwAutolink","previousWww","protocolAutolink","tokenizeProtocolAutolink","previousProtocol","emailAutolink","tokenizeEmailAutolink","previousEmail","code","effects","ok2","nok","self","dot","data","gfmAtext","previousUnbalanced","atext","emailDomain","emailDomainAfter","emailDomainDot","wwwStart","wwwAfter","buffer","seen","protocolStart","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeOpen","sizeClose","pathInside","pathAtPunctuation","trail2","trailCharRefStart","trailBracketAfter","trailCharRefInside","after","events","ref","predicate","list","length","thisArg","CustomEvent$1","event","params","evt","t31","t0","NcSelect","t15","t43","t47","t23","t48","debounce","query","checkIfDarkTheme","backgroundInvertIfDark","isMobileState","_sfc_main","MapMarkerOutline","ImageOffOutline","NcEmptyContent","NcActions","CollectionContent","HeaderNavigation","FetchCollectionContentMixin","isMobile","getClient","generateRemoteUrl","album","publicAlbumsPrefix","publicAlbumsExtraProps","albumFilesExtraProps","file","generateUrl","fileIds","translate"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]} |