{"version":3,"file":"NcColorPicker-DMgf0ScW.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionButtonGroup-Uol_nwut.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSearch-Ci8jz_C2.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-B29zrNPr.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsShortcutsSection-C089rPL6.mjs","../node_modules/linkifyjs/dist/linkify.mjs","../node_modules/linkify-string/dist/linkify-string.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-D5IUeKjd.mjs","../node_modules/@nextcloud/vue/dist/Functions/preloadImage.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCollectionList-B9weMM0Q.mjs","../node_modules/vue-color/dist/vue-color.min.js","../node_modules/@nextcloud/vue/dist/chunks/NcColorPicker-DVkGUHxL.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDashboardWidget-DpzjksBk.mjs","../node_modules/emoji-mart-vue-fast/dist/emoji-mart.js","../node_modules/tributejs/dist/tribute.esm.js","../node_modules/@nextcloud/vue/dist/chunks/emoji-BY_D0V5K.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEmojiPicker-CpU37Ozq.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxCopyButton-Dwrfiovz.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcKbd-CfVfr9CW.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcHotkeyList-Bm25Odp7.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRelatedResourcesPanel-D9-wo_xr.mjs","../node_modules/@nextcloud/vue/dist/chunks/customPickerElements-DLFtgReB.mjs","../node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-CHpUHrDL.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRichText-BfK6Ybyf.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRichContenteditable-BQNR-AeA.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelectTags-CktuFsK3.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsInputText-Dtr4Rn2b.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSection-BniKad1K.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSelectGroup-D4_09H0F.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-CRXLyFpx.css';\nimport { defineComponent } from \"vue\";\nimport { r as register, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-F5ebeBB_.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  \"d81f7625\"\n);\nconst NcActionButtonGroup = __component__.exports;\nexport {\n  NcActionButtonGroup as N\n};\n//# sourceMappingURL=NcActionButtonGroup-Uol_nwut.mjs.map\n","import '../assets/NcAppNavigationSearch-o97SOfOb.css';\nimport { useFocusWithin } from \"@vueuse/core\";\nimport { useSlots, ref, watch, nextTick } from \"vue\";\nimport { C as Close } from \"./Close-BtLPUSdO.mjs\";\nimport { N as NcInputField } from \"./NcInputField-DUtDY_1I.mjs\";\nimport { r as register, o as t44, p as t15, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t15, t44);\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, IconClose: Close, NcInputField, t };\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  \"21bb8308\"\n);\nconst NcAppNavigationSearch = __component__.exports;\nexport {\n  NcAppNavigationSearch as N\n};\n//# sourceMappingURL=NcAppNavigationSearch-Ci8jz_C2.mjs.map\n","import '../assets/NcMentionBubble-CaztX9Pv.css';\nimport '../assets/NcAppNavigationSettings-2Wh1E3Hq.css';\nimport { h as mdiCogOutline, i as mdiCog } from \"./mdi-C_j0YT8c.mjs\";\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { N as NcButton } from \"./NcButton-DUZTtFhr.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BreCg8pX.mjs\";\nimport { r as register, n as t48, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport clickOutsideOptions from \"../Mixins/clickOutsideOptions.mjs\";\nimport \"../Composables/useIsFullscreen.mjs\";\nimport \"../Composables/useIsMobile.mjs\";\nimport \"escape-html\";\nimport \"striptags\";\nimport \"vue\";\nimport \"../Composables/useIsDarkTheme.mjs\";\nimport \"@nextcloud/router\";\nimport \"../Functions/isDarkTheme.mjs\";\n/* empty css                                                                          */\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/capabilities\";\nimport \"./logger-D3RVzcfQ.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-F5ebeBB_.mjs\";\nimport { i as isLegacy32 } from \"./legacy-MK4GvP26.mjs\";\nregister(t48);\nconst _sfc_main = {\n  directives: {\n    ClickOutside: vOnClickOutside\n  },\n  components: {\n    NcButton,\n    NcIconSvgWrapper\n  },\n  mixins: [\n    clickOutsideOptions\n  ],\n  props: {\n    /**\n     * Text of the button\n     *\n     * @default 'Settings'\n     */\n    name: {\n      type: String,\n      required: false,\n      default: t(\"Settings\")\n    }\n  },\n  setup() {\n    const contentId = GenRandomId();\n    return {\n      contentId,\n      isLegacy32,\n      mdiCog,\n      mdiCogOutline\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    closeMenu() {\n      this.open = false;\n    }\n  }\n};\nvar _sfc_render = function render() {\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(\"NcButton\", { staticClass: \"settings-button\", attrs: { \"aria-controls\": _vm.contentId, \"aria-expanded\": _vm.open ? \"true\" : \"false\", \"alignment\": \"start\", \"variant\": \"tertiary\", \"wide\": \"\" }, on: { \"click\": function($event) {\n    _vm.open = !_vm.open;\n  } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n    return [_c(\"NcIconSvgWrapper\", { staticClass: \"settings-button__icon\", attrs: { \"path\": _vm.isLegacy32 ? _vm.mdiCog : _vm.mdiCogOutline } })];\n  }, proxy: true }]) }, [_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\": _vm.contentId } }, [_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  \"8fb21c8b\"\n);\nconst NcAppNavigationSettings = __component__.exports;\nexport {\n  NcAppNavigationSettings as N\n};\n//# sourceMappingURL=NcAppNavigationSettings-B29zrNPr.mjs.map\n","import '../assets/NcAppSettingsShortcutsSection-BuI-s4kd.css';\nimport { defineComponent } from \"vue\";\nimport { N as NcAppSettingsSection } from \"./NcAppSettingsSection-Cq1VIzMR.mjs\";\nimport { r as register, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n  __name: \"NcAppSettingsShortcutsSection\",\n  setup(__props) {\n    return { __sfc: true, NcAppSettingsSection, t };\n  }\n});\nconst appSettingsSectionShortcuts = \"_appSettingsSectionShortcuts_14egw_20\";\nconst style0 = {\n  \"material-design-icon\": \"_material-design-icon_14egw_12\",\n  appSettingsSectionShortcuts\n};\nvar _sfc_render = function render() {\n  var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n  return _c(_setup.NcAppSettingsSection, { attrs: { \"id\": \"keyboard-shortcuts\", \"name\": _setup.t(\"Keyboard shortcuts\") } }, [_c(\"div\", { class: _vm.$style.appSettingsSectionShortcuts }, [_vm._t(\"default\")], 2)]);\n};\nvar _sfc_staticRenderFns = [];\nconst __cssModules = {\n  \"$style\": style0\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  null\n);\nconst NcAppSettingsShortcutsSection = __component__.exports;\nexport {\n  NcAppSettingsShortcutsSection as N\n};\n//# sourceMappingURL=NcAppSettingsShortcutsSection-C089rPL6.mjs.map\n","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// See update-tlds.js for encoding/decoding format\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nconst encodedTlds = 'aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2';\n// Internationalized domain names containing non-ASCII\nconst encodedUtlds = 'ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2';\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n\n// Keys in scanner Collections instances\nconst numeric = 'numeric';\nconst ascii = 'ascii';\nconst alpha = 'alpha';\nconst asciinumeric = 'asciinumeric';\nconst alphanumeric = 'alphanumeric';\nconst domain = 'domain';\nconst emoji = 'emoji';\nconst scheme = 'scheme';\nconst slashscheme = 'slashscheme';\nconst whitespace = 'whitespace';\n\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 */\nfunction registerGroup(name, groups) {\n  if (!(name in groups)) {\n    groups[name] = [];\n  }\n  return groups[name];\n}\n\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections<T>} groups\n * @param {Flags} flags\n */\nfunction addToGroups(t, flags, groups) {\n  if (flags[numeric]) {\n    flags[asciinumeric] = true;\n    flags[alphanumeric] = true;\n  }\n  if (flags[ascii]) {\n    flags[asciinumeric] = true;\n    flags[alpha] = true;\n  }\n  if (flags[asciinumeric]) {\n    flags[alphanumeric] = true;\n  }\n  if (flags[alpha]) {\n    flags[alphanumeric] = true;\n  }\n  if (flags[alphanumeric]) {\n    flags[domain] = true;\n  }\n  if (flags[emoji]) {\n    flags[domain] = true;\n  }\n  for (const k in flags) {\n    const group = registerGroup(k, groups);\n    if (group.indexOf(t) < 0) {\n      group.push(t);\n    }\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 */\nfunction flagsForToken(t, groups) {\n  const result = {};\n  for (const c in groups) {\n    if (groups[c].indexOf(t) >= 0) {\n      result[c] = true;\n    }\n  }\n  return result;\n}\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 */\nfunction State(token = null) {\n  // this.n = null; // DEBUG: State name\n  /** @type {{ [input: string]: State<T> }} j */\n  this.j = {}; // IMPLEMENTATION 1\n  // this.j = []; // IMPLEMENTATION 2\n  /** @type {[RegExp, State<T>][]} jr */\n  this.jr = [];\n  /** @type {?State<T>} jd */\n  this.jd = null;\n  /** @type {?T} t */\n  this.t = token;\n}\n\n/**\n * Scanner token groups\n * @type Collections<string>\n */\nState.groups = {};\nState.prototype = {\n  accepts() {\n    return !!this.t;\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(input) {\n    const state = this;\n    const nextState = state.j[input];\n    if (nextState) {\n      return nextState;\n    }\n    for (let i = 0; i < state.jr.length; i++) {\n      const regex = state.jr[i][0];\n      const nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n      if (nextState && regex.test(input)) {\n        return nextState;\n      }\n    }\n    // Nowhere left to jump! Return default, if any\n    return state.jd;\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(input, exactOnly = false) {\n    return exactOnly ? input in this.j : !!this.go(input);\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(inputs, next, flags, groups) {\n    for (let i = 0; i < inputs.length; i++) {\n      this.tt(inputs[i], next, flags, groups);\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(regexp, next, flags, groups) {\n    groups = groups || State.groups;\n    let nextState;\n    if (next && next.j) {\n      nextState = next;\n    } else {\n      // Token with maybe token groups\n      nextState = new State(next);\n      if (flags && groups) {\n        addToGroups(next, flags, groups);\n      }\n    }\n    this.jr.push([regexp, nextState]);\n    return nextState;\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(input, next, flags, groups) {\n    let state = this;\n    const len = input.length;\n    if (!len) {\n      return state;\n    }\n    for (let i = 0; i < len - 1; i++) {\n      state = state.tt(input[i]);\n    }\n    return state.tt(input[len - 1], next, flags, groups);\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(input, next, flags, groups) {\n    groups = groups || State.groups;\n    const state = this;\n\n    // Check if existing state given, just a basic transition\n    if (next && next.j) {\n      state.j[input] = next;\n      return next;\n    }\n    const t = next;\n\n    // Take the transition with the usual default mechanisms and use that as\n    // a template for creating the next state\n    let nextState,\n      templateState = state.go(input);\n    if (templateState) {\n      nextState = new State();\n      Object.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    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          const allFlags = Object.assign(flagsForToken(nextState.t, groups), flags);\n          addToGroups(t, allFlags, groups);\n        } else if (flags) {\n          addToGroups(t, flags, groups);\n        }\n      }\n      nextState.t = t; // overwrite anything that was previously there\n    }\n    state.j[input] = nextState;\n    return nextState;\n  }\n};\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 */\nconst ta = (state, input, next, flags, groups) => 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 */\nconst tr = (state, regexp, next, flags, groups) => 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 */\nconst ts = (state, input, next, flags, groups) => 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 */\nconst tt = (state, input, next, flags, groups) => state.tt(input, next, flags, groups);\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n\n// A valid web domain token\nconst WORD = 'WORD'; // only contains a-z\nconst UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\nconst ASCIINUMERICAL = 'ASCIINUMERICAL'; // contains a-z, 0-9\nconst ALPHANUMERICAL = 'ALPHANUMERICAL'; // contains numbers and letters other than a-z, used for IDN\n\n// Special case of word\nconst LOCALHOST = 'LOCALHOST';\n\n// Valid top-level domain, special case of WORD (see tlds.js)\nconst TLD = 'TLD';\n\n// Valid IDN TLD, special case of UWORD (see tlds.js)\nconst UTLD = 'UTLD';\n\n// 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\nconst SCHEME = 'SCHEME';\n\n// 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`\nconst SLASH_SCHEME = 'SLASH_SCHEME';\n\n// Any sequence of digits 0-9\nconst NUM = 'NUM';\n\n// Any number of consecutive whitespace characters that are not newline\nconst WS = 'WS';\n\n// New line (unix style)\nconst NL = 'NL'; // \\n\n\n// Opening/closing bracket classes\n// TODO: Rename OPEN -> LEFT and CLOSE -> RIGHT in v5 to fit with Unicode names\n// Also rename angle brackes to LESSTHAN and GREATER THAN\nconst OPENBRACE = 'OPENBRACE'; // {\nconst CLOSEBRACE = 'CLOSEBRACE'; // }\nconst OPENBRACKET = 'OPENBRACKET'; // [\nconst CLOSEBRACKET = 'CLOSEBRACKET'; // ]\nconst OPENPAREN = 'OPENPAREN'; // (\nconst CLOSEPAREN = 'CLOSEPAREN'; // )\nconst OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\nconst CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\nconst FULLWIDTHLEFTPAREN = 'FULLWIDTHLEFTPAREN'; // （\nconst FULLWIDTHRIGHTPAREN = 'FULLWIDTHRIGHTPAREN'; // ）\nconst LEFTCORNERBRACKET = 'LEFTCORNERBRACKET'; // 「\nconst RIGHTCORNERBRACKET = 'RIGHTCORNERBRACKET'; // 」\nconst LEFTWHITECORNERBRACKET = 'LEFTWHITECORNERBRACKET'; // 『\nconst RIGHTWHITECORNERBRACKET = 'RIGHTWHITECORNERBRACKET'; // 』\nconst FULLWIDTHLESSTHAN = 'FULLWIDTHLESSTHAN'; // ＜\nconst FULLWIDTHGREATERTHAN = 'FULLWIDTHGREATERTHAN'; // ＞\n\n// Various symbols\nconst AMPERSAND = 'AMPERSAND'; // &\nconst APOSTROPHE = 'APOSTROPHE'; // '\nconst ASTERISK = 'ASTERISK'; // *\nconst AT = 'AT'; // @\nconst BACKSLASH = 'BACKSLASH'; // \\\nconst BACKTICK = 'BACKTICK'; // `\nconst CARET = 'CARET'; // ^\nconst COLON = 'COLON'; // :\nconst COMMA = 'COMMA'; // ,\nconst DOLLAR = 'DOLLAR'; // $\nconst DOT = 'DOT'; // .\nconst EQUALS = 'EQUALS'; // =\nconst EXCLAMATION = 'EXCLAMATION'; // !\nconst HYPHEN = 'HYPHEN'; // -\nconst PERCENT = 'PERCENT'; // %\nconst PIPE = 'PIPE'; // |\nconst PLUS = 'PLUS'; // +\nconst POUND = 'POUND'; // #\nconst QUERY = 'QUERY'; // ?\nconst QUOTE = 'QUOTE'; // \"\nconst FULLWIDTHMIDDLEDOT = 'FULLWIDTHMIDDLEDOT'; // ・\n\nconst SEMI = 'SEMI'; // ;\nconst SLASH = 'SLASH'; // /\nconst TILDE = 'TILDE'; // ~\nconst UNDERSCORE = 'UNDERSCORE'; // _\n\n// Emoji symbol\nconst EMOJI$1 = 'EMOJI';\n\n// Default token - anything that is not one of the above\nconst SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tALPHANUMERICAL: ALPHANUMERICAL,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASCIINUMERICAL: ASCIINUMERICAL,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEMOJI: EMOJI$1,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tFULLWIDTHGREATERTHAN: FULLWIDTHGREATERTHAN,\n\tFULLWIDTHLEFTPAREN: FULLWIDTHLEFTPAREN,\n\tFULLWIDTHLESSTHAN: FULLWIDTHLESSTHAN,\n\tFULLWIDTHMIDDLEDOT: FULLWIDTHMIDDLEDOT,\n\tFULLWIDTHRIGHTPAREN: FULLWIDTHRIGHTPAREN,\n\tHYPHEN: HYPHEN,\n\tLEFTCORNERBRACKET: LEFTCORNERBRACKET,\n\tLEFTWHITECORNERBRACKET: LEFTWHITECORNERBRACKET,\n\tLOCALHOST: LOCALHOST,\n\tNL: NL,\n\tNUM: NUM,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tRIGHTCORNERBRACKET: RIGHTCORNERBRACKET,\n\tRIGHTWHITECORNERBRACKET: RIGHTWHITECORNERBRACKET,\n\tSCHEME: SCHEME,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tSYM: SYM,\n\tTILDE: TILDE,\n\tTLD: TLD,\n\tUNDERSCORE: UNDERSCORE,\n\tUTLD: UTLD,\n\tUWORD: UWORD,\n\tWORD: WORD,\n\tWS: WS\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nconst ASCII_LETTER = /[a-z]/;\nconst LETTER = /\\p{L}/u; // Any Unicode character with letter data type\nconst EMOJI = /\\p{Emoji}/u; // Any Unicode emoji character\nconst EMOJI_VARIATION$1 = /\\ufe0f/;\nconst DIGIT = /\\d/;\nconst SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tDIGIT: DIGIT,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tLETTER: LETTER,\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*/\n\nconst CR = '\\r'; // carriage-return character\nconst LF = '\\n'; // line-feed character\nconst EMOJI_VARIATION = '\\ufe0f'; // Variation selector, follows heart and others\nconst EMOJI_JOINER = '\\u200d'; // zero-width joiner\nconst OBJECT_REPLACEMENT = '\\ufffc'; // whitespace placeholder that sometimes appears in rich text editors\n\nlet tlds = null,\n  utlds = null; // don't change so only have to be computed once\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 */\nfunction init$2(customSchemes = []) {\n  // Frequently used states (name argument removed during minification)\n  /** @type Collections<string> */\n  const groups = {}; // of tokens\n  State.groups = groups;\n  /** @type State<string> */\n  const Start = new State();\n  if (tlds == null) {\n    tlds = decodeTlds(encodedTlds);\n  }\n  if (utlds == null) {\n    utlds = decodeTlds(encodedUtlds);\n  }\n\n  // States for special URL symbols that accept immediately after start\n  tt(Start, \"'\", APOSTROPHE);\n  tt(Start, '{', OPENBRACE);\n  tt(Start, '}', CLOSEBRACE);\n  tt(Start, '[', OPENBRACKET);\n  tt(Start, ']', CLOSEBRACKET);\n  tt(Start, '(', OPENPAREN);\n  tt(Start, ')', CLOSEPAREN);\n  tt(Start, '<', OPENANGLEBRACKET);\n  tt(Start, '>', CLOSEANGLEBRACKET);\n  tt(Start, '（', FULLWIDTHLEFTPAREN);\n  tt(Start, '）', FULLWIDTHRIGHTPAREN);\n  tt(Start, '「', LEFTCORNERBRACKET);\n  tt(Start, '」', RIGHTCORNERBRACKET);\n  tt(Start, '『', LEFTWHITECORNERBRACKET);\n  tt(Start, '』', RIGHTWHITECORNERBRACKET);\n  tt(Start, '＜', FULLWIDTHLESSTHAN);\n  tt(Start, '＞', FULLWIDTHGREATERTHAN);\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  tt(Start, '・', FULLWIDTHMIDDLEDOT);\n  const Num = tr(Start, DIGIT, NUM, {\n    [numeric]: true\n  });\n  tr(Num, DIGIT, Num);\n  const Asciinumeric = tr(Num, ASCII_LETTER, ASCIINUMERICAL, {\n    [asciinumeric]: true\n  });\n  const Alphanumeric = tr(Num, LETTER, ALPHANUMERICAL, {\n    [alphanumeric]: true\n  });\n\n  // State which emits a word token\n  const Word = tr(Start, ASCII_LETTER, WORD, {\n    [ascii]: true\n  });\n  tr(Word, DIGIT, Asciinumeric);\n  tr(Word, ASCII_LETTER, Word);\n  tr(Asciinumeric, DIGIT, Asciinumeric);\n  tr(Asciinumeric, ASCII_LETTER, Asciinumeric);\n\n  // Same as previous, but specific to non-fsm.ascii alphabet words\n  const UWord = tr(Start, LETTER, UWORD, {\n    [alpha]: true\n  });\n  tr(UWord, ASCII_LETTER); // Non-accepting\n  tr(UWord, DIGIT, Alphanumeric);\n  tr(UWord, LETTER, UWord);\n  tr(Alphanumeric, DIGIT, Alphanumeric);\n  tr(Alphanumeric, ASCII_LETTER); // Non-accepting\n  tr(Alphanumeric, LETTER, Alphanumeric); // Non-accepting\n\n  // Whitespace jumps\n  // Tokens of only non-newline whitespace are arbitrarily long\n  // If any whitespace except newline, more whitespace!\n  const Nl = tt(Start, LF, NL, {\n    [whitespace]: true\n  });\n  const Cr = tt(Start, CR, WS, {\n    [whitespace]: true\n  });\n  const Ws = tr(Start, SPACE, WS, {\n    [whitespace]: true\n  });\n  tt(Start, OBJECT_REPLACEMENT, Ws);\n  tt(Cr, LF, Nl); // \\r\\n\n  tt(Cr, OBJECT_REPLACEMENT, Ws);\n  tr(Cr, SPACE, Ws);\n  tt(Ws, CR); // non-accepting state to avoid mixing whitespaces\n  tt(Ws, LF); // non-accepting state to avoid mixing whitespaces\n  tr(Ws, SPACE, Ws);\n  tt(Ws, OBJECT_REPLACEMENT, Ws);\n\n  // Emoji tokens. They are not grouped by the scanner except in cases where a\n  // zero-width joiner is present\n  const Emoji = tr(Start, EMOJI, EMOJI$1, {\n    [emoji]: true\n  });\n  tt(Emoji, '#'); // no transition, emoji regex seems to match #\n  tr(Emoji, EMOJI, Emoji);\n  tt(Emoji, EMOJI_VARIATION, Emoji);\n  // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n  const EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n  tt(EmojiJoiner, '#');\n  tr(EmojiJoiner, EMOJI, Emoji);\n  // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n\n  // Generates states for top-level domains\n  // Note that this is most accurate when tlds are in alphabetical order\n  const wordjr = [[ASCII_LETTER, Word], [DIGIT, Asciinumeric]];\n  const uwordjr = [[ASCII_LETTER, null], [LETTER, UWord], [DIGIT, Alphanumeric]];\n  for (let i = 0; i < tlds.length; i++) {\n    fastts(Start, tlds[i], TLD, WORD, wordjr);\n  }\n  for (let i = 0; i < utlds.length; i++) {\n    fastts(Start, utlds[i], UTLD, UWORD, uwordjr);\n  }\n  addToGroups(TLD, {\n    tld: true,\n    ascii: true\n  }, groups);\n  addToGroups(UTLD, {\n    utld: true,\n    alpha: true\n  }, groups);\n\n  // 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  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);\n\n  // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n  customSchemes = customSchemes.sort((a, b) => a[0] > b[0] ? 1 : -1);\n  for (let i = 0; i < customSchemes.length; i++) {\n    const sch = customSchemes[i][0];\n    const optionalSlashSlash = customSchemes[i][1];\n    const flags = optionalSlashSlash ? {\n      [scheme]: true\n    } : {\n      [slashscheme]: true\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    ts(Start, sch, sch, flags);\n  }\n\n  // Localhost token\n  ts(Start, 'localhost', LOCALHOST, {\n    ascii: true\n  });\n\n  // Set default transition for start state (some symbol)\n  Start.jd = new State(SYM);\n  return {\n    start: Start,\n    tokens: Object.assign({\n      groups\n    }, tk)\n  };\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*/\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  const iterable = stringToArray(str.replace(/[A-Z]/g, c => c.toLowerCase()));\n  const charCount = iterable.length; // <= len if there are emojis, etc\n  const tokens = []; // return value\n\n  // cursor through the string itself, accounting for characters that have\n  // width with length 2 such as emojis\n  let cursor = 0;\n\n  // Cursor through the array-representation of the string\n  let charCursor = 0;\n\n  // Tokenize the string\n  while (charCursor < charCount) {\n    let state = start;\n    let nextState = null;\n    let tokenLength = 0;\n    let latestAccepting = null;\n    let sinceAccepts = -1;\n    let charsSinceAccepts = -1;\n    while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n      state = nextState;\n\n      // Keep track of the latest accepting state\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      tokenLength += iterable[charCursor].length;\n      cursor += iterable[charCursor].length;\n      charCursor++;\n    }\n\n    // Roll back to the latest accepting state\n    cursor -= sinceAccepts;\n    charCursor -= charsSinceAccepts;\n    tokenLength -= sinceAccepts;\n\n    // No more jumps, just make a new token from the last accepting one\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  return tokens;\n}\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 */\nfunction stringToArray(str) {\n  const result = [];\n  const len = str.length;\n  let index = 0;\n  while (index < len) {\n    let first = str.charCodeAt(index);\n    let second;\n    let 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    result.push(char);\n    index += char.length;\n  }\n  return result;\n}\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 */\nfunction fastts(state, input, t, defaultt, jr) {\n  let next;\n  const len = input.length;\n  for (let i = 0; i < len - 1; i++) {\n    const char = input[i];\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    state = next;\n  }\n  next = new State(t);\n  next.jr = jr.slice();\n  state.j[input[len - 1]] = next;\n  return next;\n}\n\n/**\n * Converts a string of Top-Level Domain names encoded in update-tlds.js back\n * into a list of strings.\n * @param {str} encoded encoded TLDs string\n * @returns {str[]} original TLDs list\n */\nfunction decodeTlds(encoded) {\n  const words = [];\n  const stack = [];\n  let i = 0;\n  let digits = '0123456789';\n  while (i < encoded.length) {\n    let popDigitCount = 0;\n    while (digits.indexOf(encoded[i + popDigitCount]) >= 0) {\n      popDigitCount++; // encountered some digits, have to pop to go one level up trie\n    }\n    if (popDigitCount > 0) {\n      words.push(stack.join('')); // whatever preceded the pop digits must be a word\n      for (let popCount = parseInt(encoded.substring(i, i + popDigitCount), 10); popCount > 0; popCount--) {\n        stack.pop();\n      }\n      i += popDigitCount;\n    } else {\n      stack.push(encoded[i]); // drop down a level into the trie\n      i++;\n    }\n  }\n  return words;\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 */\nconst 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/**\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 */\nfunction Options(opts, defaultRender = null) {\n  let o = Object.assign({}, defaults);\n  if (opts) {\n    o = Object.assign(o, opts instanceof Options ? opts.o : opts);\n  }\n\n  // Ensure all ignored tags are uppercase\n  const ignoredTags = o.ignoreTags;\n  const uppercaseIgnoredTags = [];\n  for (let i = 0; i < ignoredTags.length; i++) {\n    uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n  }\n  /** @protected */\n  this.o = o;\n  if (defaultRender) {\n    this.defaultRender = defaultRender;\n  }\n  this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n  o: defaults,\n  /**\n   * @type string[]\n   */\n  ignoreTags: [],\n  /**\n   * @param {IntermediateRepresentation} ir\n   * @returns {any}\n   */\n  defaultRender(ir) {\n    return ir;\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(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(key, operator, token) {\n    const isCallable = operator != null;\n    let option = this.o[key];\n    if (!option) {\n      return option;\n    }\n    if (typeof option === 'object') {\n      option = token.t in option ? option[token.t] : defaults[key];\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    return option;\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(key, operator, token) {\n    let obj = this.o[key];\n    if (typeof obj === 'function' && operator != null) {\n      obj = obj(operator, token.t, token);\n    }\n    return obj;\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(token) {\n    const ir = token.render(this); // intermediate representation\n    const renderFn = this.get('render', null, token) || this.defaultRender;\n    return renderFn(ir, token.t, token);\n  }\n};\nfunction noop(val) {\n  return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tOptions: Options,\n\tdefaults: defaults\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 */\nfunction MultiToken(value, tokens) {\n  this.t = 'token';\n  this.v = value;\n  this.tk = tokens;\n}\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 */\nMultiToken.prototype = {\n  isLink: false,\n  /**\n   * Return the string this token represents.\n   * @return {string}\n   */\n  toString() {\n    return this.v;\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(scheme) {\n    return this.toString();\n  },\n  /**\n   * @param {Options} options Formatting options\n   * @returns {string}\n   */\n  toFormattedString(options) {\n    const val = this.toString();\n    const truncate = options.get('truncate', val, this);\n    const formatted = options.get('format', val, this);\n    return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n  },\n  /**\n   *\n   * @param {Options} options\n   * @returns {string}\n   */\n  toFormattedHref(options) {\n    return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n  },\n  /**\n   * The start index of this token in the original input string\n   * @returns {number}\n   */\n  startIndex() {\n    return this.tk[0].s;\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() {\n    return this.tk[this.tk.length - 1].e;\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(protocol = defaults.defaultProtocol) {\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   * @param {Options} options Formatting option\n   */\n  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   * Whether this token should be rendered as a link according to the given options\n   * @param {Options} options\n   * @returns {boolean}\n   */\n  validate(options) {\n    return options.get('validate', this.toString(), this);\n  },\n  /**\n   * Return an object that represents how this link should be rendered.\n   * @param {Options} options Formattinng options\n   */\n  render(options) {\n    const token = this;\n    const href = this.toHref(options.get('defaultProtocol'));\n    const formattedHref = options.get('formatHref', href, this);\n    const tagName = options.get('tagName', href, token);\n    const content = this.toFormattedString(options);\n    const attributes = {};\n    const className = options.get('className', href, token);\n    const target = options.get('target', href, token);\n    const rel = options.get('rel', href, token);\n    const attrs = options.getObj('attributes', href, token);\n    const eventListeners = options.getObj('events', href, token);\n    attributes.href = formattedHref;\n    if (className) {\n      attributes.class = className;\n    }\n    if (target) {\n      attributes.target = target;\n    }\n    if (rel) {\n      attributes.rel = rel;\n    }\n    if (attrs) {\n      Object.assign(attributes, attrs);\n    }\n    return {\n      tagName,\n      attributes,\n      content,\n      eventListeners\n    };\n  }\n};\n\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 */\nfunction createTokenClass(type, props) {\n  class Token extends MultiToken {\n    constructor(value, tokens) {\n      super(value, tokens);\n      this.t = type;\n    }\n  }\n  for (const p in props) {\n    Token.prototype[p] = props[p];\n  }\n  Token.t = type;\n  return Token;\n}\n\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\nconst Email = createTokenClass('email', {\n  isLink: true,\n  toHref() {\n    return 'mailto:' + this.toString();\n  }\n});\n\n/**\n\tRepresents some plain text\n*/\nconst Text = createTokenClass('text');\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\nconst Nl = createTokenClass('nl');\n\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\nconst Url = createTokenClass('url', {\n  isLink: true,\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(scheme = defaults.defaultProtocol) {\n    // Check if already has a prefix scheme\n    return this.hasProtocol() ? this.v : `${scheme}://${this.v}`;\n  },\n  /**\n   * Check whether this URL token has a protocol\n   * @return {boolean}\n   */\n  hasProtocol() {\n    const 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\tBase: MultiToken,\n\tEmail: Email,\n\tMultiToken: MultiToken,\n\tNl: Nl,\n\tText: Text,\n\tUrl: Url,\n\tcreateTokenClass: createTokenClass\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\nconst makeState = arg => new State(arg);\n\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections<string> }} tokens\n */\nfunction init$1({\n  groups\n}) {\n  // Types of characters the URL can definitely end in\n  const qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]);\n\n  // 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  const qsNonAccepting = [APOSTROPHE, COLON, COMMA, DOT, EXCLAMATION, PERCENT, QUERY, QUOTE, SEMI, OPENANGLEBRACKET, CLOSEANGLEBRACKET, OPENBRACE, CLOSEBRACE, CLOSEBRACKET, OPENBRACKET, OPENPAREN, CLOSEPAREN, FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN, LEFTCORNERBRACKET, RIGHTCORNERBRACKET, LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET, FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN];\n\n  // For addresses without the mailto prefix\n  // Tokens allowed in the localpart of the email\n  const localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, OPENBRACE, CLOSEBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE];\n\n  // The universal starting state.\n  /**\n   * @type State<Token>\n   */\n  const Start = makeState();\n  const Localpart = tt(Start, TILDE); // Local part of the email address\n  ta(Localpart, localpartAccepting, Localpart);\n  ta(Localpart, groups.domain, Localpart);\n  const Domain = makeState(),\n    Scheme = makeState(),\n    SlashScheme = makeState();\n  ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n  ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n  ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n  ta(Domain, localpartAccepting, Localpart);\n  ta(Domain, groups.domain, Domain);\n  const 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  // Local part of an email address can be e.g. 'http' or 'mailto'\n  tt(Scheme, AT, LocalpartAt);\n  tt(SlashScheme, AT, LocalpartAt);\n  const LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n  ta(LocalpartDot, localpartAccepting, Localpart);\n  ta(LocalpartDot, groups.domain, Localpart);\n  const EmailDomain = makeState();\n  ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n  ta(EmailDomain, groups.domain, EmailDomain);\n  const EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n  ta(EmailDomainDot, groups.domain, EmailDomain);\n  const Email$1 = makeState(Email); // Possible email address (could have more tlds)\n  ta(EmailDomainDot, groups.tld, Email$1);\n  ta(EmailDomainDot, groups.utld, Email$1);\n  tt(LocalpartAt, LOCALHOST, Email$1);\n\n  // Hyphen can jump back to a domain name\n  const EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n  tt(EmailDomainHyphen, HYPHEN, EmailDomainHyphen);\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);\n\n  // Final possible email states\n  const EmailColon = tt(Email$1, COLON); // URL followed by colon (potential port number here)\n  /*const EmailColonPort = */\n  ta(EmailColon, groups.numeric, Email); // URL followed by colon and port number\n\n  // Account for dots and hyphens. Hyphens are usually parts of domain names\n  // (but not TLDs)\n  const DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n  const DomainDot = tt(Domain, DOT); // domain followed by DOT\n  tt(DomainHyphen, HYPHEN, DomainHyphen);\n  ta(DomainHyphen, groups.domain, Domain);\n  ta(DomainDot, localpartAccepting, Localpart);\n  ta(DomainDot, groups.domain, Domain);\n  const DomainDotTld = makeState(Url); // Simplest possible URL with no query string\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  const DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n  const DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n  ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort);\n\n  // Long URL with optional port and maybe query string\n  const Url$1 = makeState(Url);\n\n  // URL with extra symbols at the end, followed by an opening bracket\n  const UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n  // Query strings\n  ta(Url$1, qsAccepting, Url$1);\n  ta(Url$1, qsNonAccepting, UrlNonaccept);\n  ta(UrlNonaccept, qsAccepting, Url$1);\n  ta(UrlNonaccept, qsNonAccepting, UrlNonaccept);\n\n  // Become real URLs after `SLASH` or `COLON NUM SLASH`\n  // Here works with or without scheme:// prefix\n  tt(DomainDotTld, SLASH, Url$1);\n  tt(DomainDotTldColonPort, SLASH, Url$1);\n\n  // Note that domains that begin with schemes are treated slighly differently\n  const SchemeColon = tt(Scheme, COLON); // e.g., 'mailto:'\n  const SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n  const SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n  const UriPrefix = tt(SlashSchemeColonSlash, SLASH); // e.g., 'http://'\n\n  // Scheme states can transition to domain states\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);\n\n  // Force URL with scheme prefix followed by anything sane\n  ta(SchemeColon, groups.domain, Url$1);\n  tt(SchemeColon, SLASH, Url$1);\n  tt(SchemeColon, QUERY, Url$1);\n  ta(UriPrefix, groups.domain, Url$1);\n  ta(UriPrefix, qsAccepting, Url$1);\n  tt(UriPrefix, SLASH, Url$1);\n  const bracketPairs = [[OPENBRACE, CLOSEBRACE],\n  // {}\n  [OPENBRACKET, CLOSEBRACKET],\n  // []\n  [OPENPAREN, CLOSEPAREN],\n  // ()\n  [OPENANGLEBRACKET, CLOSEANGLEBRACKET],\n  // <>\n  [FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN],\n  // （）\n  [LEFTCORNERBRACKET, RIGHTCORNERBRACKET],\n  // 「」\n  [LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET],\n  // 『』\n  [FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN] // ＜＞\n  ];\n  for (let i = 0; i < bracketPairs.length; i++) {\n    const [OPEN, CLOSE] = bracketPairs[i];\n    const UrlOpen = tt(Url$1, OPEN); // URL followed by open bracket\n\n    // Continue not accepting for open brackets\n    tt(UrlNonaccept, OPEN, UrlOpen);\n\n    // Closing bracket component. This character WILL be included in the URL\n    tt(UrlOpen, CLOSE, Url$1);\n\n    // URL that beings with an opening bracket, followed by a symbols.\n    // Note that the final state can still be `UrlOpen` (if the URL has a\n    // single opening bracket for some reason).\n    const UrlOpenQ = makeState(Url);\n    ta(UrlOpen, qsAccepting, UrlOpenQ);\n    const UrlOpenSyms = makeState(); // UrlOpen followed by some symbols it cannot end it\n    ta(UrlOpen, qsNonAccepting);\n\n    // URL that begins with an opening bracket, followed by some symbols\n    ta(UrlOpenQ, qsAccepting, UrlOpenQ);\n    ta(UrlOpenQ, qsNonAccepting, UrlOpenSyms);\n    ta(UrlOpenSyms, qsAccepting, UrlOpenQ);\n    ta(UrlOpenSyms, qsNonAccepting, UrlOpenSyms);\n\n    // Close brace/bracket to become regular URL\n    tt(UrlOpenQ, CLOSE, Url$1);\n    tt(UrlOpenSyms, CLOSE, Url$1);\n  }\n  tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n  tt(Start, NL, Nl); // single new line\n\n  return {\n    start: Start,\n    tokens: tk\n  };\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 */\nfunction run(start, input, tokens) {\n  let len = tokens.length;\n  let cursor = 0;\n  let multis = [];\n  let textTokens = [];\n  while (cursor < len) {\n    let state = start;\n    let secondState = null;\n    let nextState = null;\n    let multiLength = 0;\n    let latestAccepting = null;\n    let sinceAccepts = -1;\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    while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n      // Get the next state\n      secondState = null;\n      state = nextState;\n\n      // Keep track of the latest accepting state\n      if (state.accepts()) {\n        sinceAccepts = 0;\n        latestAccepting = state;\n      } else if (sinceAccepts >= 0) {\n        sinceAccepts++;\n      }\n      cursor++;\n      multiLength++;\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      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      }\n\n      // Roll back to the latest accepting state\n      cursor -= sinceAccepts;\n      multiLength -= sinceAccepts;\n\n      // Create a new multitoken\n      const Multi = latestAccepting.t;\n      const subtokens = tokens.slice(cursor - multiLength, cursor);\n      multis.push(initMultiToken(Multi, input, subtokens));\n    }\n  }\n\n  // Finally close off the textTokens (if available)\n  if (textTokens.length > 0) {\n    multis.push(initMultiToken(Text, input, textTokens));\n  }\n  return multis;\n}\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 */\nfunction initMultiToken(Multi, input, tokens) {\n  const startIdx = tokens[0].s;\n  const endIdx = tokens[tokens.length - 1].e;\n  const value = input.slice(startIdx, endIdx);\n  return new Multi(value, tokens);\n}\n\nconst warn = typeof console !== 'undefined' && console && console.warn || (() => {});\nconst warnAdvice = 'until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.';\n\n// Side-effect initialization state\nconst INIT = {\n  scanner: null,\n  parser: null,\n  tokenQueue: [],\n  pluginQueue: [],\n  customSchemes: [],\n  initialized: false\n};\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 */\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  return INIT;\n}\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 */\nfunction registerTokenPlugin(name, plugin) {\n  if (typeof plugin !== 'function') {\n    throw new Error(`linkifyjs: Invalid token plugin ${plugin} (expects function)`);\n  }\n  for (let 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  INIT.tokenQueue.push([name, plugin]);\n  if (INIT.initialized) {\n    warn(`linkifyjs: already initialized - will not register token plugin \"${name}\" ${warnAdvice}`);\n  }\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 */\nfunction registerPlugin(name, plugin) {\n  if (typeof plugin !== 'function') {\n    throw new Error(`linkifyjs: Invalid plugin ${plugin} (expects function)`);\n  }\n  for (let 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  INIT.pluginQueue.push([name, plugin]);\n  if (INIT.initialized) {\n    warn(`linkifyjs: already initialized - will not register plugin \"${name}\" ${warnAdvice}`);\n  }\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} scheme\n * @param {boolean} [optionalSlashSlash]\n */\nfunction registerCustomProtocol(scheme, optionalSlashSlash = false) {\n  if (INIT.initialized) {\n    warn(`linkifyjs: already initialized - will not register custom scheme \"${scheme}\" ${warnAdvice}`);\n  }\n  if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n    throw new Error(`linkifyjs: incorrect scheme format.\n1. Must only contain digits, lowercase ASCII letters or \"-\"\n2. Cannot start or end with \"-\"\n3. \"-\" cannot repeat`);\n  }\n  INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\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 */\nfunction init() {\n  // Initialize scanner state machine and plugins\n  INIT.scanner = init$2(INIT.customSchemes);\n  for (let i = 0; i < INIT.tokenQueue.length; i++) {\n    INIT.tokenQueue[i][1]({\n      scanner: INIT.scanner\n    });\n  }\n\n  // Initialize parser state machine and plugins\n  INIT.parser = init$1(INIT.scanner.tokens);\n  for (let i = 0; i < INIT.pluginQueue.length; i++) {\n    INIT.pluginQueue[i][1]({\n      scanner: INIT.scanner,\n      parser: INIT.parser\n    });\n  }\n  INIT.initialized = true;\n  return INIT;\n}\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 */\nfunction tokenize(str) {\n  if (!INIT.initialized) {\n    init();\n  }\n  return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\ntokenize.scan = run$1; // for testing\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 */\nfunction find(str, type = null, opts = null) {\n  if (type && typeof type === 'object') {\n    if (opts) {\n      throw Error(`linkifyjs: Invalid link type ${type}; must be a string`);\n    }\n    opts = type;\n    type = null;\n  }\n  const options = new Options(opts);\n  const tokens = tokenize(str);\n  const filtered = [];\n  for (let i = 0; i < tokens.length; i++) {\n    const token = tokens[i];\n    if (token.isLink && (!type || token.t === type) && options.check(token)) {\n      filtered.push(token.toFormattedObject(options));\n    }\n  }\n  return filtered;\n}\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 */\nfunction test(str, type = null) {\n  const 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, multi as text, tokenize };\n","import { Options, tokenize } from 'linkifyjs';\n\n/**\n\tConvert strings of text into linkable HTML text\n*/\nfunction escapeText(text) {\n  return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\nfunction escapeAttr(href) {\n  return href.replace(/\"/g, '&quot;');\n}\nfunction attributesToString(attributes) {\n  const result = [];\n  for (const attr in attributes) {\n    let val = attributes[attr] + '';\n    result.push(`${attr}=\"${escapeAttr(val)}\"`);\n  }\n  return result.join(' ');\n}\nfunction defaultRender({\n  tagName,\n  attributes,\n  content\n}) {\n  return `<${tagName} ${attributesToString(attributes)}>${escapeText(content)}</${tagName}>`;\n}\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 */\nfunction linkifyStr(str, opts = {}) {\n  opts = new Options(opts, defaultRender);\n  const tokens = tokenize(str);\n  const result = [];\n  for (let i = 0; i < tokens.length; i++) {\n    const token = tokens[i];\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  return result.join('');\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-Bd2cj1W-.css';\nimport { Portal } from \"@linusborg/vue-simple-portal\";\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { createFocusTrap } from \"focus-trap\";\nimport Vue, { ref, provide } from \"vue\";\nimport { A as ArrowRight } from \"./ArrowRight-CY2b9hgN.mjs\";\nimport { C as Close } from \"./Close-BtLPUSdO.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch-DAPHFb0L.mjs\";\nimport NcVNodes from \"../Components/NcVNodes.mjs\";\nimport { useIsSmallMobile } from \"../Composables/useIsMobile.mjs\";\nimport directive from \"../Directives/Focus.mjs\";\nimport { r as register, N as t14, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-F5ebeBB_.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcActions } from \"./NcActions-CpdT2y6O.mjs\";\nimport { N as NcAppSidebarHeader } from \"./NcAppSidebarHeader-CBE4tNYb.mjs\";\nimport { N as NcButton } from \"./NcButton-DUZTtFhr.mjs\";\nimport NcEmptyContent from \"../Components/NcEmptyContent.mjs\";\nimport NcLoadingIcon from \"../Components/NcLoadingIcon.mjs\";\nconst _sfc_main$4 = {\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$4 = function render() {\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$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 IconDockRight = __component__$4.exports;\nconst _sfc_main$3 = {\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$3 = function render2() {\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$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 Star = __component__$3.exports;\nconst _sfc_main$2 = {\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$2 = function render3() {\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$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 StarOutline = __component__$2.exports;\nconst _sfc_main$1 = {\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$1 = function render4() {\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$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n  _sfc_main$1,\n  _sfc_render$1,\n  _sfc_staticRenderFns$1,\n  false,\n  null,\n  \"4e1cbc50\"\n);\nconst NcAppSidebarTabs = __component__$1.exports;\nregister(t14);\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    /**\n     * The active tab\n     */\n    active: {\n      type: String,\n      default: \"\"\n    },\n    /**\n     * Note: in @nextcloud/vue v9 this prop is required\n     */\n    name: {\n      type: String,\n      default: \"\"\n    },\n    /**\n     * Allow to edit the sidebar name.\n     */\n    nameEditable: {\n      type: Boolean,\n      default: false\n    },\n    /**\n     * Placeholder in the edit field if the name is editable.\n     */\n    namePlaceholder: {\n      type: String,\n      default: \"\"\n    },\n    /**\n     * Secondary name of the sidebar (subline)\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      // eslint-disable-next-line vue/no-boolean-default\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      // eslint-disable-next-line vue/no-boolean-default\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(() => this.$refs.nameInput.focus());\n      }\n    },\n    /**\n     * Focus the sidebar\n     *\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     *\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        logger.warn(\"[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     * 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  \"1023e7a5\"\n);\nconst NcAppSidebar = __component__.exports;\nexport {\n  NcAppSidebar as N\n};\n//# sourceMappingURL=NcAppSidebar-D5IUeKjd.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-hRgvNUMR.css';\nimport debounce from \"debounce\";\nimport { ref, set } from \"vue\";\nimport { r as register, J as t28, a as t, K as t6 } from \"./_l10n-BmKQgz1z.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-DykQxmXJ.mjs\";\nimport { N as NcActions } from \"./NcActions-CpdT2y6O.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-D5nljVEA.mjs\";\nimport { g as getRoute } from \"./autolink-D2pIbi92.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcSelect } from \"./NcSelect-DTniMiUS.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nregister(t28);\nconst _sfc_main$1 = {\n  name: \"NcCollectionListItem\",\n  components: {\n    NcAvatar,\n    NcActions,\n    NcActionButton\n  },\n  props: {\n    /**\n     * The collection\n     */\n    collection: {\n      type: Object,\n      default: null\n    },\n    /**\n     * Current error if any\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  \"88468fab\"\n);\nconst NcCollectionListItem = __component__$1.exports;\nregister(t6);\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  async function addResourceToCollection({ 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      // eslint-disable-next-line vue/no-boolean-default\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((error) => {\n          logger.error(\"Failed to search for collections\", { error });\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((collection) => collection.resources.some((resource) => resource && resource.id === String(this.id) && resource.type === this.type));\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((error) => {\n          logger.error(\"No resource selected\", { error });\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      logger.error(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((error) => {\n        logger.error(t(\"Failed to rename the project\"), { error });\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  \"73e5825c\"\n);\nconst NcCollectionList = __component__.exports;\nexport {\n  NcCollectionList as N\n};\n//# sourceMappingURL=NcCollectionList-B9weMM0Q.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-CCqpXoam.css';\nimport { defineComponent, ref, computed } from \"vue\";\nimport { n as mdiDotsHorizontal, o as mdiCloseCircleOutline, a as mdiCheck, p as mdiArrowLeft } from \"./mdi-C_j0YT8c.mjs\";\nimport { useVModel } from \"@vueuse/core\";\nimport { Chrome } from \"vue-color\";\nimport { N as NcButton } from \"./NcButton-DUZTtFhr.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BreCg8pX.mjs\";\nimport { N as NcPopover } from \"./NcPopover-gxcAqoEb.mjs\";\nimport { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nimport { r as register, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { d as defaultPalette, a as COLOR_BLACK, b as COLOR_WHITE } from \"./colors-BwQwSDJi.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister();\nconst __default__ = {\n  model: {\n    event: \"update:modelValue\",\n    prop: \"modelValue\"\n  }\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n  ...__default__,\n  __name: \"NcColorPicker\",\n  props: {\n    advancedFields: { type: Boolean },\n    clearable: { type: Boolean },\n    container: { default: \"body\" },\n    modelValue: { default: \"\" },\n    value: { default: void 0 },\n    open: { type: Boolean },\n    palette: { default: () => [] },\n    paletteOnly: { type: Boolean }\n  },\n  emits: [\"submit\", \"close\", \"update:modelValue\", \"update:value\"],\n  setup(__props, { emit }) {\n    const props = __props;\n    const currentColor = useModelMigration(\"value\", \"update:value\", true);\n    const modelOpen = useVModel(props, \"open\", emit, { passive: true, eventName: \"update:open\" });\n    const HEX_REGEX = /^#([a-f0-9]{3}|[a-f0-9]{6})$/i;\n    const id = createElementId();\n    const advanced = ref(false);\n    const normalizedPalette = computed(() => {\n      let palette = props.palette;\n      for (const color of palette) {\n        if (typeof color === \"string\" && !color.match(HEX_REGEX) || typeof color === \"object\" && !color.color?.match(HEX_REGEX)) {\n          logger.error(\"[NcColorPicker] Invalid palette passed\", { color });\n          palette = [];\n          break;\n        }\n      }\n      if (palette.length === 0) {\n        palette = props.clearable ? [...defaultPalette, COLOR_BLACK, COLOR_WHITE] : [...defaultPalette];\n      }\n      return 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: typeof item === \"string\" ? item : item.color })\n      }));\n    });\n    function handleConfirm(hideCallback) {\n      emit(\"submit\", currentColor.value);\n      hideCallback();\n      advanced.value = false;\n    }\n    function toggleColor(color) {\n      color = typeof color === \"string\" ? color : color.color;\n      if (props.clearable && currentColor.value === color) {\n        currentColor.value = void 0;\n      } else {\n        currentColor.value = color;\n      }\n    }\n    function pickCustomColor(color) {\n      currentColor.value = color.hex;\n    }\n    function getContrastColor(color) {\n      return calculateLuma(color) > 0.5 ? COLOR_BLACK.color : COLOR_WHITE.color;\n    }\n    function calculateLuma(color) {\n      const [red, green, blue] = hexToRGB(color);\n      return (0.2126 * red + 0.7152 * green + 0.0722 * blue) / 255;\n    }\n    function 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)] : [0, 0, 0];\n    }\n    return { __sfc: true, props, emit, currentColor, modelOpen, HEX_REGEX, id, advanced, normalizedPalette, handleConfirm, toggleColor, pickCustomColor, getContrastColor, calculateLuma, hexToRGB, mdiArrowLeft, mdiCheck, mdiCloseCircleOutline, mdiDotsHorizontal, Chrome, NcButton, NcIconSvgWrapper, NcPopover, t };\n  }\n});\nvar _sfc_render = function render() {\n  var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n  return _c(_setup.NcPopover, _vm._g(_vm._b({ attrs: { \"shown\": _setup.modelOpen, \"container\": _vm.container, \"popup-role\": \"dialog\" }, on: { \"update:shown\": function($event) {\n    _setup.modelOpen = $event;\n  }, \"apply-hide\": function($event) {\n    return _setup.emit(\"close\");\n  } }, 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: {\n      \"color-picker--advanced-fields\": _setup.advanced && _vm.advancedFields,\n      \"color-picker--clearable\": _vm.clearable\n    }, attrs: { \"role\": \"dialog\", \"aria-modal\": \"true\", \"aria-label\": _setup.t(\"Color picker\") } }, [_c(\"Transition\", { attrs: { \"name\": \"slide\", \"mode\": \"out-in\" } }, [!_setup.advanced ? _c(\"div\", { staticClass: \"color-picker__simple\" }, [_vm._l(_setup.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 === _setup.currentColor }, style: {\n        backgroundColor: color,\n        color: _setup.getContrastColor(color)\n      } }, [_c(\"span\", { staticClass: \"hidden-visually\" }, [_vm._v(\" \" + _vm._s(color) + \" -- \" + _vm._s(_setup.currentColor) + \" \")]), color === _setup.currentColor ? _c(_setup.NcIconSvgWrapper, { attrs: { \"path\": _setup.mdiCheck } }) : _vm._e(), _c(\"input\", { staticClass: \"hidden-visually\", attrs: { \"type\": \"radio\", \"aria-label\": name, \"name\": `color-picker-${_setup.id}` }, domProps: { \"checked\": color === _setup.currentColor }, on: { \"click\": function($event) {\n        return _setup.toggleColor(color);\n      } } })], 1);\n    }), _vm.clearable ? _c(\"label\", { staticClass: \"color-picker__clear\", attrs: { \"title\": _setup.t(\"No color\") } }, [_c(_setup.NcIconSvgWrapper, { attrs: { \"size\": _setup.currentColor ? 28 : 34, \"path\": _setup.mdiCloseCircleOutline } }), _c(\"input\", { staticClass: \"hidden-visually\", attrs: { \"type\": \"radio\", \"aria-label\": _setup.t(\"No color\"), \"name\": `color-picker-${_setup.id}` }, domProps: { \"checked\": !_setup.currentColor }, on: { \"click\": function($event) {\n      _setup.currentColor = void 0;\n    } } })], 1) : _vm._e()], 2) : _c(_setup.Chrome, { staticClass: \"color-picker__advanced\", attrs: { \"disable-alpha\": true, \"disable-fields\": !_vm.advancedFields, \"value\": _setup.currentColor ?? \"#000000\" }, on: { \"input\": _setup.pickCustomColor } })], 1), !_vm.paletteOnly ? _c(\"div\", { staticClass: \"color-picker__navigation\" }, [_setup.advanced ? _c(_setup.NcButton, { attrs: { \"aria-label\": _setup.t(\"Back\"), \"title\": _setup.t(\"Back\"), \"variant\": \"tertiary\" }, on: { \"click\": function($event) {\n      _setup.advanced = false;\n    } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n      return [_c(_setup.NcIconSvgWrapper, { attrs: { \"directional\": \"\", \"path\": _setup.mdiArrowLeft } })];\n    }, proxy: true }], null, true) }) : _c(_setup.NcButton, { attrs: { \"aria-label\": _setup.t(\"More options\"), \"title\": _setup.t(\"More options\"), \"variant\": \"tertiary\" }, on: { \"click\": function($event) {\n      _setup.advanced = true;\n    } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n      return [_c(_setup.NcIconSvgWrapper, { attrs: { \"path\": _setup.mdiDotsHorizontal } })];\n    }, proxy: true }], null, true) }), _c(_setup.NcButton, { attrs: { \"variant\": \"primary\" }, on: { \"click\": function($event) {\n      return _setup.handleConfirm(slotProps.hide);\n    } } }, [_vm._v(\" \" + _vm._s(_setup.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  \"01d41e75\"\n);\nconst NcColorPicker = __component__.exports;\nexport {\n  NcColorPicker as N\n};\n//# sourceMappingURL=NcColorPicker-DVkGUHxL.mjs.map\n","import '../assets/NcDashboardWidget-DzJMoJ_B.css';\nimport { C as Check } from \"./Check-BkThHPH7.mjs\";\nimport { r as register, l as t35, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-D5nljVEA.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./NcDashboardWidgetItem-DZ13sBtT.mjs\";\nimport NcEmptyContent from \"../Components/NcEmptyContent.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t35);\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  \"7631d51f\"\n);\nconst NcDashboardWidget = __component__.exports;\nexport {\n  NcDashboardWidget as N\n};\n//# sourceMappingURL=NcDashboardWidget-DpzjksBk.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 p}});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,v,p=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(){v=!0,f=c.get(\"frequently\")}var w={add:function(e){v||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(v||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=p(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(){var e=this._vm.$refs.scroll;if(e){for(var t=e.scrollTop,i=this.filteredCategories[0],n=0,r=this.filteredCategories.length;n<r;n++){var o=this.filteredCategories[n],s=this._vm.getCategoryComponent(n);if(s&&s.$el.offsetTop-50>t)break;i=o}this.activeCategory=i}}},{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}()}));","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 { 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-B-iLLj37.css';\nimport { Picker, Emoji, EmojiIndex } from \"emoji-mart-vue-fast\";\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nimport { isFocusable } from \"tabbable\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { N as NcColorPicker } from \"./NcColorPicker-DVkGUHxL.mjs\";\nimport { u as useTrapStackControl } from \"./useTrapStackControl-BnLfCgGU.mjs\";\nimport { s as setCurrentSkinTone, g as getCurrentSkinTone } from \"./emoji-BY_D0V5K.mjs\";\nimport { r as register, v as t43, w as t37, p as t15, x as t5, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { C as Color } from \"./colors-BwQwSDJi.mjs\";\nimport { N as NcButton } from \"./NcButton-DUZTtFhr.mjs\";\nimport { N as NcPopover } from \"./NcPopover-gxcAqoEb.mjs\";\nimport { N as NcTextField } from \"./NcTextField-CfZknuqx.mjs\";\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;\nregister(t5, t15, t37, t43);\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      // eslint-disable-next-line vue/no-boolean-default\n      default: true\n    },\n    /**\n     * Selector for the popover container\n     */\n    container: {\n      type: [Boolean, String, Object, Element],\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       *\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     *\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     *\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     *\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(\"div\", { staticClass: \"nc-emoji-picker-container\" }, [_c(\"Picker\", _vm._b({ ref: \"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  \"a3ed576d\"\n);\nconst NcEmojiPicker = __component__.exports;\nexport {\n  NcEmojiPicker as N\n};\n//# sourceMappingURL=NcEmojiPicker-CpU37Ozq.mjs.map\n","import { ref, defineComponent, computed } from \"vue\";\nimport { a as mdiCheck, j as mdiContentCopy } from \"./mdi-C_j0YT8c.mjs\";\nimport { toValue, whenever } from \"@vueuse/core\";\nimport { N as NcFormBoxButton } from \"./NcFormBoxButton-DN0-J4yN.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BreCg8pX.mjs\";\nimport { r as register, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister();\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst DELAY = 2e3;\nfunction useCopy(content) {\n  const isCopied = ref(false);\n  async function copy() {\n    if (isCopied.value) {\n      return;\n    }\n    const value = toValue(content);\n    try {\n      await navigator.clipboard.writeText(value);\n    } catch {\n      prompt(\"\", value);\n    }\n    isCopied.value = true;\n    setTimeout(() => {\n      isCopied.value = false;\n    }, DELAY);\n  }\n  return {\n    isCopied,\n    copy\n  };\n}\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n  __name: \"NcFormBoxCopyButton\",\n  props: {\n    label: { default: void 0 },\n    value: null,\n    disabled: { type: Boolean, default: false }\n  },\n  emits: [\"copy\"],\n  setup(__props, { emit }) {\n    const props = __props;\n    const { isCopied, copy } = useCopy(() => props.value);\n    const icon = computed(() => isCopied.value ? mdiCheck : mdiContentCopy);\n    whenever(isCopied, () => emit(\"copy\"));\n    return { __sfc: true, props, emit, isCopied, copy, icon, NcFormBoxButton, NcIconSvgWrapper, t };\n  }\n});\nvar _sfc_render = function render() {\n  var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n  return _c(_setup.NcFormBoxButton, { attrs: { \"disabled\": _vm.disabled, \"inverted-accent\": \"\" }, on: { \"click\": _setup.copy }, scopedSlots: _vm._u([_vm.$slots.default || _vm.label ? { key: \"default\", fn: function() {\n    return [_c(\"span\", { staticClass: \"hidden-visually\" }, [_vm._v(\" \" + _vm._s(_setup.isCopied ? _setup.t(\"Copied\") : _setup.t(\"Copy to clipboard\")) + \" \")]), _vm._t(\"default\", function() {\n      return [_vm._v(\" \" + _vm._s(_vm.label) + \" \")];\n    })];\n  }, proxy: true } : null, { key: \"description\", fn: function() {\n    return [_vm._v(\" \" + _vm._s(_vm.value) + \" \")];\n  }, proxy: true }, { key: \"icon\", fn: function() {\n    return [_c(_setup.NcIconSvgWrapper, { attrs: { \"path\": _setup.icon, \"inline\": \"\" } })];\n  }, proxy: true }], null, true) });\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 NcFormBoxCopyButton = __component__.exports;\nexport {\n  NcFormBoxCopyButton as N\n};\n//# sourceMappingURL=NcFormBoxCopyButton-Dwrfiovz.mjs.map\n","import '../assets/NcKbd-BGW1_Jb7.css';\nimport { defineComponent, computed } from \"vue\";\nimport { r as register, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { i as isMac } from \"./platform-CC2ecGvV.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n  __name: \"NcKbd\",\n  props: {\n    symbol: { default: void 0 },\n    mac: { type: [Boolean, null], default: isMac }\n  },\n  setup(__props) {\n    const props = __props;\n    const labels = computed(() => ({\n      ArrowUp: \"↑\",\n      ArrowDown: \"↓\",\n      ArrowLeft: \"←\",\n      ArrowRight: \"→\",\n      Control: !props.mac ? t(\"Ctrl\") : \"⌘\",\n      Alt: !props.mac ? t(\"Alt\") : \"⌥\",\n      Shift: !props.mac ? t(\"Shift\") : \"⇧\",\n      Enter: !props.mac ? t(\"Enter\") : \"⏎\",\n      Tab: !props.mac ? t(\"Tab\") : \"⇥\",\n      Delete: !props.mac ? t(\"Delete\") : \"⌫\",\n      Escape: !props.mac ? t(\"Escape\") : \"⎋\",\n      Space: t(\"Space\")\n      // TRANSLATORS: Space key on keyboard\n    }));\n    const label = computed(() => props.symbol && labels.value[props.symbol] || props.symbol);\n    return { __sfc: true, props, labels, label };\n  }\n});\nconst kbd = \"_kbd_lf0a1_20\";\nconst style0 = {\n  \"material-design-icon\": \"_material-design-icon_lf0a1_12\",\n  kbd\n};\nvar _sfc_render = function render() {\n  var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n  return _c(\"kbd\", { class: _vm.$style.kbd }, [_vm._t(\"default\", function() {\n    return [_vm._v(\" \" + _vm._s(_setup.label) + \" \")];\n  })], 2);\n};\nvar _sfc_staticRenderFns = [];\nconst __cssModules = {\n  \"$style\": style0\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  null\n);\nconst NcKbd = __component__.exports;\nexport {\n  NcKbd as N\n};\n//# sourceMappingURL=NcKbd-CfVfr9CW.mjs.map\n","import '../assets/NcHotkeyList-gAZN0WIu.css';\nimport { defineComponent } from \"vue\";\nimport { r as register, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n  __name: \"NcHotkeyList\",\n  props: {\n    label: { default: void 0 }\n  },\n  setup(__props) {\n    const labelId = `NcHotkeyList_${createElementId()}`;\n    return { __sfc: true, labelId, t };\n  }\n});\nconst hotkeyList = \"_hotkeyList_pf97p_2\";\nconst hotkeyList__heading = \"_hotkeyList__heading_pf97p_6\";\nconst style0 = {\n  hotkeyList,\n  hotkeyList__heading\n};\nvar _sfc_render = function render() {\n  var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n  return _c(\"div\", { class: _vm.$style.hotkeyList }, [_c(\"div\", { class: [_vm.$style.hotkeyList__heading, { \"hidden-visually\": !_vm.label }], attrs: { \"id\": _setup.labelId } }, [_vm._v(\" \" + _vm._s(_vm.label || _setup.t(\"Keyboard shortcuts\")) + \" \")]), _c(\"ul\", { attrs: { \"aria-labelledby\": _setup.labelId } }, [_vm._t(\"default\")], 2)]);\n};\nvar _sfc_staticRenderFns = [];\nconst __cssModules = {\n  \"$style\": style0\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  null\n);\nconst NcHotkeyList = __component__.exports;\nexport {\n  NcHotkeyList as N\n};\n//# sourceMappingURL=NcHotkeyList-Bm25Odp7.mjs.map\n","import '../assets/NcRelatedResourcesPanel-BgMc8bue.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, O as t39, a as t, P as t42, Q as t9 } from \"./_l10n-BmKQgz1z.mjs\";\nimport { N as NcButton } from \"./NcButton-DUZTtFhr.mjs\";\nimport { g as getRoute } from \"./autolink-D2pIbi92.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { C as ChevronDown } from \"./ChevronDown-DFQfzh63.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-C7Dy9Bph.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BreCg8pX.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nregister(t39);\nconst _sfc_main$4 = {\n  name: \"NcResource\",\n  components: {\n    NcButton\n  },\n  /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\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$4 = function render() {\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$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n  _sfc_main$4,\n  _sfc_render$4,\n  _sfc_staticRenderFns$4,\n  false,\n  null,\n  \"9f864ea4\"\n);\nconst NcResource = __component__$4.exports;\nconst _sfc_main$3 = {\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$3 = function render2() {\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$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 AccountGroup = __component__$3.exports;\nconst _sfc_main$2 = {\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$2 = function render3() {\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$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 OpenInNew = __component__$2.exports;\nregister(t42);\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? [];\nconst _sfc_main$1 = {\n  name: \"NcTeamResources\",\n  components: {\n    AccountGroup,\n    ChevronDown,\n    ChevronUp,\n    OpenInNew,\n    NcButton,\n    NcIconSvgWrapper\n  },\n  /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\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 (error) {\n        this.teamResources = null;\n        logger.error(\"Could not fetch Teams resources\", { error });\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$1 = function render4() {\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$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n  _sfc_main$1,\n  _sfc_render$1,\n  _sfc_staticRenderFns$1,\n  false,\n  null,\n  \"e224f6ac\"\n);\nconst NcTeamResources = __component__$1.exports;\nregister(t9);\nconst _sfc_main = {\n  name: \"NcRelatedResourcesPanel\",\n  components: {\n    NcResource,\n    NcTeamResources\n  },\n  /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\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 (error) {\n        this.error = e;\n        logger.error(\"Could not fetch related resources\", { error });\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  \"eaa109ec\"\n);\nconst NcRelatedResourcesPanel = __component__.exports;\nexport {\n  NcRelatedResourcesPanel as N\n};\n//# sourceMappingURL=NcRelatedResourcesPanel-D9-wo_xr.mjs.map\n","import { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nwindow._vue_richtext_widgets ??= {};\nwindow._registerWidget ??= (id, callback, onDestroy, props) => {\n  registerWidget(id, callback, onDestroy, props);\n};\nfunction registerWidget(id, callback, onDestroy = () => {\n}, props) {\n  const propsWithDefaults = {\n    hasInteractiveView: true,\n    fullWidth: false,\n    ...props\n  };\n  if (window._vue_richtext_widgets[id]) {\n    logger.error(`[ReferencePicker]: 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}\nfunction renderWidget(el, options) {\n  const { richObjectType, richObject, accessible, interactive } = options;\n  if (richObjectType === \"open-graph\") {\n    return;\n  }\n  if (!window._vue_richtext_widgets[richObjectType]) {\n    logger.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}\nfunction 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}\nfunction isWidgetRegistered(id) {\n  return !!window._vue_richtext_widgets[id];\n}\nfunction hasInteractiveView(id) {\n  return !!window._vue_richtext_widgets[id]?.hasInteractiveView;\n}\nfunction hasFullWidth(id) {\n  return !!window._vue_richtext_widgets[id]?.fullWidth;\n}\nwindow._vue_richtext_custom_picker_elements ??= {};\nwindow._registerCustomPickerElement ??= registerCustomPickerElement;\nclass NcCustomPickerRenderResult {\n  element;\n  object;\n  /**\n   * @param element - The HTML element\n   * @param object - The object\n   */\n  constructor(element, object) {\n    this.element = element;\n    this.object = object;\n  }\n}\nfunction isCustomPickerElementRegistered(id) {\n  return !!window._vue_richtext_custom_picker_elements[id];\n}\nfunction 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}\nfunction registerCustomPickerElement(id, callback, onDestroy = () => {\n}, size = \"large\") {\n  if (window._vue_richtext_custom_picker_elements[id]) {\n    logger.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}\nfunction renderCustomPickerElement(el, options) {\n  const { providerId, accessible } = options;\n  if (!window._vue_richtext_custom_picker_elements[providerId]) {\n    logger.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}\nfunction 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}\nexport {\n  NcCustomPickerRenderResult as N,\n  renderWidget as a,\n  destroyCustomPickerElement as b,\n  isCustomPickerElementRegistered as c,\n  destroyWidget as d,\n  registerCustomPickerElement as e,\n  renderCustomPickerElement as f,\n  getCustomPickerElementSize as g,\n  hasInteractiveView as h,\n  isWidgetRegistered as i,\n  hasFullWidth as j,\n  registerWidget as r\n};\n//# sourceMappingURL=customPickerElements-DLFtgReB.mjs.map\n","import '../assets/referencePickerModal-CGtNx7ew.css';\nimport Vue, { ref, nextTick } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { A as ArrowLeft } from \"./ArrowLeft-DuT2LZOm.mjs\";\nimport { C as Close } from \"./Close-BtLPUSdO.mjs\";\nimport { d as destroyWidget, a as renderWidget, i as isWidgetRegistered, h as hasInteractiveView, j as hasFullWidth, f as renderCustomPickerElement, b as destroyCustomPickerElement, c as isCustomPickerElementRegistered, g as getCustomPickerElementSize } from \"./customPickerElements-DLFtgReB.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { imagePath, generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, T as t23, a as t, U as t8, V as t47, W as t41, X as t24, v as t43, Y as t32, m as t18, Z as t12 } from \"./_l10n-BmKQgz1z.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport NcEmptyContent from \"../Components/NcEmptyContent.mjs\";\nimport { N as NcHighlight } from \"./index-CxTT94_h.mjs\";\nimport { N as NcSelect } from \"./NcSelect-DTniMiUS.mjs\";\nimport { useElementSize, useIntersectionObserver } from \"@vueuse/core\";\nimport { RouterLink } from \"vue-router\";\nimport { N as NcButton } from \"./NcButton-DUZTtFhr.mjs\";\nimport { g as getRoute } from \"./autolink-D2pIbi92.mjs\";\nimport NcLoadingIcon from \"../Components/NcLoadingIcon.mjs\";\nimport { N as NcTextField } from \"./NcTextField-CfZknuqx.mjs\";\nimport { D as DotsHorizontalIcon } from \"./NcActions-CpdT2y6O.mjs\";\nimport NcModal from \"../Components/NcModal.mjs\";\nregister(t23);\nconst IDLE_TIMEOUT = 3 * 60 * 1e3;\nconst _sfc_main$8 = {\n  name: \"NcReferenceWidget\",\n  components: {\n    NcButton\n  },\n  /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n  props: {\n    reference: {\n      type: Object,\n      required: true\n    },\n    interactive: {\n      type: Boolean,\n      // eslint-disable-next-line vue/no-boolean-default\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  \"f05dd81b\"\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  \"0547d92f\"\n);\nconst NcCustomPickerElement = __component__$7.exports;\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;\nregister(t8);\nconst anyLinkProviderId = \"any-link\";\nconst anyLinkProvider = {\n  id: anyLinkProviderId,\n  title: t(\"Any link\"),\n  order: 0,\n  icon_url: imagePath(\"core\", \"filetypes/link.svg\")\n};\nwindow._vue_richtext_reference_providers ??= loadState(\"core\", \"reference-provider-list\", []);\nwindow._vue_richtext_reference_provider_timestamps ??= loadState(\"core\", \"reference-provider-timestamps\", {});\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      logger.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) {\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}\nasync function touchProvider(providerId) {\n  const timestamp = Math.floor(Date.now() / 1e3);\n  const url = generateOcsUrl(\"references/provider/{providerId}\", { providerId });\n  await axios.put(url, { timestamp });\n  window._vue_richtext_reference_provider_timestamps[providerId] = timestamp;\n}\nregister(t41, t47);\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 {\n    return false;\n  }\n}\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) {\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  \"f39d58d9\"\n);\nconst NcProviderList = __component__$5.exports;\nregister(t24);\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        logger.error(\"Could not update reference\", { 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  \"be630586\"\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  \"995c2758\"\n);\nconst NcSearchResult = __component__$3.exports;\nregister(t32, t41, t43);\nconst LIMIT = 5;\nconst _sfc_main$2 = {\n  name: \"NcSearch\",\n  components: {\n    LinkVariantIcon,\n    DotsHorizontalIcon,\n    NcEmptyContent,\n    NcSelect,\n    NcSearchResult\n  },\n  /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n  props: {\n    /**\n     * The selected reference provider\n     */\n    provider: {\n      type: Object,\n      required: true\n    },\n    showEmptyContent: {\n      type: Boolean,\n      // eslint-disable-next-line vue/no-boolean-default\n      default: true\n    },\n    /**\n     * Placeholder of the search\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) {\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\", { staticClass: \"custom-option\" }, [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  \"e61f71e3\"\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      // eslint-disable-next-line vue/no-boolean-default\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  \"646d5538\"\n);\nconst NcReferencePicker = __component__$1.exports;\nregister(t12, t18);\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      // eslint-disable-next-line vue/no-boolean-default\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  \"00990f2a\"\n);\nconst NcReferencePickerModal = __component__.exports;\nasync function getLinkWithPicker(providerId, isInsideViewer) {\n  const modalId = \"referencePickerModal\";\n  const modalElement = document.createElement(\"div\");\n  modalElement.id = modalId;\n  document.body.append(modalElement);\n  const { promise, reject, resolve } = Promise.withResolvers();\n  const initialProvider = providerId && 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  return promise;\n}\nexport {\n  NcReferencePicker as N,\n  anyLinkProviderId as a,\n  getProvider as b,\n  getProviders as c,\n  sortProviders as d,\n  NcReferencePickerModal as e,\n  NcReferenceWidget as f,\n  getLinkWithPicker as g,\n  NcSearch as h,\n  searchProvider as s\n};\n//# sourceMappingURL=referencePickerModal-CHpUHrDL.mjs.map\n","import '../assets/NcRichText-Cr-HXxVi.css';\nimport rehypeExternalLinks from \"rehype-external-links\";\nimport rehype2react from \"rehype-react\";\nimport breaks from \"remark-breaks\";\nimport remarkParse from \"remark-parse\";\nimport remark2rehype from \"remark-rehype\";\nimport remarkUnlinkProtocols from \"remark-unlink-protocols\";\nimport { unified } from \"unified\";\nimport { ref } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch-DAPHFb0L.mjs\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { getSharingToken } from \"@nextcloud/sharing/public\";\nimport { f as NcReferenceWidget } from \"./referencePickerModal-CHpUHrDL.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { U as URL_PATTERN, p as parseUrl, r as remarkAutolink, g as getRoute } from \"./autolink-D2pIbi92.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-F5ebeBB_.mjs\";\nimport { u } from \"unist-builder\";\nimport { visit, EXIT as EXIT$1, SKIP as SKIP$1 } from \"unist-util-visit\";\nconst _sfc_main$1 = {\n  name: \"NcReferenceList\",\n  components: {\n    NcReferenceWidget\n  },\n  /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\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      // eslint-disable-next-line vue/no-boolean-default\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.filter(Boolean).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        logger.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  \"a50e616b\"\n);\nconst NcReferenceList = __component__$1.exports;\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}\nfunction remarkPlaceholder() {\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) => {\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}\nfunction 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}\nfunction remarkUnescape() {\n  return function(tree) {\n    visit(tree, (node2) => [\"text\", \"code\", \"inlineCode\"].includes(node2.type), (node2, index, parent) => {\n      parent.children.splice(index, 1, {\n        ...node2,\n        value: node2.value.replace(/&lt;/gmi, \"<\").replace(/&gt;/gmi, \">\")\n      });\n      return [SKIP$1, index + 1];\n    });\n  };\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  /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\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      // eslint-disable-next-line vue/no-boolean-default\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      // eslint-disable-next-line vue/no-boolean-default\n      default: true\n    }\n  },\n  emits: [\n    \"interact-todo\",\n    \"interact:todo\"\n  ],\n  data() {\n    return {\n      parentId: GenRandomId(5)\n    };\n  },\n  methods: {\n    renderPlaintext(h) {\n      const placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n        const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n        if (!matches) {\n          return prepareTextNode({ h, context: this }, entry);\n        }\n        const argumentId = matches[1];\n        const argument = this.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 ([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes(tag)) {\n              tag = `h${Math.min(+String(tag)[1] + 3, 6)}`;\n            }\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                      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(this.text.replace(/<[^>]+>/g, (match) => match.replace(/</g, \"&lt;\")).replace(/&gt;/gmi, \">\")).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  \"ec7a0a24\"\n);\nconst NcRichText = __component__.exports;\nexport {\n  NcRichText as N,\n  NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText-BfK6Ybyf.mjs.map\n","import '../assets/NcRichContenteditable-BjQ4qHUO.css';\nimport debounce from \"debounce\";\nimport stringLength from \"string-length\";\nimport Tribute from \"tributejs/dist/tribute.esm.js\";\nimport { useIsDarkTheme } from \"../Composables/useIsDarkTheme.mjs\";\nimport { g as getAvatarUrl } from \"./getAvatarUrl-IhLacDEr.mjs\";\nimport { N as NcUserStatusIcon } from \"./NcUserStatusIcon-D_kxQky5.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nimport { e as emojiSearch, a as emojiAddRecent } from \"./emoji-BY_D0V5K.mjs\";\nimport { r as register, w as t37, D as t34, a as t, E as n } from \"./_l10n-BmKQgz1z.mjs\";\nimport { r as richEditor } from \"./index-TmAR7I2T.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-F5ebeBB_.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport \"./legacy-MK4GvP26.mjs\";\nimport \"./NcButton-DUZTtFhr.mjs\";\nimport { g as getLinkWithPicker, s as searchProvider } from \"./referencePickerModal-CHpUHrDL.mjs\";\nimport \"./customPickerElements-DLFtgReB.mjs\";\nimport \"unist-builder\";\nimport \"unist-util-visit\";\nimport \"./NcRichText-BfK6Ybyf.mjs\";\nimport \"./createElementId-DhjFt1I9.mjs\";\nimport \"../Components/NcEmptyContent.mjs\";\nimport \"./NcSelect-DTniMiUS.mjs\";\nimport \"../Components/NcLoadingIcon.mjs\";\nimport \"./NcTextField-CfZknuqx.mjs\";\nimport \"@nextcloud/event-bus\";\nimport \"../Components/NcModal.mjs\";\nconst _sfc_main$1 = {\n  name: \"NcAutoCompleteResult\",\n  components: {\n    NcUserStatusIcon\n  },\n  /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\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  setup() {\n    const isDarkTheme = useIsDarkTheme();\n    return {\n      isDarkTheme\n    };\n  },\n  computed: {\n    avatarUrl() {\n      if (this.iconUrl) {\n        return this.iconUrl;\n      }\n      return this.id && this.source === \"users\" ? getAvatarUrl(this.id, { isDarkTheme: this.isDarkTheme }) : null;\n    },\n    // For backwards compatibility\n    labelWithFallback() {\n      return this.label || this.title;\n    }\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  \"ef14f1ec\"\n);\nconst NcAutoCompleteResult = __component__$1.exports;\nregister(t34, t37);\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     *\n     * @deprecated\n     */\n    value: {\n      type: String,\n      default: void 0\n    },\n    /**\n     * The text content\n     */\n    modelValue: {\n      type: String,\n      default: \"\"\n    },\n    /**\n     * Placeholder to be shown if empty\n     */\n    placeholder: {\n      type: String,\n      default: t(\"Write a message …\")\n    },\n    /**\n     * Auto complete function\n     */\n    autoComplete: {\n      type: Function,\n      default: () => []\n    },\n    /**\n     * The containing element for the menu popover\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      // eslint-disable-next-line vue/no-boolean-default\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      // eslint-disable-next-line vue/no-boolean-default\n      default: true\n    },\n    /**\n     * Enable or disable link autocompletion\n     */\n    linkAutocomplete: {\n      type: Boolean,\n      // eslint-disable-next-line vue/no-boolean-default\n      default: true\n    }\n  },\n  emits: [\n    \"submit\",\n    \"paste\",\n    /**\n     * Removed in v9 - use `update:modelValue` (`v-model`) instead\n     *\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        logger.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      if (window.getSelection().rangeCount > 0 && this.$refs.contenteditable.contains(window.getSelection().getRangeAt(0).commonAncestorContainer)) {\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     *\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     *\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     *\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     *\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  \"c664150f\"\n);\nconst NcRichContenteditable = __component__.exports;\nexport {\n  NcAutoCompleteResult as N,\n  NcRichContenteditable as a\n};\n//# sourceMappingURL=NcRichContenteditable-BQNR-AeA.mjs.map\n","import { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nimport { r as register, k as t0, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport NcEllipsisedOption from \"../Components/NcEllipsisedOption.mjs\";\nimport { N as NcSelect } from \"./NcSelect-DTniMiUS.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t0);\nfunction 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}\nfunction parseXml(xml) {\n  let dom = null;\n  try {\n    dom = new DOMParser().parseFromString(xml, \"text/xml\");\n  } catch (error) {\n    logger.error(\"Failed to parse xml document\", { error });\n  }\n  return dom;\n}\nfunction 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}\nasync function searchTags() {\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}\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      // eslint-disable-next-line vue/no-boolean-default\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      // eslint-disable-next-line vue/no-boolean-default\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     *\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      logger.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-CktuFsK3.mjs.map\n","import '../assets/NcSettingsInputText-18lfGViv.css';\nimport { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nimport { r as register, i as t50, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-F5ebeBB_.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t50);\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     *\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     *\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  \"9938ac79\"\n);\nconst NcSettingsInputText = __component__.exports;\nexport {\n  NcSettingsInputText as N\n};\n//# sourceMappingURL=NcSettingsInputText-Dtr4Rn2b.mjs.map\n","import '../assets/NcSettingsSection-D_qeKnRb.css';\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { r as register, u as t25, a as t } from \"./_l10n-BmKQgz1z.mjs\";\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;\nregister(t25);\nconst [major] = loadState(\"core\", \"config\", { version: \"30.0\" }).version.split(\".\", 2) ?? [];\nconst isLegacy = major && Number.parseInt(major) < 30;\nconst _sfc_main = {\n  name: \"NcSettingsSection\",\n  components: {\n    HelpCircle\n  },\n  props: {\n    /**\n     * The name of the settings section.\n     * This is used for the headline and needs to be set.\n     */\n    name: {\n      type: String,\n      required: true\n    },\n    /**\n     * Further informational description of the section.\n     */\n    description: {\n      type: String,\n      default: \"\"\n    },\n    /**\n     * The URL for the documentation about this section\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     *\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      // eslint-disable-next-line vue/no-boolean-default\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      return this.limitWidth || !isLegacy;\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  \"56b92b56\"\n);\nconst NcSettingsSection = __component__.exports;\nexport {\n  NcSettingsSection as N\n};\n//# sourceMappingURL=NcSettingsSection-BniKad1K.mjs.map\n","import '../assets/NcSettingsSelectGroup-B9FlWQVH.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport debounce from \"debounce\";\nimport { N as NcSelect } from \"./NcSelect-DTniMiUS.mjs\";\nimport { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nimport { r as register, h as t51, a as t } from \"./_l10n-BmKQgz1z.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-F5ebeBB_.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t51);\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     *\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     *\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((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     * 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  \"9d59765b\"\n);\nconst NcSettingsSelectGroup = __component__.exports;\nexport {\n  NcSettingsSelectGroup as N\n};\n//# sourceMappingURL=NcSettingsSelectGroup-D4_09H0F.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=4096&y=4096&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","t15","t44","t","t48","encodedTlds","encodedUtlds","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","exactOnly","inputs","next","regexp","len","templateState","allFlags","ta","tr","ts","tt","WORD","UWORD","ASCIINUMERICAL","ALPHANUMERICAL","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","WS","NL","OPENBRACE","CLOSEBRACE","OPENBRACKET","CLOSEBRACKET","OPENPAREN","CLOSEPAREN","OPENANGLEBRACKET","CLOSEANGLEBRACKET","FULLWIDTHLEFTPAREN","FULLWIDTHRIGHTPAREN","LEFTCORNERBRACKET","RIGHTCORNERBRACKET","LEFTWHITECORNERBRACKET","RIGHTWHITECORNERBRACKET","FULLWIDTHLESSTHAN","FULLWIDTHGREATERTHAN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","FULLWIDTHMIDDLEDOT","SEMI","SLASH","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","ASCII_LETTER","LETTER","EMOJI","DIGIT","SPACE","CR","LF","EMOJI_VARIATION","EMOJI_JOINER","OBJECT_REPLACEMENT","tlds","utlds","init$2","customSchemes","Start","decodeTlds","Num","Asciinumeric","Alphanumeric","Word","UWord","Nl","Cr","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","a","b","sch","run$1","start","str","iterable","stringToArray","charCount","tokens","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","index","first","second","char","defaultt","jr","encoded","words","stack","digits","popDigitCount","popCount","defaults","noop","Options","opts","defaultRender","o","ignoredTags","uppercaseIgnoredTags","ir","key","operator","isCallable","option","obj","val","MultiToken","value","options","truncate","formatted","protocol","href","formattedHref","tagName","content","attributes","className","target","rel","attrs","eventListeners","createTokenClass","type","props","Token","p","Email","Text","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","SchemeColon","SlashSchemeColon","SlashSchemeColonSlash","UriPrefix","bracketPairs","OPEN","CLOSE","UrlOpen","UrlOpenQ","UrlOpenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","init","tokenize","escapeText","text","escapeAttr","attributesToString","attr","linkifyStr","t14","PQueue","t28","t6","e","module","this","r","n","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","__default__","_sfc_main","defineComponent","__props","emit","currentColor","useModelMigration","modelOpen","useVModel","HEX_REGEX","id","createElementId","advanced","ref","normalizedPalette","computed","palette","color","logger","defaultPalette","COLOR_BLACK","COLOR_WHITE","item","handleConfirm","hideCallback","toggleColor","pickCustomColor","getContrastColor","calculateLuma","red","green","blue","hexToRGB","hex","mdiArrowLeft","mdiCheck","mdiCloseCircleOutline","mdiDotsHorizontal","Chrome","NcButton","NcIconSvgWrapper","NcPopover","_sfc_render","_vm","_c","_setup","$event","slotProps","_sfc_staticRenderFns","__component__","normalizeComponent","NcColorPicker","t35","se","getBuilder","t5","t37","t43","Color","t39","t42","getCapabilities","t9","predicate","list","length","thisArg","CustomEvent$1","event","params","evt","callback","onDestroy","registerWidget","propsWithDefaults","registerCustomPickerElement","size","t23","t8","imagePath","loadState","t41","t47","t24","t32","t12","t18","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","t34","t0","NcSelect","t50","t25","major","t51","debounce","query","isMobileState","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,28,29]}