diff options
author | fenn-cs <fenn25.fn@gmail.com> | 2023-11-09 17:46:37 +0100 |
---|---|---|
committer | fenn-cs <fenn25.fn@gmail.com> | 2023-11-10 11:27:32 +0100 |
commit | 13d03f45a3735dc44ccdbebf7bedb0825460a477 (patch) | |
tree | f6ab70c286f817ba4f45ab3f8dc4731c5f5119fd /dist/dashboard-main.js.map | |
parent | 20b3338288e85772ad74b956f566b80ce7a4cfb9 (diff) | |
download | nextcloud-server-13d03f45a3735dc44ccdbebf7bedb0825460a477.tar.gz nextcloud-server-13d03f45a3735dc44ccdbebf7bedb0825460a477.zip |
Add unified search toggle in config
The new global search UI is new and might be unstable, hence
we are giving users the option to use the old unified search UI, if
the encounter signficant bottlenecks.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Diffstat (limited to 'dist/dashboard-main.js.map')
-rw-r--r-- | dist/dashboard-main.js.map | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/dist/dashboard-main.js.map b/dist/dashboard-main.js.map index e5016ea3fa1..33c98338215 100644 --- a/dist/dashboard-main.js.map +++ b/dist/dashboard-main.js.map @@ -1 +1 @@ -{"version":3,"file":"dashboard-main.js?v=d2e27739aa4e8a7f3aa4","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/dashboard/src/mixins/isMobile.js","webpack://nextcloud/./apps/dashboard/src/components/ApiDashboardWidget.vue?7e36","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-5fa0ac5a.css?cafc","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcActionButtonGroup.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-24f6c355.css?1739","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcActionRadio.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-93ad846c.css?b403","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcActionTextEditable.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppContentDetails.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppContentList.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-fc61f2d8.css?f860","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppNavigationIconBullet.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-93bc89ef.css?ee5f","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppNavigationNewItem.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-34dfc54e.css?3ad0","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppNavigationSettings.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-6416f636.css?9b06","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-e7eadba7.css?79db","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcDashboardWidgetItem.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcDashboardWidget.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-8aa4712e.css?e653","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcGuestContent.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-ab715d82.css?da3a","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcRelatedResourcesPanel.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-58498cac.mjs","webpack:///nextcloud/node_modules/tributejs/dist/tribute.esm.js","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs","webpack:///nextcloud/node_modules/string-length/index.js","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcRichText-25edeb8e.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcSavingIndicatorIcon.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-6c47e88a.css?d9ac","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcSettingsInputText.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcSettingsSelectGroup-0d38d76b.css?c6e5","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcSettingsSelectGroup-fd91d31a.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-c221fe05.css?4d04","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcUserBubble.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/index.mjs","webpack:///nextcloud/apps/dashboard/src/components/ApiDashboardWidget.vue","webpack:///nextcloud/apps/dashboard/src/components/ApiDashboardWidget.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/dashboard/src/components/ApiDashboardWidget.vue?858f","webpack:///nextcloud/apps/dashboard/src/DashboardApp.vue","webpack:///nextcloud/apps/dashboard/src/DashboardApp.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/dashboard/src/DashboardApp.vue?d7cf","webpack://nextcloud/./apps/dashboard/src/DashboardApp.vue?9e65","webpack://nextcloud/./apps/dashboard/src/DashboardApp.vue?5685","webpack://nextcloud/./apps/dashboard/src/DashboardApp.vue?1477","webpack:///nextcloud/apps/dashboard/src/main.js","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcSettingsSelectGroup-0d38d76b.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-24f6c355.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-34dfc54e.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-5fa0ac5a.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-6416f636.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-6c47e88a.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-8aa4712e.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-93ad846c.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-93bc89ef.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-ab715d82.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-c221fe05.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-e7eadba7.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-fc61f2d8.css","webpack:///nextcloud/apps/dashboard/src/DashboardApp.vue?vue&type=style&index=0&id=9fd44988&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/dashboard/src/DashboardApp.vue?vue&type=style&index=1&id=9fd44988&prod&lang=css","webpack:///nextcloud/node_modules/sortablejs/modular/sortable.esm.js","webpack:///nextcloud/node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/**\n * @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: this._isMobile(),\n\t\t}\n\t},\n\tbeforeMount() {\n\t\twindow.addEventListener('resize', this._onResize)\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this._onResize)\n\t},\n\tmethods: {\n\t\t_onResize() {\n\t\t\t// Update mobile mode\n\t\t\tthis.isMobile = this._isMobile()\n\t\t},\n\t\t_isMobile() {\n\t\t\t// check if content width is under 768px\n\t\t\treturn document.documentElement.clientWidth < 768\n\t\t},\n\t},\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDashboardWidget',{attrs:{\"items\":_vm.items,\"show-more-label\":_vm.showMoreLabel,\"show-more-url\":_vm.showMoreUrl,\"loading\":_vm.loading,\"show-items-and-empty-content\":!!_vm.halfEmptyContentMessage,\"half-empty-content-message\":_vm.halfEmptyContentMessage},scopedSlots:_vm._u([{key:\"default\",fn:function({ item }){return [_c('NcDashboardWidgetItem',{attrs:{\"target-url\":item.link,\"overlay-icon-url\":item.overlayIconUrl ? item.overlayIconUrl : '',\"main-text\":item.title,\"sub-text\":item.subtitle},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [(item.iconUrl)?[_c('NcAvatar',{attrs:{\"size\":44,\"url\":item.iconUrl}})]:_vm._e()]},proxy:true}],null,true)})]}},{key:\"empty-content\",fn:function(){return [(_vm.items.length === 0)?_c('NcEmptyContent',{attrs:{\"description\":_vm.emptyContentMessage},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.emptyContentMessage)?_c('CheckIcon',{attrs:{\"size\":65}}):_vm._e()]},proxy:true},{key:\"action\",fn:function(){return [(_vm.setupButton)?_c('NcButton',{attrs:{\"href\":_vm.setupButton.link}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.setupButton.text)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,4172361897)}):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-5fa0ac5a.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-5fa0ac5a.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-5fa0ac5a.css\";\nimport { defineComponent as e } from \"vue\";\nimport { n as o } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst r = e({\n name: \"NcActionButtonGroup\",\n props: {\n /**\n * Optional text shown below the button group\n */\n name: {\n required: !1,\n default: void 0,\n type: String\n }\n }\n});\nvar s = function() {\n var n = this, t = n._self._c;\n return n._self._setupProxy, t(\"li\", { staticClass: \"nc-button-group-base\" }, [n.name ? t(\"div\", [n._v(\" \" + n._s(n.name) + \" \")]) : n._e(), t(\"ul\", { staticClass: \"nc-button-group-content\" }, [n._t(\"default\")], 2)]);\n}, _ = [], u = /* @__PURE__ */ o(\n r,\n s,\n _,\n !1,\n null,\n null,\n null,\n null\n);\nconst p = u.exports;\nexport {\n p as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-24f6c355.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-24f6c355.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-24f6c355.css\";\nimport { A as n } from \"../chunks/actionGlobal-8c1c28c9.mjs\";\nimport { G as s } from \"../chunks/GenRandomId-cb9ccebe.mjs\";\nimport { n as o } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst l = {\n name: \"NcActionRadio\",\n mixins: [n],\n props: {\n /**\n * id attribute of the radio element\n */\n id: {\n type: String,\n default: () => \"action-\" + s(),\n validator: (t) => t.trim() !== \"\"\n },\n /**\n * checked state of the the radio element\n */\n checked: {\n type: Boolean,\n default: !1\n },\n /**\n * Define if this radio is part of a set.\n * Checking the radio will disable all the\n * others with the same name.\n */\n name: {\n type: String,\n required: !0\n },\n /**\n * value of the radio input\n */\n value: {\n type: [String, Number],\n default: \"\"\n },\n /**\n * disabled state of the radio element\n */\n disabled: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"update:checked\",\n \"change\"\n ],\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n }\n },\n methods: {\n toggleInput(t) {\n this.$refs.label.click();\n },\n onChange(t) {\n this.$emit(\"update:checked\", this.$refs.radio.checked), this.$emit(\"change\", t);\n }\n }\n};\nvar r = function() {\n var e = this, i = e._self._c;\n return i(\"li\", { staticClass: \"action\", class: { \"action--disabled\": e.disabled } }, [i(\"span\", { staticClass: \"action-radio\" }, [i(\"input\", { ref: \"radio\", staticClass: \"radio action-radio__radio\", class: { focusable: e.isFocusable }, attrs: { id: e.id, disabled: e.disabled, name: e.name, type: \"radio\" }, domProps: { checked: e.checked, value: e.value }, on: { keydown: function(a) {\n return !a.type.indexOf(\"key\") && e._k(a.keyCode, \"enter\", 13, a.key, \"Enter\") || a.ctrlKey || a.shiftKey || a.altKey || a.metaKey ? null : (a.preventDefault(), e.toggleInput.apply(null, arguments));\n }, change: e.onChange } }), i(\"label\", { ref: \"label\", staticClass: \"action-radio__label\", attrs: { for: e.id } }, [e._v(e._s(e.text))]), e._e()], 2)]);\n}, d = [], c = /* @__PURE__ */ o(\n l,\n r,\n d,\n !1,\n null,\n \"b5f9046e\",\n null,\n null\n);\nconst m = c.exports;\nexport {\n m as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-93ad846c.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-93ad846c.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-93ad846c.css\";\nimport { A as n } from \"../chunks/actionText-a64be267.mjs\";\nimport { G as i } from \"../chunks/GenRandomId-cb9ccebe.mjs\";\nimport { A as l } from \"../chunks/ArrowRight-74a9fcb2.mjs\";\nimport { n as o } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst r = {\n name: \"NcActionTextEditable\",\n components: {\n ArrowRight: l\n },\n mixins: [n],\n props: {\n /**\n * id attribute of the checkbox element\n */\n id: {\n type: String,\n default: () => \"action-\" + i(),\n validator: (e) => e.trim() !== \"\"\n },\n /**\n * disabled state of the text area\n */\n disabled: {\n type: Boolean,\n default: !1\n },\n /**\n * value attribute of the input field\n */\n value: {\n type: String,\n default: \"\"\n }\n },\n emits: [\n \"input\",\n \"update:value\",\n \"submit\"\n ],\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n computedId() {\n return i();\n }\n },\n methods: {\n onInput(e) {\n this.$emit(\"input\", e), this.$emit(\"update:value\", e.target.value);\n },\n onSubmit(e) {\n if (e.preventDefault(), e.stopPropagation(), !this.disabled)\n this.$emit(\"submit\", e);\n else\n return !1;\n }\n }\n};\nvar d = function() {\n var t = this, a = t._self._c;\n return a(\"li\", { staticClass: \"action\", class: { \"action--disabled\": t.disabled } }, [a(\"span\", { staticClass: \"action-text-editable\", on: { click: t.onClick } }, [t._t(\"icon\", function() {\n return [a(\"span\", { staticClass: \"action-text-editable__icon\", class: [t.isIconUrl ? \"action-text-editable__icon--url\" : t.icon], style: { backgroundImage: t.isIconUrl ? `url(${t.icon})` : null } })];\n }), a(\"form\", { ref: \"form\", staticClass: \"action-text-editable__form\", attrs: { disabled: t.disabled }, on: { submit: function(s) {\n return s.preventDefault(), t.onSubmit.apply(null, arguments);\n } } }, [a(\"input\", { staticClass: \"action-text-editable__submit\", attrs: { id: t.id, type: \"submit\" } }), t.name ? a(\"label\", { staticClass: \"action-text-editable__name\", attrs: { for: t.computedId } }, [t._v(\" \" + t._s(t.name) + \" \")]) : t._e(), a(\"textarea\", t._b({ class: [\"action-text-editable__textarea\", { focusable: t.isFocusable }], attrs: { id: t.computedId, disabled: t.disabled }, domProps: { value: t.value }, on: { input: t.onInput } }, \"textarea\", t.$attrs, !1)), a(\"label\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !t.disabled, expression: \"!disabled\" }], staticClass: \"action-text-editable__label\", attrs: { for: t.id } }, [a(\"ArrowRight\", { attrs: { size: 20 } })], 1)])], 2)]);\n}, c = [], u = /* @__PURE__ */ o(\n r,\n d,\n c,\n !1,\n null,\n \"b0b05af8\",\n null,\n null\n);\nconst x = u.exports;\nexport {\n x as default\n};\n","import { n as e } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst a = {\n name: \"NcAppContentDetails\"\n};\nvar s = function() {\n var n = this, t = n._self._c;\n return t(\"div\", { staticClass: \"app-content-details\" }, [n._t(\"default\")], 2);\n}, l = [], r = /* @__PURE__ */ e(\n a,\n s,\n l,\n !1,\n null,\n null,\n null,\n null\n);\nconst c = r.exports;\nexport {\n c as default\n};\n","import { n as s } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst n = {\n name: \"NcAppContentList\",\n props: {\n selection: {\n type: Boolean,\n default: !1\n },\n showDetails: {\n type: Boolean,\n default: !1\n }\n }\n};\nvar l = function() {\n var e = this, t = e._self._c;\n return t(\"div\", { staticClass: \"app-content-list\", class: { selection: e.selection, showdetails: e.showDetails } }, [e._t(\"default\")], 2);\n}, a = [], o = /* @__PURE__ */ s(\n n,\n l,\n a,\n !1,\n null,\n null,\n null,\n null\n);\nconst r = o.exports;\nexport {\n r as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-fc61f2d8.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-fc61f2d8.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-fc61f2d8.css\";\nimport { n } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst r = {\n name: \"NcAppNavigationIconBullet\",\n props: {\n color: {\n type: String,\n required: !0,\n validator(t) {\n return /^#?([0-9A-F]{3}){1,2}$/i.test(t);\n }\n }\n },\n emits: [\"click\"],\n computed: {\n formattedColor() {\n return this.color.startsWith(\"#\") ? this.color : \"#\" + this.color;\n }\n },\n methods: {\n onClick(t) {\n this.$emit(\"click\", t);\n }\n }\n};\nvar i = function() {\n var o = this, e = o._self._c;\n return e(\"div\", { staticClass: \"app-navigation-entry__icon-bullet\", on: { click: o.onClick } }, [e(\"div\", { style: { backgroundColor: o.formattedColor } })]);\n}, l = [], c = /* @__PURE__ */ n(\n r,\n i,\n l,\n !1,\n null,\n \"91580127\",\n null,\n null\n);\nconst _ = c.exports;\nexport {\n _ as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-93bc89ef.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-93bc89ef.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-93bc89ef.css\";\nimport { N as a } from \"../chunks/NcInputConfirmCancel-304f0b74.mjs\";\nimport i from \"./NcLoadingIcon.mjs\";\nimport { n as l } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst o = {\n name: \"NcAppNavigationNewItem\",\n components: {\n NcInputConfirmCancel: a,\n NcLoadingIcon: i\n },\n props: {\n /**\n * The name of the element.\n */\n name: {\n type: String,\n required: !0\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: !1\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"new-item\"],\n data() {\n return {\n newItemValue: \"\",\n newItemActive: !1\n };\n },\n methods: {\n handleNewItem() {\n this.loading || (this.newItemActive = !0, this.$nextTick(() => {\n this.$refs.newItemInput.focusInput();\n }));\n },\n cancelNewItem() {\n this.newItemActive = !1;\n },\n handleNewItemDone() {\n this.$emit(\"new-item\", this.newItemValue), this.newItemValue = \"\", this.newItemActive = !1;\n }\n }\n};\nvar s = function() {\n var e = this, t = e._self._c;\n return t(\"li\", { staticClass: \"app-navigation-entry\", class: {\n \"app-navigation-entry--newItemActive\": e.newItemActive\n } }, [t(\"button\", { staticClass: \"app-navigation-entry-button\", on: { click: e.handleNewItem } }, [t(\"span\", { staticClass: \"app-navigation-entry-icon\", class: { [e.icon]: !e.loading } }, [e.loading ? t(\"NcLoadingIcon\") : e._t(\"icon\")], 2), e.newItemActive ? e._e() : t(\"span\", { staticClass: \"app-navigation-new-item__name\", attrs: { title: e.name } }, [e._v(\" \" + e._s(e.name) + \" \")]), e.newItemActive ? t(\"span\", { staticClass: \"newItemContainer\" }, [t(\"NcInputConfirmCancel\", { ref: \"newItemInput\", attrs: { placeholder: e.editPlaceholder !== \"\" ? e.editPlaceholder : e.name }, on: { cancel: e.cancelNewItem, confirm: e.handleNewItemDone }, model: { value: e.newItemValue, callback: function(n) {\n e.newItemValue = n;\n }, expression: \"newItemValue\" } })], 1) : e._e()])]);\n}, c = [], m = /* @__PURE__ */ l(\n o,\n s,\n c,\n !1,\n null,\n \"8950be04\",\n null,\n null\n);\nconst _ = m.exports;\nexport {\n _ as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-34dfc54e.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-34dfc54e.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-34dfc54e.css\";\nimport { t as i } from \"../chunks/l10n-b6d21146.mjs\";\nimport o from \"../Mixins/clickOutsideOptions.mjs\";\nimport \"vue\";\nimport \"@nextcloud/router\";\n/* empty css */import { n as s } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport \"linkify-string\";\nimport \"escape-html\";\nimport \"striptags\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/capabilities\";\nimport { vOnClickOutside as r } from \"@vueuse/components\";\nconst l = {\n name: \"CogIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar c = function() {\n var t = this, e = t._self._c;\n return e(\"span\", t._b({ staticClass: \"material-design-icon cog-icon\", attrs: { \"aria-hidden\": !t.title, \"aria-label\": t.title, role: \"img\" }, on: { click: function(a) {\n return t.$emit(\"click\", a);\n } } }, \"span\", t.$attrs, !1), [e(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: t.fillColor, width: t.size, height: t.size, viewBox: \"0 0 24 24\" } }, [e(\"path\", { attrs: { d: \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\" } }, [t.title ? e(\"title\", [t._v(t._s(t.title))]) : t._e()])])]);\n}, p = [], _ = /* @__PURE__ */ s(\n l,\n c,\n p,\n !1,\n null,\n null,\n null,\n null\n);\nconst u = _.exports;\nconst d = {\n directives: {\n ClickOutside: r\n },\n components: {\n Cog: u\n },\n mixins: [\n o\n ],\n props: {\n name: {\n type: String,\n required: !1,\n default: i(\"Settings\")\n }\n },\n data() {\n return {\n open: !1\n };\n },\n computed: {\n clickOutsideConfig() {\n return [\n this.closeMenu,\n this.clickOutsideOptions\n ];\n },\n ariaLabel() {\n return i(\"Open settings menu\");\n }\n },\n methods: {\n toggleMenu() {\n this.open = !this.open;\n },\n closeMenu() {\n this.open = !1;\n }\n }\n};\nvar m = function() {\n var t = this, e = t._self._c;\n return e(\"div\", { directives: [{ name: \"click-outside\", rawName: \"v-click-outside\", value: t.clickOutsideConfig, expression: \"clickOutsideConfig\" }], class: { open: t.open }, attrs: { id: \"app-settings\" } }, [e(\"div\", { attrs: { id: \"app-settings__header\" } }, [e(\"button\", { staticClass: \"settings-button\", attrs: { type: \"button\", \"aria-expanded\": t.open ? \"true\" : \"false\", \"aria-controls\": \"app-settings__content\", \"aria-label\": t.ariaLabel }, on: { click: t.toggleMenu } }, [e(\"Cog\", { staticClass: \"settings-button__icon\", attrs: { size: 20 } }), e(\"span\", { staticClass: \"settings-button__label\" }, [t._v(t._s(t.name))])], 1)]), e(\"transition\", { attrs: { name: \"slide-up\" } }, [e(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: t.open, expression: \"open\" }], attrs: { id: \"app-settings__content\" } }, [t._t(\"default\")], 2)])], 1);\n}, C = [], g = /* @__PURE__ */ s(\n d,\n m,\n C,\n !1,\n null,\n \"db4cc195\",\n null,\n null\n);\nconst $ = g.exports;\nexport {\n $ as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-6416f636.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-6416f636.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-e7eadba7.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-e7eadba7.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-e7eadba7.css\";\nimport { N as i } from \"../chunks/index-a01ff595.mjs\";\nimport o from \"./NcActions.mjs\";\nimport l from \"./NcActionButton.mjs\";\nimport { n as u } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst c = {\n name: \"NcDashboardWidgetItem\",\n components: {\n NcAvatar: i,\n NcActions: o,\n NcActionButton: l\n },\n props: {\n /**\n * The item id (optional)\n */\n id: {\n type: [String, Number],\n default: void 0\n },\n /**\n * The item element is a link to this URL (optional)\n */\n targetUrl: {\n type: String,\n default: void 0\n },\n /**\n * Where to get the avatar image. (optional) Used if avatarUsername is not defined.\n */\n avatarUrl: {\n type: String,\n default: void 0\n },\n /**\n * Name to provide to the Avatar. (optional) Used if avatarUrl is not defined.\n */\n avatarUsername: {\n type: String,\n default: void 0\n },\n /**\n * Is the avatarUsername not a user's name? (optional, false by default)\n */\n avatarIsNoUser: {\n type: Boolean,\n default: !1\n },\n /**\n * Small icon to display on the bottom-right corner of the avatar (optional)\n */\n overlayIconUrl: {\n type: String,\n default: void 0\n },\n /**\n * Item main text (mandatory)\n */\n mainText: {\n type: String,\n required: !0\n },\n /**\n * Item subline text (optional)\n */\n subText: {\n type: String,\n default: \"\"\n },\n /**\n * An object containing context menu entries that will be displayed for each items (optional)\n */\n itemMenu: {\n type: Object,\n default: () => ({})\n },\n /**\n * Specify whether the 3 dot menu is forced when only one action is present\n */\n forceMenu: {\n type: Boolean,\n default: !0\n }\n },\n data() {\n return {\n hovered: !1\n };\n },\n computed: {\n item() {\n return {\n id: this.id,\n targetUrl: this.targetUrl,\n avatarUrl: this.avatarUrl,\n avatarUsername: this.avatarUsername,\n overlayIconUrl: this.overlayIconUrl,\n mainText: this.mainText,\n subText: this.subText\n };\n },\n gotMenu() {\n return Object.keys(this.itemMenu).length !== 0 || !!this.$slots.actions;\n },\n gotOverlayIcon() {\n return this.overlayIconUrl && this.overlayIconUrl !== \"\";\n }\n },\n methods: {\n onLinkClick(r) {\n r.target.closest(\".action-item\") && r.preventDefault();\n }\n }\n};\nvar m = function() {\n var t = this, e = t._self._c;\n return e(\"div\", { on: { mouseover: function(a) {\n t.hovered = !0;\n }, mouseleave: function(a) {\n t.hovered = !1;\n } } }, [e(t.targetUrl ? \"a\" : \"div\", { tag: \"component\", class: { \"item-list__entry\": !0, \"item-list__entry--has-actions-menu\": t.gotMenu }, attrs: { href: t.targetUrl || void 0, target: t.targetUrl ? \"_blank\" : void 0 }, on: { click: t.onLinkClick } }, [t._t(\"avatar\", function() {\n return [e(\"NcAvatar\", { staticClass: \"item-avatar\", attrs: { size: 44, url: t.avatarUrl, user: t.avatarUsername, \"is-no-user\": t.avatarIsNoUser, \"show-user-status\": !t.gotOverlayIcon } })];\n }, { avatarUrl: t.avatarUrl, avatarUsername: t.avatarUsername }), t.overlayIconUrl ? e(\"img\", { staticClass: \"item-icon\", attrs: { alt: \"\", src: t.overlayIconUrl } }) : t._e(), e(\"div\", { staticClass: \"item__details\" }, [e(\"h3\", { attrs: { title: t.mainText } }, [t._v(\" \" + t._s(t.mainText) + \" \")]), e(\"span\", { staticClass: \"message\", attrs: { title: t.subText } }, [t._v(\" \" + t._s(t.subText) + \" \")])]), t.gotMenu ? e(\"NcActions\", { attrs: { \"force-menu\": t.forceMenu } }, [t._t(\"actions\", function() {\n return t._l(t.itemMenu, function(a, n) {\n return e(\"NcActionButton\", { key: n, attrs: { icon: a.icon, \"close-after-click\": !0 }, on: { click: function(s) {\n return s.preventDefault(), s.stopPropagation(), t.$emit(n, t.item);\n } } }, [t._v(\" \" + t._s(a.text) + \" \")]);\n });\n })], 2) : t._e()], 2)], 1);\n}, d = [], v = /* @__PURE__ */ u(\n c,\n m,\n d,\n !1,\n null,\n \"00e861ef\",\n null,\n null\n);\nconst y = v.exports;\nexport {\n y as default\n};\n","import \"../assets/index-6416f636.css\";\nimport { N as r } from \"../chunks/index-a01ff595.mjs\";\nimport o from \"./NcDashboardWidgetItem.mjs\";\nimport a from \"./NcEmptyContent.mjs\";\nimport { C as i } from \"../chunks/Check-2ea0a88a.mjs\";\nimport { t as m } from \"../chunks/l10n-b6d21146.mjs\";\nimport { n as l } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst c = {\n name: \"NcDashboardWidget\",\n components: {\n NcAvatar: r,\n NcDashboardWidgetItem: o,\n NcEmptyContent: a,\n Check: i\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 },\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: m(\"More items …\")\n },\n /**\n * A boolean to put the widget in a loading state.\n */\n loading: {\n type: Boolean,\n default: !1\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 },\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: !1\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 n = {};\n for (const t in this.itemMenu)\n n[t] = (e) => {\n this.$emit(t, e);\n };\n return n;\n },\n displayedItems() {\n const n = this.showMoreUrl && this.items.length >= this.maxItemNumber ? this.maxItemNumber - 1 : this.maxItemNumber;\n return this.items.slice(0, n);\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 u = function() {\n var t = this, e = t._self._c;\n return e(\"div\", { staticClass: \"dashboard-widget\" }, [t.showHalfEmptyContentArea ? e(\"NcEmptyContent\", { staticClass: \"half-screen\", attrs: { description: t.halfEmptyContentString }, scopedSlots: t._u([{ key: \"icon\", fn: function() {\n return [t._t(\"halfEmptyContentIcon\", function() {\n return [e(\"Check\")];\n })];\n }, proxy: !0 }], null, !0) }) : t._e(), e(\"ul\", t._l(t.displayedItems, function(s) {\n return e(\"li\", { key: s.id }, [t._t(\"default\", function() {\n return [e(\"NcDashboardWidgetItem\", t._g(t._b({ attrs: { \"item-menu\": t.itemMenu } }, \"NcDashboardWidgetItem\", s, !1), t.handlers))];\n }, { item: s })], 2);\n }), 0), t.loading ? e(\"div\", t._l(7, function(s) {\n return e(\"div\", { key: s, staticClass: \"item-list__entry\" }, [e(\"NcAvatar\", { staticClass: \"item-avatar\", attrs: { size: 44 } }), t._m(0, !0)], 1);\n }), 0) : t.items.length === 0 ? t._t(\"empty-content\", function() {\n return [t.emptyContentMessage ? e(\"NcEmptyContent\", { attrs: { description: t.emptyContentMessage }, scopedSlots: t._u([{ key: \"icon\", fn: function() {\n return [t._t(\"emptyContentIcon\")];\n }, proxy: !0 }], null, !0) }) : t._e()];\n }) : t.showMore ? e(\"a\", { staticClass: \"more\", attrs: { href: t.showMoreUrl, target: \"_blank\", tabindex: \"0\" } }, [t._v(\" \" + t._s(t.showMoreLabel) + \" \")]) : t._e()], 2);\n}, h = [function() {\n var n = this, t = n._self._c;\n return t(\"div\", { staticClass: \"item__details\" }, [t(\"h3\", [n._v(\" \")]), t(\"p\", { staticClass: \"message\" }, [n._v(\"  \")])]);\n}], p = /* @__PURE__ */ l(\n c,\n u,\n h,\n !1,\n null,\n \"1efcbeee\",\n null,\n null\n);\nconst v = p.exports;\nexport {\n v as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-8aa4712e.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-8aa4712e.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-8aa4712e.css\";\nimport { n } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst s = {\n name: \"NcGuestContent\",\n mounted() {\n document.getElementById(\"content\").classList.add(\"nc-guest-content\");\n },\n destroyed() {\n document.getElementById(\"content\").classList.remove(\"nc-guest-content\");\n }\n};\nvar _ = function() {\n var t = this, e = t._self._c;\n return e(\"div\", { attrs: { id: \"guest-content-vue\" } }, [t._t(\"default\")], 2);\n}, c = [], o = /* @__PURE__ */ n(\n s,\n _,\n c,\n !1,\n null,\n \"36ad47ca\",\n null,\n null\n);\nconst r = o.exports;\nexport {\n r as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-ab715d82.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-ab715d82.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-ab715d82.css\";\nimport o from \"@nextcloud/axios\";\nimport { generateOcsUrl as l } from \"@nextcloud/router\";\nimport a from \"./NcButton.mjs\";\nimport { t as s } from \"../chunks/l10n-b6d21146.mjs\";\nimport { n } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst u = {\n name: \"NcResource\",\n components: {\n NcButton: a\n },\n props: {\n icon: {\n type: String,\n required: !0\n },\n name: {\n type: String,\n required: !0\n },\n url: {\n type: String,\n required: !0\n }\n },\n data() {\n return {\n labelTranslated: s('Open link to \"{resourceName}\"', { resourceName: this.name })\n };\n },\n methods: {\n t: s\n }\n};\nvar c = function() {\n var e = this, t = e._self._c;\n return t(\"li\", { staticClass: \"resource\" }, [t(\"NcButton\", { staticClass: \"resource__button\", attrs: { \"aria-label\": e.labelTranslated, type: \"tertiary\", href: e.url }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"div\", { staticClass: \"resource__icon\" }, [t(\"img\", { attrs: { src: e.icon } })])];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(e.name) + \" \")])], 1);\n}, d = [], p = /* @__PURE__ */ n(\n u,\n c,\n d,\n !1,\n null,\n \"1a960bef\",\n null,\n null\n);\nconst f = p.exports;\nconst _ = {\n name: \"NcRelatedResourcesPanel\",\n components: {\n NcResource: f\n },\n props: {\n /**\n * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n providerId: {\n type: String,\n default: null\n },\n /**\n * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n */\n itemId: {\n type: [String, Number],\n default: null\n },\n /**\n * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n resourceType: {\n type: String,\n default: null\n },\n /**\n * Set the maximum number of resources to load\n */\n limit: {\n type: Number,\n default: null\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: s(\"Related resources\")\n },\n description: {\n type: String,\n default: s(\"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: !1\n }\n },\n emits: [\n \"has-error\",\n \"has-resources\"\n ],\n data() {\n var r;\n return {\n appEnabled: ((r = OC == null ? void 0 : OC.appswebroots) == null ? void 0 : r.related_resources) !== void 0,\n loading: !1,\n error: null,\n resources: []\n };\n },\n computed: {\n isVisible() {\n var r;\n return this.loading ? !1 : (r = this.error) != null ? r : this.resources.length > 0;\n },\n subline() {\n return this.error ? s(\"Error getting related resources. Please contact your system administrator if you have any questions.\") : this.description;\n },\n hasResourceInfo() {\n return this.providerId !== null && this.itemId !== null || this.fileInfo !== null;\n },\n isFiles() {\n var r;\n return ((r = this.fileInfo) == null ? void 0 : r.id) !== void 0;\n },\n url() {\n let r = null, e = null;\n return this.isFiles ? (r = \"files\", e = this.fileInfo.id) : (r = this.providerId, e = this.itemId), l(\"/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json\", {\n providerId: r,\n itemId: e,\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(r) {\n this.$emit(\"has-error\", !!r);\n },\n resources(r) {\n this.$emit(\"has-resources\", r.length > 0);\n }\n },\n created() {\n this.fetchRelatedResources();\n },\n methods: {\n t: s,\n async fetchRelatedResources() {\n var r;\n if (!(!this.appEnabled || !this.hasResourceInfo)) {\n this.loading = !0, this.error = null, this.resources = [];\n try {\n const e = await o.get(this.url);\n this.resources = (r = e.data.ocs) == null ? void 0 : r.data;\n } catch (e) {\n this.error = e, console.error(e);\n } finally {\n this.loading = !1;\n }\n }\n }\n }\n};\nvar h = function() {\n var e = this, t = e._self._c;\n return e.appEnabled && e.isVisible ? t(\"div\", { staticClass: \"related-resources\" }, [t(\"div\", { staticClass: \"related-resources__header\" }, [t(\"h5\", [e._v(e._s(e.header))]), t(\"p\", [e._v(e._s(e.subline))])]), e._l(e.resources, function(i) {\n return t(\"NcResource\", { key: i.itemId, staticClass: \"related-resources__entry\", attrs: { icon: i.icon, name: i.title, url: i.url } });\n })], 2) : e._e();\n}, m = [], y = /* @__PURE__ */ n(\n _,\n h,\n m,\n !1,\n null,\n \"19300848\",\n null,\n null\n);\nconst S = y.exports;\nexport {\n S as default\n};\n","import \"../assets/referencePickerModal-3a127978.css\";\nimport { n as c } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { t as n } from \"./l10n-b6d21146.mjs\";\nimport p from \"@nextcloud/axios\";\nimport { loadState as C } from \"@nextcloud/initial-state\";\nimport { imagePath as L, generateOcsUrl as _ } from \"@nextcloud/router\";\nimport m from \"../Components/NcEmptyContent.mjs\";\nimport { N as P } from \"./index-20a9ace9.mjs\";\nimport w from \"../Components/NcSelect.mjs\";\nimport N from \"../Components/NcLoadingIcon.mjs\";\nimport E from \"../Components/NcTextField.mjs\";\nimport { D as I } from \"./DotsHorizontal-0ee7d901.mjs\";\nimport O from \"../Components/NcButton.mjs\";\nimport B from \"../Components/NcModal.mjs\";\nimport { emit as M } from \"@nextcloud/event-bus\";\nimport { A as V } from \"./ArrowLeft-3779ba88.mjs\";\nimport { C as W } from \"./Close-271f72e2.mjs\";\nimport q from \"vue\";\nwindow._vue_richtext_widgets || (window._vue_richtext_widgets = {});\nconst T = (t) => !!window._vue_richtext_widgets[t], j = (t, e, r = (s) => {\n}) => {\n if (window._vue_richtext_widgets[t]) {\n console.error(\"Widget for id \" + t + \" already registered\");\n return;\n }\n window._vue_richtext_widgets[t] = {\n id: t,\n callback: e,\n onDestroy: r\n };\n}, z = (t, { richObjectType: e, richObject: r, accessible: s }) => {\n if (e !== \"open-graph\") {\n if (!window._vue_richtext_widgets[e]) {\n console.error(\"Widget for rich object type \" + e + \" not registered\");\n return;\n }\n window._vue_richtext_widgets[e].callback(t, { richObjectType: e, richObject: r, accessible: s });\n }\n}, D = (t, e) => {\n t !== \"open-graph\" && window._vue_richtext_widgets[t] && window._vue_richtext_widgets[t].onDestroy(e);\n};\nwindow._registerWidget = j;\nconst A = {\n name: \"NcReferenceWidget\",\n props: {\n reference: {\n type: Object,\n required: !0\n }\n },\n data() {\n return {\n compact: 3\n };\n },\n computed: {\n hasCustomWidget() {\n return T(this.reference.richObjectType);\n },\n noAccess() {\n return this.reference && !this.reference.accessible;\n },\n descriptionStyle() {\n if (this.compact === 0)\n return {\n display: \"none\"\n };\n const t = this.compact < 4 ? this.compact : 3;\n return {\n lineClamp: t,\n webkitLineClamp: t\n };\n },\n compactLink() {\n const t = this.reference.openGraphObject.link;\n return t ? t.startsWith(\"https://\") ? t.substring(8) : t.startsWith(\"http://\") ? t.substring(7) : t : \"\";\n }\n },\n mounted() {\n this.renderWidget(), this.observer = new ResizeObserver((t) => {\n t[0].contentRect.width < 450 ? this.compact = 0 : t[0].contentRect.width < 550 ? this.compact = 1 : t[0].contentRect.width < 650 ? this.compact = 2 : this.compact = 3;\n }), this.observer.observe(this.$el);\n },\n beforeDestroy() {\n this.observer.disconnect(), D(this.reference.richObjectType, this.$el);\n },\n methods: {\n renderWidget() {\n var t;\n this.$refs.customWidget && (this.$refs.customWidget.innerHTML = \"\"), ((t = this == null ? void 0 : this.reference) == null ? void 0 : t.richObjectType) !== \"open-graph\" && this.$nextTick(() => {\n z(this.$refs.customWidget, this.reference);\n });\n }\n }\n};\nvar F = function() {\n var e = this, r = e._self._c;\n return r(\"div\", [e.reference && e.hasCustomWidget ? r(\"div\", { staticClass: \"widget-custom\" }, [r(\"div\", { ref: \"customWidget\" })]) : !e.noAccess && e.reference && e.reference.openGraphObject && !e.hasCustomWidget ? r(\"a\", { staticClass: \"widget-default\", attrs: { href: e.reference.openGraphObject.link, rel: \"noopener noreferrer\", target: \"_blank\" } }, [e.reference.openGraphObject.thumb ? r(\"img\", { staticClass: \"widget-default--image\", attrs: { src: e.reference.openGraphObject.thumb } }) : e._e(), r(\"div\", { staticClass: \"widget-default--details\" }, [r(\"p\", { staticClass: \"widget-default--name\" }, [e._v(e._s(e.reference.openGraphObject.name))]), r(\"p\", { staticClass: \"widget-default--description\", style: e.descriptionStyle }, [e._v(e._s(e.reference.openGraphObject.description))]), r(\"p\", { staticClass: \"widget-default--link\" }, [e._v(e._s(e.compactLink))])])]) : e._e()]);\n}, U = [], Q = /* @__PURE__ */ c(\n A,\n F,\n U,\n !1,\n null,\n \"b1c5a80f\",\n null,\n null\n);\nconst G = Q.exports;\nwindow._vue_richtext_custom_picker_elements || (window._vue_richtext_custom_picker_elements = {});\nclass nt {\n /**\n * @param {HTMLElement} element The HTML element\n * @param {object} object The object\n */\n constructor(e, r) {\n this.element = e, this.object = r;\n }\n}\nconst h = (t) => !!window._vue_richtext_custom_picker_elements[t], H = (t) => {\n var r;\n const e = (r = window._vue_richtext_custom_picker_elements[t]) == null ? void 0 : r.size;\n return [\"small\", \"normal\", \"large\", \"full\"].includes(e) ? e : null;\n}, Z = (t, e, r = (i) => {\n}, s = \"large\") => {\n if (window._vue_richtext_custom_picker_elements[t]) {\n console.error(\"Custom reference picker element for id \" + t + \" already registered\");\n return;\n }\n window._vue_richtext_custom_picker_elements[t] = {\n id: t,\n callback: e,\n onDestroy: r,\n size: s\n };\n}, J = (t, { providerId: e, accessible: r }) => {\n if (!window._vue_richtext_custom_picker_elements[e]) {\n console.error(\"Custom reference picker element for reference provider ID \" + e + \" not registered\");\n return;\n }\n return window._vue_richtext_custom_picker_elements[e].callback(t, { providerId: e, accessible: r });\n}, K = (t, e, r) => {\n window._vue_richtext_custom_picker_elements[t] && window._vue_richtext_custom_picker_elements[t].onDestroy(e, r);\n};\nwindow._registerCustomPickerElement = Z;\nconst X = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: !0\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n isRegistered: h(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n this.isRegistered && this.renderElement();\n },\n beforeDestroy() {\n this.isRegistered && K(this.provider.id, this.$el, this.renderResult);\n },\n methods: {\n renderElement() {\n this.$refs.domElement && (this.$refs.domElement.innerHTML = \"\");\n const t = J(this.$refs.domElement, { providerId: this.provider.id, accessible: !1 });\n Promise.resolve(t).then((e) => {\n var r, s;\n this.renderResult = e, (r = this.renderResult.object) != null && r._isVue && ((s = this.renderResult.object) != null && s.$on) && (this.renderResult.object.$on(\"submit\", this.onSubmit), this.renderResult.object.$on(\"cancel\", this.onCancel)), this.renderResult.element.addEventListener(\"submit\", (i) => {\n this.onSubmit(i.detail);\n }), this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(t) {\n this.$emit(\"submit\", t);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nvar Y = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { ref: \"domElement\" });\n}, ee = [], te = /* @__PURE__ */ c(\n X,\n Y,\n ee,\n !1,\n null,\n \"cf695ff9\",\n null,\n null\n);\nconst re = te.exports, b = \"any-link\", S = {\n id: b,\n title: n(\"Any link\"),\n icon_url: L(\"core\", \"filetypes/link.svg\")\n};\nwindow._vue_richtext_reference_providers || (window._vue_richtext_reference_providers = C(\"core\", \"reference-provider-list\", []));\nwindow._vue_richtext_reference_provider_timestamps || (window._vue_richtext_reference_provider_timestamps = C(\"core\", \"reference-provider-timestamps\", {}));\nfunction se(t) {\n return t === b ? S : R().find((e) => e.id === t);\n}\nfunction R() {\n return window._vue_richtext_reference_providers.filter((t) => {\n const e = !!t.search_providers_ids && t.search_providers_ids.length > 0 || h(t.id);\n return e || console.debug(\"[smart picker]\", t.id, \"reference provider is discoverable but does not have any related search provider or custom picker component registered\"), e;\n });\n}\nfunction ie(t) {\n const e = window._vue_richtext_reference_provider_timestamps;\n return t.sort((r, s) => r.order === s.order ? 0 : r.order > s.order ? 1 : -1).sort((r, s) => {\n const i = e[r.id], o = e[s.id];\n return i === o ? 0 : o === void 0 ? -1 : i === void 0 ? 1 : i > o ? -1 : 1;\n });\n}\nfunction ne(t, e = null) {\n const r = R(), s = t.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\"), i = new RegExp(s, \"i\"), l = ie(r).filter((a) => a.title.match(i)), u = e ? l.slice(0, e) : l;\n return (t === \"\" || u.length === 0) && u.push(S), u;\n}\nfunction oe(t) {\n const e = Math.floor(Date.now() / 1e3), r = {\n timestamp: e\n }, s = _(\"references/provider/{providerId}\", { providerId: t });\n p.put(s, r).then((i) => {\n window._vue_richtext_reference_provider_timestamps[t] = e;\n });\n}\nlet y = 0;\nfunction x(t, e) {\n return function() {\n const r = this, s = arguments;\n clearTimeout(y), y = setTimeout(function() {\n t.apply(r, s);\n }, e || 0);\n };\n}\nfunction f(t) {\n try {\n return !!new URL(t);\n } catch {\n return !1;\n }\n}\nconst ce = {\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 le = function() {\n var e = this, r = e._self._c;\n return r(\"span\", e._b({ staticClass: \"material-design-icon link-variant-icon\", attrs: { \"aria-hidden\": !e.title, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [r(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [r(\"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\" } }, [e.title ? r(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, ae = [], ue = /* @__PURE__ */ c(\n ce,\n le,\n ae,\n !1,\n null,\n null,\n null,\n null\n);\nconst v = ue.exports;\nconst de = {\n name: \"NcProviderList\",\n components: {\n NcSelect: w,\n NcHighlight: P,\n NcEmptyContent: m,\n LinkVariantIcon: v\n },\n emits: [\n \"select-provider\",\n \"submit\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: n(\"Select provider\"),\n providerIconAlt: n(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const t = [];\n return this.query !== \"\" && f(this.query) && t.push({\n id: this.query,\n title: this.query,\n isLink: !0\n }), t.push(...ne(this.query)), t;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n var t, e, r;\n (r = (e = (t = this.$refs[\"provider-select\"]) == null ? void 0 : t.$el) == null ? void 0 : e.querySelector(\"#provider-select-input\")) == null || r.focus();\n }, 300);\n },\n onProviderSelected(t) {\n t !== null && (t.isLink ? this.$emit(\"submit\", t.title) : this.$emit(\"select-provider\", t), this.selectedProvider = null);\n },\n onSearch(t, e) {\n this.query = t;\n }\n }\n};\nvar he = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"provider-list\" }, [r(\"NcSelect\", { ref: \"provider-select\", staticClass: \"provider-list--select\", attrs: { \"input-id\": \"provider-select-input\", label: \"title\", placeholder: e.multiselectPlaceholder, options: e.options, \"append-to-body\": !1, \"clear-search-on-select\": !0, \"clear-search-on-blur\": () => !1, filterable: !1 }, on: { search: e.onSearch, input: e.onProviderSelected }, scopedSlots: e._u([{ key: \"option\", fn: function(s) {\n return [s.isLink ? r(\"div\", { staticClass: \"provider\" }, [r(\"LinkVariantIcon\", { staticClass: \"link-icon\", attrs: { size: 20 } }), r(\"span\", [e._v(e._s(s.title))])], 1) : r(\"div\", { staticClass: \"provider\" }, [r(\"img\", { staticClass: \"provider-icon\", attrs: { src: s.icon_url, alt: e.providerIconAlt } }), r(\"NcHighlight\", { staticClass: \"option-text\", attrs: { search: e.query, text: s.title } })], 1)];\n } }]), model: { value: e.selectedProvider, callback: function(s) {\n e.selectedProvider = s;\n }, expression: \"selectedProvider\" } }), r(\"NcEmptyContent\", { staticClass: \"provider-list--empty-content\", scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [r(\"LinkVariantIcon\")];\n }, proxy: !0 }]) })], 1);\n}, _e = [], pe = /* @__PURE__ */ c(\n de,\n he,\n _e,\n !1,\n null,\n \"9d850ea5\",\n null,\n null\n);\nconst me = pe.exports;\nconst fe = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon: v,\n NcEmptyContent: m,\n NcLoadingIcon: N,\n NcReferenceWidget: G,\n NcTextField: E\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: !0\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: !1,\n reference: null,\n abortController: null,\n inputPlaceholder: n(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return f(this.inputValue);\n }\n },\n methods: {\n focus() {\n var t;\n (t = this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]) == null || t.focus();\n },\n onSubmit(t) {\n const e = t.target.value;\n this.isLinkValid && this.$emit(\"submit\", e);\n },\n onClear() {\n this.inputValue = \"\", this.reference = null;\n },\n onInput() {\n this.reference = null, this.abortController && this.abortController.abort(), this.isLinkValid && x(() => {\n this.updateReference();\n }, 500)();\n },\n updateReference() {\n this.loading = !0, this.abortController = new AbortController(), p.get(_(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((t) => {\n this.reference = t.data.ocs.data.references[this.inputValue];\n }).catch((t) => {\n console.error(t);\n }).then(() => {\n this.loading = !1;\n });\n }\n }\n};\nvar ve = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"raw-link\" }, [r(\"div\", { staticClass: \"input-wrapper\" }, [r(\"NcTextField\", { ref: \"url-input\", attrs: { value: e.inputValue, \"show-trailing-button\": e.inputValue !== \"\", label: e.inputPlaceholder }, on: { \"update:value\": [function(s) {\n e.inputValue = s;\n }, e.onInput], \"trailing-button-click\": e.onClear }, nativeOn: { keyup: function(s) {\n return !s.type.indexOf(\"key\") && e._k(s.keyCode, \"enter\", 13, s.key, \"Enter\") ? null : e.onSubmit.apply(null, arguments);\n } } }, [e.loading ? r(\"NcLoadingIcon\", { attrs: { size: 16 } }) : r(\"LinkVariantIcon\", { attrs: { size: 16 } })], 1)], 1), e.reference !== null ? r(\"NcReferenceWidget\", { staticClass: \"reference-widget\", attrs: { reference: e.reference } }) : r(\"NcEmptyContent\", { staticClass: \"raw-link--empty-content\", scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [e.provider.icon_url ? r(\"img\", { staticClass: \"provider-icon\", attrs: { src: e.provider.icon_url } }) : r(\"LinkVariantIcon\")];\n }, proxy: !0 }]) })], 1);\n}, ge = [], ye = /* @__PURE__ */ c(\n fe,\n ve,\n ge,\n !1,\n null,\n \"d0ba247a\",\n null,\n null\n);\nconst ke = ye.exports;\nconst Ce = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight: P\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: !0\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: !0\n }\n }\n};\nvar Pe = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"result\" }, [e.entry.icon ? r(\"div\", { staticClass: \"result--icon-class\", class: { [e.entry.icon]: !0, rounded: e.entry.rounded } }) : r(\"img\", { staticClass: \"result--image\", class: { rounded: e.entry.rounded }, attrs: { src: e.entry.thumbnailUrl } }), r(\"div\", { staticClass: \"result--content\" }, [r(\"span\", { staticClass: \"result--content--name\" }, [r(\"NcHighlight\", { attrs: { search: e.query, text: e.entry.title } })], 1), r(\"span\", { staticClass: \"result--content--subline\" }, [r(\"NcHighlight\", { attrs: { search: e.query, text: e.entry.subline } })], 1)])]);\n}, we = [], be = /* @__PURE__ */ c(\n Ce,\n Pe,\n we,\n !1,\n null,\n \"7a394a58\",\n null,\n null\n);\nconst Se = be.exports;\nconst k = 5, Re = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon: v,\n DotsHorizontalIcon: I,\n NcEmptyContent: m,\n NcSelect: w,\n NcSearchResult: Se\n },\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: !0\n },\n showEmptyContent: {\n type: Boolean,\n default: !0\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: !1,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: n(\"Start typing to search\"),\n providerIconAlt: n(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || n(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\")\n return [];\n const t = [];\n return f(this.searchQuery) && t.push(this.rawLinkEntry), t.push(...this.formattedSearchResults), t;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: !0\n };\n },\n formattedSearchResults() {\n const t = [];\n return this.searchProviderIds.forEach((e) => {\n if (this.resultsBySearchProvider[e].entries.length > 0) {\n (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[e].entries.length > 1) && t.push({\n id: \"groupTitle-\" + e,\n name: this.resultsBySearchProvider[e].name,\n isCustomGroupTitle: !0,\n providerId: e\n });\n const r = this.resultsBySearchProvider[e].entries.map((s, i) => ({\n id: \"provider-\" + e + \"-entry-\" + i,\n ...s\n }));\n t.push(...r), this.resultsBySearchProvider[e].isPaginated && t.push({\n id: \"moreOf-\" + e,\n name: this.resultsBySearchProvider[e].name,\n isMore: !0,\n providerId: e,\n isLoading: this.searchingMoreOf === e\n });\n }\n }), t;\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeDestroy() {\n this.cancelSearchRequests();\n },\n methods: {\n t: n,\n resetResults() {\n const t = {};\n this.searchProviderIds.forEach((e) => {\n t[e] = {\n entries: []\n };\n }), this.resultsBySearchProvider = t;\n },\n focus() {\n setTimeout(() => {\n var t, e, r;\n (r = (e = (t = this.$refs[\"search-select\"]) == null ? void 0 : t.$el) == null ? void 0 : e.querySelector(\"#search-select-input\")) == null || r.focus();\n }, 300);\n },\n cancelSearchRequests() {\n this.abortController && this.abortController.abort();\n },\n onSearchInput(t, e) {\n this.searchQuery = t, x(() => {\n this.updateSearch();\n }, 500)();\n },\n onSelectResultSelected(t) {\n t !== null && (t.resourceUrl ? (this.cancelSearchRequests(), this.$emit(\"submit\", t.resourceUrl)) : t.isMore && this.searchMoreOf(t.providerId).then(() => {\n this.selectedResult = null;\n }));\n },\n searchMoreOf(t) {\n return this.searchingMoreOf = t, this.cancelSearchRequests(), this.searchProviders(t);\n },\n updateSearch() {\n if (this.cancelSearchRequests(), this.resetResults(), this.searchQuery === \"\") {\n this.searching = !1;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(t = null) {\n var r, s;\n this.abortController = new AbortController(), this.searching = !0;\n const e = t === null ? [...this.searchProviderIds].map((i) => this.searchOneProvider(i)) : [this.searchOneProvider(t, (s = (r = this.resultsBySearchProvider[t]) == null ? void 0 : r.cursor) != null ? s : null)];\n return Promise.allSettled(e).then((i) => {\n !!i.find((l) => l.status === \"rejected\" && (l.reason.name === \"CanceledError\" || l.reason.code === \"ERR_CANCELED\")) || (this.searching = !1, this.searchingMoreOf = null);\n });\n },\n searchOneProvider(t, e = null) {\n const r = e === null ? _(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId: t, term: this.searchQuery, limit: k }) : _(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId: t, term: this.searchQuery, limit: k, cursor: e });\n return p.get(r, {\n signal: this.abortController.signal\n }).then((s) => {\n const i = s.data.ocs.data;\n this.resultsBySearchProvider[t].name = i.name, this.resultsBySearchProvider[t].cursor = i.cursor, this.resultsBySearchProvider[t].isPaginated = i.isPaginated, this.resultsBySearchProvider[t].entries.push(...i.entries);\n });\n }\n }\n};\nvar xe = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"smart-picker-search\", class: { \"with-empty-content\": e.showEmptyContent } }, [r(\"NcSelect\", { ref: \"search-select\", staticClass: \"smart-picker-search--select\", attrs: { \"input-id\": \"search-select-input\", label: \"name\", placeholder: e.mySearchPlaceholder, options: e.options, \"append-to-body\": !1, \"close-on-select\": !1, \"clear-search-on-select\": !1, \"clear-search-on-blur\": () => !1, \"reset-focus-on-options-change\": !1, filterable: !1, autoscroll: !0, \"reset-on-options-change\": !1, loading: e.searching }, on: { search: e.onSearchInput, input: e.onSelectResultSelected }, scopedSlots: e._u([{ key: \"option\", fn: function(s) {\n return [s.isRawLink ? r(\"div\", { staticClass: \"custom-option\" }, [r(\"LinkVariantIcon\", { staticClass: \"option-simple-icon\", attrs: { size: 20 } }), r(\"span\", { staticClass: \"option-text\" }, [e._v(\" \" + e._s(e.t(\"Raw link {options}\", { options: s.resourceUrl })) + \" \")])], 1) : s.resourceUrl ? r(\"NcSearchResult\", { staticClass: \"search-result\", attrs: { entry: s, query: e.searchQuery } }) : s.isCustomGroupTitle ? r(\"span\", { staticClass: \"custom-option group-name\" }, [e.provider.icon_url ? r(\"img\", { staticClass: \"provider-icon group-name-icon\", attrs: { src: e.provider.icon_url } }) : e._e(), r(\"span\", { staticClass: \"option-text\" }, [r(\"strong\", [e._v(e._s(s.name))])])]) : s.isMore ? r(\"span\", { class: { \"custom-option\": !0 } }, [s.isLoading ? r(\"span\", { staticClass: \"option-simple-icon icon-loading-small\" }) : r(\"DotsHorizontalIcon\", { staticClass: \"option-simple-icon\", attrs: { size: 20 } }), r(\"span\", { staticClass: \"option-text\" }, [e._v(\" \" + e._s(e.t('Load more \"{options}\"', { options: s.name })) + \" \")])], 1) : e._e()];\n } }, { key: \"no-options\", fn: function() {\n return [e._v(\" \" + e._s(e.noOptionsText) + \" \")];\n }, proxy: !0 }]), model: { value: e.selectedResult, callback: function(s) {\n e.selectedResult = s;\n }, expression: \"selectedResult\" } }), e.showEmptyContent ? r(\"NcEmptyContent\", { staticClass: \"smart-picker-search--empty-content\", scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [e.provider.icon_url ? r(\"img\", { staticClass: \"provider-icon\", attrs: { alt: e.providerIconAlt, src: e.provider.icon_url } }) : r(\"LinkVariantIcon\")];\n }, proxy: !0 }], null, !1, 2922132592) }) : e._e()], 1);\n}, $e = [], Le = /* @__PURE__ */ c(\n Re,\n xe,\n $e,\n !1,\n null,\n \"97d196f0\",\n null,\n null\n);\nconst Ne = Le.exports;\nconst d = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n}, Ee = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement: re,\n NcProviderList: me,\n NcRawLinkInput: ke,\n NcSearch: Ne\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: !0\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: d,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? d.providerList : h(this.selectedProvider.id) ? d.customElement : this.selectedProvider.search_providers_ids ? d.searchInput : d.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n this.focusOnCreate && (this.initialProvider ? setTimeout(() => {\n var t;\n (t = this.$refs[\"url-input\"]) == null || t.focus();\n }, 300) : this.$nextTick(() => {\n var t;\n (t = this.$refs[\"provider-list\"]) == null || t.focus();\n }));\n },\n methods: {\n onEscapePressed() {\n this.selectedProvider !== null ? this.deselectProvider() : this.cancelProviderSelection();\n },\n onProviderSelected(t) {\n this.selectedProvider = t, this.$emit(\"provider-selected\", t), this.$nextTick(() => {\n var e;\n (e = this.$refs[\"url-input\"]) == null || e.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n var t;\n this.$emit(\"cancel-search\", (t = this.selectedProvider) == null ? void 0 : t.title), this.deselectProvider();\n },\n cancelRawLinkInput() {\n var t;\n this.$emit(\"cancel-raw-link\", (t = this.selectedProvider) == null ? void 0 : t.title), this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(t) {\n this.selectedProvider !== null && oe(this.selectedProvider.id), this.$emit(\"submit\", t), this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null, this.$emit(\"provider-selected\", null), setTimeout(() => {\n var t;\n (t = this.$refs[\"provider-list\"]) == null || t.focus();\n }, 300);\n }\n }\n};\nvar Ie = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"reference-picker\", style: e.pickerWrapperStyle, attrs: { tabindex: \"-1\" }, on: { keydown: function(s) {\n return !s.type.indexOf(\"key\") && e._k(s.keyCode, \"esc\", 27, s.key, [\"Esc\", \"Escape\"]) ? null : (s.stopPropagation(), s.preventDefault(), e.onEscapePressed.apply(null, arguments));\n } } }, [e.mode === e.MODES.providerList ? r(\"NcProviderList\", { ref: \"provider-list\", on: { \"select-provider\": e.onProviderSelected, submit: e.submitLink, cancel: e.cancelProviderSelection } }) : e.mode === e.MODES.standardLinkInput ? r(\"NcRawLinkInput\", { ref: \"url-input\", attrs: { provider: e.selectedProvider }, on: { submit: e.submitLink, cancel: e.cancelRawLinkInput } }) : e.mode === e.MODES.searchInput ? r(\"NcSearch\", { ref: \"url-input\", attrs: { provider: e.selectedProvider }, on: { cancel: e.cancelSearch, submit: e.submitLink } }) : e.mode === e.MODES.customElement ? r(\"div\", { staticClass: \"custom-element-wrapper\" }, [r(\"NcCustomPickerElement\", { attrs: { provider: e.selectedProvider }, on: { submit: e.submitLink, cancel: e.cancelCustomElement } })], 1) : e._e()], 1);\n}, Oe = [], Be = /* @__PURE__ */ c(\n Ee,\n Ie,\n Oe,\n !1,\n null,\n \"aa77d0d3\",\n null,\n null\n);\nconst Me = Be.exports;\nconst Ve = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker: Me,\n NcModal: B,\n NcButton: O,\n ArrowLeftIcon: V,\n CloseIcon: W\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: !0\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: !1\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n show: !0,\n selectedProvider: this.initialProvider,\n backButtonTitle: n(\"Back to provider selection\"),\n closeButtonTitle: n(\"Close\"),\n closeButtonLabel: n(\"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 var t;\n return this.isProviderSelected && h(this.selectedProvider.id) ? (t = H(this.selectedProvider.id)) != null ? t : \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !h(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : n(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const t = this.$refs.modal_content;\n M(\"viewer:trapElements:changed\", t);\n }\n },\n methods: {\n onCancel() {\n this.show = !1, this.$emit(\"cancel\");\n },\n onSubmit(t) {\n this.show = !1, this.$emit(\"submit\", t);\n },\n onProviderSelect(t) {\n this.selectedProvider = t, t === null && this.initialProvider !== null && this.onCancel();\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nvar We = function() {\n var e = this, r = e._self._c;\n return e.show ? r(\"NcModal\", { staticClass: \"reference-picker-modal\", attrs: { size: e.modalSize, \"can-close\": !1 }, on: { close: e.onCancel } }, [r(\"div\", { ref: \"modal_content\", staticClass: \"reference-picker-modal--content\" }, [e.showBackButton ? r(\"NcButton\", { staticClass: \"back-button\", attrs: { \"aria-label\": e.backButtonTitle, title: e.backButtonTitle }, on: { click: e.onBackClicked }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [r(\"ArrowLeftIcon\")];\n }, proxy: !0 }], null, !1, 3001860362) }) : e._e(), r(\"NcButton\", { staticClass: \"close-button\", attrs: { \"aria-label\": e.closeButtonLabel, title: e.closeButtonTitle, type: \"tertiary\" }, on: { click: e.onCancel }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [r(\"CloseIcon\")];\n }, proxy: !0 }], null, !1, 2491825086) }), e.showModalName ? r(\"h2\", [e._v(\" \" + e._s(e.modalName) + \" \")]) : e._e(), r(\"NcReferencePicker\", { ref: \"referencePicker\", attrs: { \"initial-provider\": e.initialProvider, \"focus-on-create\": e.focusOnCreate }, on: { \"provider-selected\": e.onProviderSelect, submit: e.onSubmit, cancel: e.onCancel } })], 1)]) : e._e();\n}, qe = [], Te = /* @__PURE__ */ c(\n Ve,\n We,\n qe,\n !1,\n null,\n \"3f1a4ac7\",\n null,\n null\n);\nconst je = Te.exports;\nasync function ot(t = null, e = void 0) {\n return await new Promise((r, s) => {\n var g;\n const i = \"referencePickerModal\", o = document.createElement(\"div\");\n o.id = i, document.body.append(o);\n const l = t === null ? null : (g = se(t)) != null ? g : null, u = q.extend(je), a = new u({\n propsData: {\n initialProvider: l,\n isInsideViewer: e\n }\n }).$mount(o);\n a.$on(\"cancel\", () => {\n a.$destroy(), s(new Error(\"User cancellation\"));\n }), a.$on(\"submit\", ($) => {\n a.$destroy(), r($);\n });\n });\n}\nexport {\n G as N,\n Me as a,\n je as b,\n Ne as c,\n z as d,\n nt as e,\n Z as f,\n J as g,\n h,\n T as i,\n ot as j,\n b as k,\n se as l,\n R as m,\n ne as n,\n j as r,\n ie as s\n};\n","if (!Array.prototype.find) {\n Array.prototype.find = function(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined')\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function')\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value\n }\n }\n return undefined\n };\n}\n\nif (window && typeof window.CustomEvent !== \"function\") {\n function CustomEvent$1(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt\n }\n\n if (typeof window.Event !== 'undefined') {\n CustomEvent$1.prototype = window.Event.prototype;\n }\n\n window.CustomEvent = CustomEvent$1;\n}\n\nclass TributeEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.events = this;\n }\n\n static keys() {\n return [\n {\n key: 9,\n value: \"TAB\"\n },\n {\n key: 8,\n value: \"DELETE\"\n },\n {\n key: 13,\n value: \"ENTER\"\n },\n {\n key: 27,\n value: \"ESCAPE\"\n },\n {\n key: 32,\n value: \"SPACE\"\n },\n {\n key: 38,\n value: \"UP\"\n },\n {\n key: 40,\n value: \"DOWN\"\n }\n ];\n }\n\n bind(element) {\n element.boundKeydown = this.keydown.bind(element, this);\n element.boundKeyup = this.keyup.bind(element, this);\n element.boundInput = this.input.bind(element, this);\n\n element.addEventListener(\"keydown\", element.boundKeydown, false);\n element.addEventListener(\"keyup\", element.boundKeyup, false);\n element.addEventListener(\"input\", element.boundInput, false);\n }\n\n unbind(element) {\n element.removeEventListener(\"keydown\", element.boundKeydown, false);\n element.removeEventListener(\"keyup\", element.boundKeyup, false);\n element.removeEventListener(\"input\", element.boundInput, false);\n\n delete element.boundKeydown;\n delete element.boundKeyup;\n delete element.boundInput;\n }\n\n keydown(instance, event) {\n if (instance.shouldDeactivate(event)) {\n instance.tribute.isActive = false;\n instance.tribute.hideMenu();\n }\n\n let element = this;\n instance.commandEvent = false;\n\n TributeEvents.keys().forEach(o => {\n if (o.key === event.keyCode) {\n instance.commandEvent = true;\n instance.callbacks()[o.value.toLowerCase()](event, element);\n }\n });\n }\n\n input(instance, event) {\n instance.inputEvent = true;\n instance.keyup.call(this, instance, event);\n }\n\n click(instance, event) {\n let tribute = instance.tribute;\n if (tribute.menu && tribute.menu.contains(event.target)) {\n let li = event.target;\n event.preventDefault();\n event.stopPropagation();\n while (li.nodeName.toLowerCase() !== \"li\") {\n li = li.parentNode;\n if (!li || li === tribute.menu) {\n throw new Error(\"cannot find the <li> container for the click\");\n }\n }\n tribute.selectItemAtIndex(li.getAttribute(\"data-index\"), event);\n tribute.hideMenu();\n\n // TODO: should fire with externalTrigger and target is outside of menu\n } else if (tribute.current.element && !tribute.current.externalTrigger) {\n tribute.current.externalTrigger = false;\n setTimeout(() => tribute.hideMenu());\n }\n }\n\n keyup(instance, event) {\n if (instance.inputEvent) {\n instance.inputEvent = false;\n }\n instance.updateSelection(this);\n\n if (event.keyCode === 27) return;\n\n if (!instance.tribute.allowSpaces && instance.tribute.hasTrailingSpace) {\n instance.tribute.hasTrailingSpace = false;\n instance.commandEvent = true;\n instance.callbacks()[\"space\"](event, this);\n return;\n }\n\n if (!instance.tribute.isActive) {\n if (instance.tribute.autocompleteMode) {\n instance.callbacks().triggerChar(event, this, \"\");\n } else {\n let keyCode = instance.getKeyCode(instance, this, event);\n\n if (isNaN(keyCode) || !keyCode) return;\n\n let trigger = instance.tribute.triggers().find(trigger => {\n return trigger.charCodeAt(0) === keyCode;\n });\n\n if (typeof trigger !== \"undefined\") {\n instance.callbacks().triggerChar(event, this, trigger);\n }\n }\n }\n\n if (\n instance.tribute.current.mentionText.length <\n instance.tribute.current.collection.menuShowMinLength\n ) {\n return;\n }\n\n if (\n ((instance.tribute.current.trigger ||\n instance.tribute.autocompleteMode) &&\n instance.commandEvent === false) ||\n (instance.tribute.isActive && event.keyCode === 8)\n ) {\n instance.tribute.showMenuFor(this, true);\n }\n }\n\n shouldDeactivate(event) {\n if (!this.tribute.isActive) return false;\n\n if (this.tribute.current.mentionText.length === 0) {\n let eventKeyPressed = false;\n TributeEvents.keys().forEach(o => {\n if (event.keyCode === o.key) eventKeyPressed = true;\n });\n\n return !eventKeyPressed;\n }\n\n return false;\n }\n\n getKeyCode(instance, el, event) {\n let tribute = instance.tribute;\n let info = tribute.range.getTriggerInfo(\n false,\n tribute.hasTrailingSpace,\n true,\n tribute.allowSpaces,\n tribute.autocompleteMode\n );\n\n if (info) {\n return info.mentionTriggerChar.charCodeAt(0);\n } else {\n return false;\n }\n }\n\n updateSelection(el) {\n this.tribute.current.element = el;\n let info = this.tribute.range.getTriggerInfo(\n false,\n this.tribute.hasTrailingSpace,\n true,\n this.tribute.allowSpaces,\n this.tribute.autocompleteMode\n );\n\n if (info) {\n this.tribute.current.selectedPath = info.mentionSelectedPath;\n this.tribute.current.mentionText = info.mentionText;\n this.tribute.current.selectedOffset = info.mentionSelectedOffset;\n }\n }\n\n callbacks() {\n return {\n triggerChar: (e, el, trigger) => {\n let tribute = this.tribute;\n tribute.current.trigger = trigger;\n\n let collectionItem = tribute.collection.find(item => {\n return item.trigger === trigger;\n });\n\n tribute.current.collection = collectionItem;\n\n if (\n tribute.current.mentionText.length >=\n tribute.current.collection.menuShowMinLength &&\n tribute.inputEvent\n ) {\n tribute.showMenuFor(el, true);\n }\n },\n enter: (e, el) => {\n // choose selection\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.selectItemAtIndex(this.tribute.menuSelected, e);\n this.tribute.hideMenu();\n }, 0);\n }\n },\n escape: (e, el) => {\n if (this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n this.tribute.isActive = false;\n this.tribute.hideMenu();\n }\n },\n tab: (e, el) => {\n // choose first match\n this.callbacks().enter(e, el);\n },\n space: (e, el) => {\n if (this.tribute.isActive) {\n if (this.tribute.spaceSelectsMatch) {\n this.callbacks().enter(e, el);\n } else if (!this.tribute.allowSpaces) {\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.hideMenu();\n this.tribute.isActive = false;\n }, 0);\n }\n }\n },\n up: (e, el) => {\n // navigate up ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length,\n selected = this.tribute.menuSelected;\n\n if (count > selected && selected > 0) {\n this.tribute.menuSelected--;\n this.setActiveLi();\n } else if (selected === 0) {\n this.tribute.menuSelected = count - 1;\n this.setActiveLi();\n this.tribute.menu.scrollTop = this.tribute.menu.scrollHeight;\n }\n }\n },\n down: (e, el) => {\n // navigate down ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length - 1,\n selected = this.tribute.menuSelected;\n\n if (count > selected) {\n this.tribute.menuSelected++;\n this.setActiveLi();\n } else if (count === selected) {\n this.tribute.menuSelected = 0;\n this.setActiveLi();\n this.tribute.menu.scrollTop = 0;\n }\n }\n },\n delete: (e, el) => {\n if (\n this.tribute.isActive &&\n this.tribute.current.mentionText.length < 1\n ) {\n this.tribute.hideMenu();\n } else if (this.tribute.isActive) {\n this.tribute.showMenuFor(el);\n }\n }\n };\n }\n\n setActiveLi(index) {\n let lis = this.tribute.menu.querySelectorAll(\"li\"),\n length = lis.length >>> 0;\n\n if (index) this.tribute.menuSelected = parseInt(index);\n\n for (let i = 0; i < length; i++) {\n let li = lis[i];\n if (i === this.tribute.menuSelected) {\n li.classList.add(this.tribute.current.collection.selectClass);\n\n let liClientRect = li.getBoundingClientRect();\n let menuClientRect = this.tribute.menu.getBoundingClientRect();\n\n if (liClientRect.bottom > menuClientRect.bottom) {\n let scrollDistance = liClientRect.bottom - menuClientRect.bottom;\n this.tribute.menu.scrollTop += scrollDistance;\n } else if (liClientRect.top < menuClientRect.top) {\n let scrollDistance = menuClientRect.top - liClientRect.top;\n this.tribute.menu.scrollTop -= scrollDistance;\n }\n } else {\n li.classList.remove(this.tribute.current.collection.selectClass);\n }\n }\n }\n\n getFullHeight(elem, includeMargin) {\n let height = elem.getBoundingClientRect().height;\n\n if (includeMargin) {\n let style = elem.currentStyle || window.getComputedStyle(elem);\n return (\n height + parseFloat(style.marginTop) + parseFloat(style.marginBottom)\n );\n }\n\n return height;\n }\n}\n\nclass TributeMenuEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.menuEvents = this;\n this.menu = this.tribute.menu;\n }\n\n bind(menu) {\n this.menuClickEvent = this.tribute.events.click.bind(null, this);\n this.menuContainerScrollEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.showMenuFor(this.tribute.current.element, false);\n }\n },\n 300,\n false\n );\n this.windowResizeEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.range.positionMenuAtCaret(true);\n }\n },\n 300,\n false\n );\n\n // fixes IE11 issues with mousedown\n this.tribute.range\n .getDocument()\n .addEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .addEventListener(\"mousedown\", this.menuClickEvent, false);\n window.addEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.addEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.addEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n unbind(menu) {\n this.tribute.range\n .getDocument()\n .removeEventListener(\"mousedown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .removeEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n window.removeEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.removeEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.removeEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n debounce(func, wait, immediate) {\n var timeout;\n return () => {\n var context = this,\n args = arguments;\n var later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n}\n\n// Thanks to https://github.com/jeff-collins/ment.io\n\nclass TributeRange {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.range = this;\n }\n\n getDocument() {\n let iframe;\n if (this.tribute.current.collection) {\n iframe = this.tribute.current.collection.iframe;\n }\n\n if (!iframe) {\n return document\n }\n\n return iframe.contentWindow.document\n }\n\n positionMenuAtCaret(scrollTo) {\n let context = this.tribute.current,\n coordinates;\n\n let info = this.getTriggerInfo(false, this.tribute.hasTrailingSpace, true, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (typeof info !== 'undefined') {\n\n if(!this.tribute.positionMenu){\n this.tribute.menu.style.cssText = `display: block;`;\n return\n }\n\n if (!this.isContentEditable(context.element)) {\n coordinates = this.getTextAreaOrInputUnderlinePosition(this.tribute.current.element,\n info.mentionPosition);\n }\n else {\n coordinates = this.getContentEditableCaretPosition(info.mentionPosition);\n }\n\n this.tribute.menu.style.cssText = `top: ${coordinates.top}px;\n left: ${coordinates.left}px;\n right: ${coordinates.right}px;\n bottom: ${coordinates.bottom}px;\n position: absolute;\n display: block;`;\n\n if (coordinates.left === 'auto') {\n this.tribute.menu.style.left = 'auto';\n }\n\n if (coordinates.top === 'auto') {\n this.tribute.menu.style.top = 'auto';\n }\n\n if (scrollTo) this.scrollIntoView();\n\n window.setTimeout(() => {\n let menuDimensions = {\n width: this.tribute.menu.offsetWidth,\n height: this.tribute.menu.offsetHeight\n };\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n let menuIsOffScreenHorizontally = window.innerWidth > menuDimensions.width && (menuIsOffScreen.left || menuIsOffScreen.right);\n let menuIsOffScreenVertically = window.innerHeight > menuDimensions.height && (menuIsOffScreen.top || menuIsOffScreen.bottom);\n if (menuIsOffScreenHorizontally || menuIsOffScreenVertically) {\n this.tribute.menu.style.cssText = 'display: none';\n this.positionMenuAtCaret(scrollTo);\n }\n }, 0);\n\n } else {\n this.tribute.menu.style.cssText = 'display: none';\n }\n }\n\n get menuContainerIsBody() {\n return this.tribute.menuContainer === document.body || !this.tribute.menuContainer;\n }\n\n\n selectElement(targetElement, path, offset) {\n let range;\n let elem = targetElement;\n\n if (path) {\n for (var i = 0; i < path.length; i++) {\n elem = elem.childNodes[path[i]];\n if (elem === undefined) {\n return\n }\n while (elem.length < offset) {\n offset -= elem.length;\n elem = elem.nextSibling;\n }\n if (elem.childNodes.length === 0 && !elem.length) {\n elem = elem.previousSibling;\n }\n }\n }\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(elem, offset);\n range.setEnd(elem, offset);\n range.collapse(true);\n\n try {\n sel.removeAllRanges();\n } catch (error) {}\n\n sel.addRange(range);\n targetElement.focus();\n }\n\n replaceTriggerText(text, requireLeadingSpace, hasTrailingSpace, originalEvent, item) {\n let info = this.getTriggerInfo(true, hasTrailingSpace, requireLeadingSpace, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (info !== undefined) {\n let context = this.tribute.current;\n let replaceEvent = new CustomEvent('tribute-replaced', {\n detail: {\n item: item,\n instance: context,\n context: info,\n event: originalEvent,\n }\n });\n\n if (!this.isContentEditable(context.element)) {\n let myField = this.tribute.current.element;\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : ' ';\n text += textSuffix;\n let startPos = info.mentionPosition;\n let endPos = info.mentionPosition + info.mentionText.length + textSuffix.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length - 1;\n }\n myField.value = myField.value.substring(0, startPos) + text +\n myField.value.substring(endPos, myField.value.length);\n myField.selectionStart = startPos + text.length;\n myField.selectionEnd = startPos + text.length;\n } else {\n // add a space to the end of the pasted text\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : '\\xA0';\n text += textSuffix;\n let endPos = info.mentionPosition + info.mentionText.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length;\n }\n this.pasteHtml(text, info.mentionPosition, endPos);\n }\n\n context.element.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n context.element.dispatchEvent(replaceEvent);\n }\n }\n\n pasteHtml(html, startPos, endPos) {\n let range, sel;\n sel = this.getWindowSelection();\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, startPos);\n range.setEnd(sel.anchorNode, endPos);\n range.deleteContents();\n\n let el = this.getDocument().createElement('div');\n el.innerHTML = html;\n let frag = this.getDocument().createDocumentFragment(),\n node, lastNode;\n while ((node = el.firstChild)) {\n lastNode = frag.appendChild(node);\n }\n range.insertNode(frag);\n\n // Preserve the selection\n if (lastNode) {\n range = range.cloneRange();\n range.setStartAfter(lastNode);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n\n getWindowSelection() {\n if (this.tribute.collection.iframe) {\n return this.tribute.collection.iframe.contentWindow.getSelection()\n }\n\n return window.getSelection()\n }\n\n getNodePositionInParent(element) {\n if (element.parentNode === null) {\n return 0\n }\n\n for (var i = 0; i < element.parentNode.childNodes.length; i++) {\n let node = element.parentNode.childNodes[i];\n\n if (node === element) {\n return i\n }\n }\n }\n\n getContentEditableSelectedPath(ctx) {\n let sel = this.getWindowSelection();\n let selected = sel.anchorNode;\n let path = [];\n let offset;\n\n if (selected != null) {\n let i;\n let ce = selected.contentEditable;\n while (selected !== null && ce !== 'true') {\n i = this.getNodePositionInParent(selected);\n path.push(i);\n selected = selected.parentNode;\n if (selected !== null) {\n ce = selected.contentEditable;\n }\n }\n path.reverse();\n\n // getRangeAt may not exist, need alternative\n offset = sel.getRangeAt(0).startOffset;\n\n return {\n selected: selected,\n path: path,\n offset: offset\n }\n }\n }\n\n getTextPrecedingCurrentSelection() {\n let context = this.tribute.current,\n text = '';\n\n if (!this.isContentEditable(context.element)) {\n let textComponent = this.tribute.current.element;\n if (textComponent) {\n let startPos = textComponent.selectionStart;\n if (textComponent.value && startPos >= 0) {\n text = textComponent.value.substring(0, startPos);\n }\n }\n\n } else {\n let selectedElem = this.getWindowSelection().anchorNode;\n\n if (selectedElem != null) {\n let workingNodeContent = selectedElem.textContent;\n let selectStartOffset = this.getWindowSelection().getRangeAt(0).startOffset;\n\n if (workingNodeContent && selectStartOffset >= 0) {\n text = workingNodeContent.substring(0, selectStartOffset);\n }\n }\n }\n\n return text\n }\n\n getLastWordInText(text) {\n text = text.replace(/\\u00A0/g, ' '); // https://stackoverflow.com/questions/29850407/how-do-i-replace-unicode-character-u00a0-with-a-space-in-javascript\n let wordsArray = text.split(/\\s+/);\n let worldsCount = wordsArray.length - 1;\n return wordsArray[worldsCount].trim()\n }\n\n getTriggerInfo(menuAlreadyActive, hasTrailingSpace, requireLeadingSpace, allowSpaces, isAutocomplete) {\n let ctx = this.tribute.current;\n let selected, path, offset;\n\n if (!this.isContentEditable(ctx.element)) {\n selected = this.tribute.current.element;\n } else {\n let selectionInfo = this.getContentEditableSelectedPath(ctx);\n\n if (selectionInfo) {\n selected = selectionInfo.selected;\n path = selectionInfo.path;\n offset = selectionInfo.offset;\n }\n }\n\n let effectiveRange = this.getTextPrecedingCurrentSelection();\n let lastWordOfEffectiveRange = this.getLastWordInText(effectiveRange);\n\n if (isAutocomplete) {\n return {\n mentionPosition: effectiveRange.length - lastWordOfEffectiveRange.length,\n mentionText: lastWordOfEffectiveRange,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset\n }\n }\n\n if (effectiveRange !== undefined && effectiveRange !== null) {\n let mostRecentTriggerCharPos = -1;\n let triggerChar;\n\n this.tribute.collection.forEach(config => {\n let c = config.trigger;\n let idx = config.requireLeadingSpace ?\n this.lastIndexWithLeadingSpace(effectiveRange, c) :\n effectiveRange.lastIndexOf(c);\n\n if (idx > mostRecentTriggerCharPos) {\n mostRecentTriggerCharPos = idx;\n triggerChar = c;\n requireLeadingSpace = config.requireLeadingSpace;\n }\n });\n\n if (mostRecentTriggerCharPos >= 0 &&\n (\n mostRecentTriggerCharPos === 0 ||\n !requireLeadingSpace ||\n /[\\xA0\\s]/g.test(\n effectiveRange.substring(\n mostRecentTriggerCharPos - 1,\n mostRecentTriggerCharPos)\n )\n )\n ) {\n let currentTriggerSnippet = effectiveRange.substring(mostRecentTriggerCharPos + triggerChar.length,\n effectiveRange.length);\n\n triggerChar = effectiveRange.substring(mostRecentTriggerCharPos, mostRecentTriggerCharPos + triggerChar.length);\n let firstSnippetChar = currentTriggerSnippet.substring(0, 1);\n let leadingSpace = currentTriggerSnippet.length > 0 &&\n (\n firstSnippetChar === ' ' ||\n firstSnippetChar === '\\xA0'\n );\n if (hasTrailingSpace) {\n currentTriggerSnippet = currentTriggerSnippet.trim();\n }\n\n let regex = allowSpaces ? /[^\\S ]/g : /[\\xA0\\s]/g;\n\n this.tribute.hasTrailingSpace = regex.test(currentTriggerSnippet);\n\n if (!leadingSpace && (menuAlreadyActive || !(regex.test(currentTriggerSnippet)))) {\n return {\n mentionPosition: mostRecentTriggerCharPos,\n mentionText: currentTriggerSnippet,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset,\n mentionTriggerChar: triggerChar\n }\n }\n }\n }\n }\n\n lastIndexWithLeadingSpace (str, trigger) {\n let reversedStr = str.split('').reverse().join('');\n let index = -1;\n\n for (let cidx = 0, len = str.length; cidx < len; cidx++) {\n let firstChar = cidx === str.length - 1;\n let leadingSpace = /\\s/.test(reversedStr[cidx + 1]);\n\n let match = true;\n for (let triggerIdx = trigger.length - 1; triggerIdx >= 0; triggerIdx--) {\n if (trigger[triggerIdx] !== reversedStr[cidx-triggerIdx]) {\n match = false;\n break\n }\n }\n\n if (match && (firstChar || leadingSpace)) {\n index = str.length - 1 - cidx;\n break\n }\n }\n\n return index\n }\n\n isContentEditable(element) {\n return element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA'\n }\n\n isMenuOffScreen(coordinates, menuDimensions) {\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let menuTop = typeof coordinates.top === 'number' ? coordinates.top : windowTop + windowHeight - coordinates.bottom - menuDimensions.height;\n let menuRight = typeof coordinates.right === 'number' ? coordinates.right : coordinates.left + menuDimensions.width;\n let menuBottom = typeof coordinates.bottom === 'number' ? coordinates.bottom : coordinates.top + menuDimensions.height;\n let menuLeft = typeof coordinates.left === 'number' ? coordinates.left : windowLeft + windowWidth - coordinates.right - menuDimensions.width;\n\n return {\n top: menuTop < Math.floor(windowTop),\n right: menuRight > Math.ceil(windowLeft + windowWidth),\n bottom: menuBottom > Math.ceil(windowTop + windowHeight),\n left: menuLeft < Math.floor(windowLeft)\n }\n }\n\n getMenuDimensions() {\n // Width of the menu depends of its contents and position\n // We must check what its width would be without any obstruction\n // This way, we can achieve good positioning for flipping the menu\n let dimensions = {\n width: null,\n height: null\n };\n\n this.tribute.menu.style.cssText = `top: 0px;\n left: 0px;\n position: fixed;\n display: block;\n visibility; hidden;`;\n dimensions.width = this.tribute.menu.offsetWidth;\n dimensions.height = this.tribute.menu.offsetHeight;\n\n this.tribute.menu.style.cssText = `display: none;`;\n\n return dimensions\n }\n\n getTextAreaOrInputUnderlinePosition(element, position, flipped) {\n let properties = ['direction', 'boxSizing', 'width', 'height', 'overflowX',\n 'overflowY', 'borderTopWidth', 'borderRightWidth',\n 'borderBottomWidth', 'borderLeftWidth', 'paddingTop',\n 'paddingRight', 'paddingBottom', 'paddingLeft',\n 'fontStyle', 'fontVariant', 'fontWeight', 'fontStretch',\n 'fontSize', 'fontSizeAdjust', 'lineHeight', 'fontFamily',\n 'textAlign', 'textTransform', 'textIndent',\n 'textDecoration', 'letterSpacing', 'wordSpacing'\n ];\n\n let isFirefox = (window.mozInnerScreenX !== null);\n\n let div = this.getDocument().createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n this.getDocument().body.appendChild(div);\n\n let style = div.style;\n let computed = window.getComputedStyle ? getComputedStyle(element) : element.currentStyle;\n\n style.whiteSpace = 'pre-wrap';\n if (element.nodeName !== 'INPUT') {\n style.wordWrap = 'break-word';\n }\n\n // position off-screen\n style.position = 'absolute';\n style.visibility = 'hidden';\n\n // transfer the element's properties to the div\n properties.forEach(prop => {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n style.width = `${(parseInt(computed.width) - 2)}px`;\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = 'scroll';\n } else {\n style.overflow = 'hidden';\n }\n\n div.textContent = element.value.substring(0, position);\n\n if (element.nodeName === 'INPUT') {\n div.textContent = div.textContent.replace(/\\s/g, ' ');\n }\n\n let span = this.getDocument().createElement('span');\n span.textContent = element.value.substring(position) || '.';\n div.appendChild(span);\n\n let rect = element.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let top = 0;\n let left = 0;\n if (this.menuContainerIsBody) {\n top = rect.top;\n left = rect.left;\n }\n\n let coordinates = {\n top: top + windowTop + span.offsetTop + parseInt(computed.borderTopWidth) + parseInt(computed.fontSize) - element.scrollTop,\n left: left + windowLeft + span.offsetLeft + parseInt(computed.borderLeftWidth)\n };\n\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.right = windowWidth - coordinates.left;\n coordinates.left = 'auto';\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top - span.offsetTop);\n coordinates.top = 'auto';\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n this.getDocument().body.removeChild(div);\n return coordinates\n }\n\n getContentEditableCaretPosition(selectedNodePosition) {\n let range;\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, selectedNodePosition);\n range.setEnd(sel.anchorNode, selectedNodePosition);\n\n range.collapse(false);\n\n let rect = range.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let left = rect.left;\n let top = rect.top;\n\n let coordinates = {\n left: left + windowLeft,\n top: top + rect.height + windowTop\n };\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.left = 'auto';\n coordinates.right = windowWidth - rect.left - windowLeft;\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.top = 'auto';\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top);\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n if (!this.menuContainerIsBody) {\n coordinates.left = coordinates.left ? coordinates.left - this.tribute.menuContainer.offsetLeft : coordinates.left;\n coordinates.top = coordinates.top ? coordinates.top - this.tribute.menuContainer.offsetTop : coordinates.top;\n }\n\n return coordinates\n }\n\n scrollIntoView(elem) {\n let reasonableBuffer = 20,\n clientRect;\n let maxScrollDisplacement = 100;\n let e = this.menu;\n\n if (typeof e === 'undefined') return;\n\n while (clientRect === undefined || clientRect.height === 0) {\n clientRect = e.getBoundingClientRect();\n\n if (clientRect.height === 0) {\n e = e.childNodes[0];\n if (e === undefined || !e.getBoundingClientRect) {\n return\n }\n }\n }\n\n let elemTop = clientRect.top;\n let elemBottom = elemTop + clientRect.height;\n\n if (elemTop < 0) {\n window.scrollTo(0, window.pageYOffset + clientRect.top - reasonableBuffer);\n } else if (elemBottom > window.innerHeight) {\n let maxY = window.pageYOffset + clientRect.top - reasonableBuffer;\n\n if (maxY - window.pageYOffset > maxScrollDisplacement) {\n maxY = window.pageYOffset + maxScrollDisplacement;\n }\n\n let targetY = window.pageYOffset - (window.innerHeight - elemBottom);\n\n if (targetY > maxY) {\n targetY = maxY;\n }\n\n window.scrollTo(0, targetY);\n }\n }\n}\n\n// Thanks to https://github.com/mattyork/fuzzy\nclass TributeSearch {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.search = this;\n }\n\n simpleFilter(pattern, array) {\n return array.filter(string => {\n return this.test(pattern, string)\n })\n }\n\n test(pattern, string) {\n return this.match(pattern, string) !== null\n }\n\n match(pattern, string, opts) {\n opts = opts || {};\n let len = string.length,\n pre = opts.pre || '',\n post = opts.post || '',\n compareString = opts.caseSensitive && string || string.toLowerCase();\n\n if (opts.skip) {\n return {rendered: string, score: 0}\n }\n\n pattern = opts.caseSensitive && pattern || pattern.toLowerCase();\n\n let patternCache = this.traverse(compareString, pattern, 0, 0, []);\n if (!patternCache) {\n return null\n }\n return {\n rendered: this.render(string, patternCache.cache, pre, post),\n score: patternCache.score\n }\n }\n\n traverse(string, pattern, stringIndex, patternIndex, patternCache) {\n // if the pattern search at end\n if (pattern.length === patternIndex) {\n\n // calculate score and copy the cache containing the indices where it's found\n return {\n score: this.calculateScore(patternCache),\n cache: patternCache.slice()\n }\n }\n\n // if string at end or remaining pattern > remaining string\n if (string.length === stringIndex || pattern.length - patternIndex > string.length - stringIndex) {\n return undefined\n }\n\n let c = pattern[patternIndex];\n let index = string.indexOf(c, stringIndex);\n let best, temp;\n\n while (index > -1) {\n patternCache.push(index);\n temp = this.traverse(string, pattern, index + 1, patternIndex + 1, patternCache);\n patternCache.pop();\n\n // if downstream traversal failed, return best answer so far\n if (!temp) {\n return best\n }\n\n if (!best || best.score < temp.score) {\n best = temp;\n }\n\n index = string.indexOf(c, index + 1);\n }\n\n return best\n }\n\n calculateScore(patternCache) {\n let score = 0;\n let temp = 1;\n\n patternCache.forEach((index, i) => {\n if (i > 0) {\n if (patternCache[i - 1] + 1 === index) {\n temp += temp + 1;\n }\n else {\n temp = 1;\n }\n }\n\n score += temp;\n });\n\n return score\n }\n\n render(string, indices, pre, post) {\n var rendered = string.substring(0, indices[0]);\n\n indices.forEach((index, i) => {\n rendered += pre + string[index] + post +\n string.substring(index + 1, (indices[i + 1]) ? indices[i + 1] : string.length);\n });\n\n return rendered\n }\n\n filter(pattern, arr, opts) {\n opts = opts || {};\n return arr\n .reduce((prev, element, idx, arr) => {\n let str = element;\n\n if (opts.extract) {\n str = opts.extract(element);\n\n if (!str) { // take care of undefineds / nulls / etc.\n str = '';\n }\n }\n\n let rendered = this.match(pattern, str, opts);\n\n if (rendered != null) {\n prev[prev.length] = {\n string: rendered.rendered,\n score: rendered.score,\n index: idx,\n original: element\n };\n }\n\n return prev\n }, [])\n\n .sort((a, b) => {\n let compare = b.score - a.score;\n if (compare) return compare\n return a.index - b.index\n })\n }\n}\n\nclass Tribute {\n constructor({\n values = null,\n iframe = null,\n selectClass = \"highlight\",\n containerClass = \"tribute-container\",\n itemClass = \"\",\n trigger = \"@\",\n autocompleteMode = false,\n selectTemplate = null,\n menuItemTemplate = null,\n lookup = \"key\",\n fillAttr = \"value\",\n collection = null,\n menuContainer = null,\n noMatchTemplate = null,\n requireLeadingSpace = true,\n allowSpaces = false,\n replaceTextSuffix = null,\n positionMenu = true,\n spaceSelectsMatch = false,\n searchOpts = {},\n menuItemLimit = null,\n menuShowMinLength = 0\n }) {\n this.autocompleteMode = autocompleteMode;\n this.menuSelected = 0;\n this.current = {};\n this.inputEvent = false;\n this.isActive = false;\n this.menuContainer = menuContainer;\n this.allowSpaces = allowSpaces;\n this.replaceTextSuffix = replaceTextSuffix;\n this.positionMenu = positionMenu;\n this.hasTrailingSpace = false;\n this.spaceSelectsMatch = spaceSelectsMatch;\n\n if (this.autocompleteMode) {\n trigger = \"\";\n allowSpaces = false;\n }\n\n if (values) {\n this.collection = [\n {\n // symbol that starts the lookup\n trigger: trigger,\n\n // is it wrapped in an iframe\n iframe: iframe,\n\n // class applied to selected item\n selectClass: selectClass,\n\n // class applied to the Container\n containerClass: containerClass,\n\n // class applied to each item\n itemClass: itemClass,\n\n // function called on select that retuns the content to insert\n selectTemplate: (\n selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n\n // function called that returns content for an item\n menuItemTemplate: (\n menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"<li>No Match Found!</li>\";\n }.bind(this)\n );\n })(noMatchTemplate),\n\n // column to search against in the object\n lookup: lookup,\n\n // column that contains the content to insert by default\n fillAttr: fillAttr,\n\n // array of objects or a function returning an array of objects\n values: values,\n\n requireLeadingSpace: requireLeadingSpace,\n\n searchOpts: searchOpts,\n\n menuItemLimit: menuItemLimit,\n\n menuShowMinLength: menuShowMinLength\n }\n ];\n } else if (collection) {\n if (this.autocompleteMode)\n console.warn(\n \"Tribute in autocomplete mode does not work for collections\"\n );\n this.collection = collection.map(item => {\n return {\n trigger: item.trigger || trigger,\n iframe: item.iframe || iframe,\n selectClass: item.selectClass || selectClass,\n containerClass: item.containerClass || containerClass,\n itemClass: item.itemClass || itemClass,\n selectTemplate: (\n item.selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n menuItemTemplate: (\n item.menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"<li>No Match Found!</li>\";\n }.bind(this)\n );\n })(noMatchTemplate),\n lookup: item.lookup || lookup,\n fillAttr: item.fillAttr || fillAttr,\n values: item.values,\n requireLeadingSpace: item.requireLeadingSpace,\n searchOpts: item.searchOpts || searchOpts,\n menuItemLimit: item.menuItemLimit || menuItemLimit,\n menuShowMinLength: item.menuShowMinLength || menuShowMinLength\n };\n });\n } else {\n throw new Error(\"[Tribute] No collection specified.\");\n }\n\n new TributeRange(this);\n new TributeEvents(this);\n new TributeMenuEvents(this);\n new TributeSearch(this);\n }\n\n get isActive() {\n return this._isActive;\n }\n\n set isActive(val) {\n if (this._isActive != val) {\n this._isActive = val;\n if (this.current.element) {\n let noMatchEvent = new CustomEvent(`tribute-active-${val}`);\n this.current.element.dispatchEvent(noMatchEvent);\n }\n }\n }\n\n static defaultSelectTemplate(item) {\n if (typeof item === \"undefined\")\n return `${this.current.collection.trigger}${this.current.mentionText}`;\n if (this.range.isContentEditable(this.current.element)) {\n return (\n '<span class=\"tribute-mention\">' +\n (this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]) +\n \"</span>\"\n );\n }\n\n return (\n this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]\n );\n }\n\n static defaultMenuItemTemplate(matchItem) {\n return matchItem.string;\n }\n\n static inputTypes() {\n return [\"TEXTAREA\", \"INPUT\"];\n }\n\n triggers() {\n return this.collection.map(config => {\n return config.trigger;\n });\n }\n\n attach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._attach(el[i]);\n }\n } else {\n this._attach(el);\n }\n }\n\n _attach(el) {\n if (el.hasAttribute(\"data-tribute\")) {\n console.warn(\"Tribute was already bound to \" + el.nodeName);\n }\n\n this.ensureEditable(el);\n this.events.bind(el);\n el.setAttribute(\"data-tribute\", true);\n }\n\n ensureEditable(element) {\n if (Tribute.inputTypes().indexOf(element.nodeName) === -1) {\n if (element.contentEditable) {\n element.contentEditable = true;\n } else {\n throw new Error(\"[Tribute] Cannot bind to \" + element.nodeName);\n }\n }\n }\n\n createMenu(containerClass) {\n let wrapper = this.range.getDocument().createElement(\"div\"),\n ul = this.range.getDocument().createElement(\"ul\");\n wrapper.className = containerClass;\n wrapper.appendChild(ul);\n\n if (this.menuContainer) {\n return this.menuContainer.appendChild(wrapper);\n }\n\n return this.range.getDocument().body.appendChild(wrapper);\n }\n\n showMenuFor(element, scrollTo) {\n // Only proceed if menu isn't already shown for the current element & mentionText\n if (\n this.isActive &&\n this.current.element === element &&\n this.current.mentionText === this.currentMentionTextSnapshot\n ) {\n return;\n }\n this.currentMentionTextSnapshot = this.current.mentionText;\n\n // create the menu if it doesn't exist.\n if (!this.menu) {\n this.menu = this.createMenu(this.current.collection.containerClass);\n element.tributeMenu = this.menu;\n this.menuEvents.bind(this.menu);\n }\n\n this.isActive = true;\n this.menuSelected = 0;\n\n if (!this.current.mentionText) {\n this.current.mentionText = \"\";\n }\n\n const processValues = values => {\n // Tribute may not be active any more by the time the value callback returns\n if (!this.isActive) {\n return;\n }\n\n let items = this.search.filter(this.current.mentionText, values, {\n pre: this.current.collection.searchOpts.pre || \"<span>\",\n post: this.current.collection.searchOpts.post || \"</span>\",\n skip: this.current.collection.searchOpts.skip,\n extract: el => {\n if (typeof this.current.collection.lookup === \"string\") {\n return el[this.current.collection.lookup];\n } else if (typeof this.current.collection.lookup === \"function\") {\n return this.current.collection.lookup(el, this.current.mentionText);\n } else {\n throw new Error(\n \"Invalid lookup attribute, lookup must be string or function.\"\n );\n }\n }\n });\n\n if (this.current.collection.menuItemLimit) {\n items = items.slice(0, this.current.collection.menuItemLimit);\n }\n\n this.current.filteredItems = items;\n\n let ul = this.menu.querySelector(\"ul\");\n\n this.range.positionMenuAtCaret(scrollTo);\n\n if (!items.length) {\n let noMatchEvent = new CustomEvent(\"tribute-no-match\", {\n detail: this.menu\n });\n this.current.element.dispatchEvent(noMatchEvent);\n if (\n (typeof this.current.collection.noMatchTemplate === \"function\" &&\n !this.current.collection.noMatchTemplate()) ||\n !this.current.collection.noMatchTemplate\n ) {\n this.hideMenu();\n } else {\n typeof this.current.collection.noMatchTemplate === \"function\"\n ? (ul.innerHTML = this.current.collection.noMatchTemplate())\n : (ul.innerHTML = this.current.collection.noMatchTemplate);\n }\n\n return;\n }\n\n ul.innerHTML = \"\";\n let fragment = this.range.getDocument().createDocumentFragment();\n\n items.forEach((item, index) => {\n let li = this.range.getDocument().createElement(\"li\");\n li.setAttribute(\"data-index\", index);\n li.className = this.current.collection.itemClass;\n li.addEventListener(\"mousemove\", e => {\n let [li, index] = this._findLiTarget(e.target);\n if (e.movementY !== 0) {\n this.events.setActiveLi(index);\n }\n });\n if (this.menuSelected === index) {\n li.classList.add(this.current.collection.selectClass);\n }\n li.innerHTML = this.current.collection.menuItemTemplate(item);\n fragment.appendChild(li);\n });\n ul.appendChild(fragment);\n };\n\n if (typeof this.current.collection.values === \"function\") {\n this.current.collection.values(this.current.mentionText, processValues);\n } else {\n processValues(this.current.collection.values);\n }\n }\n\n _findLiTarget(el) {\n if (!el) return [];\n const index = el.getAttribute(\"data-index\");\n return !index ? this._findLiTarget(el.parentNode) : [el, index];\n }\n\n showMenuForCollection(element, collectionIndex) {\n if (element !== document.activeElement) {\n this.placeCaretAtEnd(element);\n }\n\n this.current.collection = this.collection[collectionIndex || 0];\n this.current.externalTrigger = true;\n this.current.element = element;\n\n if (element.isContentEditable)\n this.insertTextAtCursor(this.current.collection.trigger);\n else this.insertAtCaret(element, this.current.collection.trigger);\n\n this.showMenuFor(element);\n }\n\n // TODO: make sure this works for inputs/textareas\n placeCaretAtEnd(el) {\n el.focus();\n if (\n typeof window.getSelection != \"undefined\" &&\n typeof document.createRange != \"undefined\"\n ) {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.body.createTextRange != \"undefined\") {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n }\n\n // for contenteditable\n insertTextAtCursor(text) {\n var sel, range;\n sel = window.getSelection();\n range = sel.getRangeAt(0);\n range.deleteContents();\n var textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.selectNodeContents(textNode);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n // for regular inputs\n insertAtCaret(textarea, text) {\n var scrollPos = textarea.scrollTop;\n var caretPos = textarea.selectionStart;\n\n var front = textarea.value.substring(0, caretPos);\n var back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length\n );\n textarea.value = front + text + back;\n caretPos = caretPos + text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n }\n\n hideMenu() {\n if (this.menu) {\n this.menu.style.cssText = \"display: none;\";\n this.isActive = false;\n this.menuSelected = 0;\n this.current = {};\n }\n }\n\n selectItemAtIndex(index, originalEvent) {\n index = parseInt(index);\n if (typeof index !== \"number\" || isNaN(index)) return;\n let item = this.current.filteredItems[index];\n let content = this.current.collection.selectTemplate(item);\n if (content !== null) this.replaceText(content, originalEvent, item);\n }\n\n replaceText(content, originalEvent, item) {\n this.range.replaceTriggerText(content, true, true, originalEvent, item);\n }\n\n _append(collection, newValues, replace) {\n if (typeof collection.values === \"function\") {\n throw new Error(\"Unable to append to values, as it is a function.\");\n } else if (!replace) {\n collection.values = collection.values.concat(newValues);\n } else {\n collection.values = newValues;\n }\n }\n\n append(collectionIndex, newValues, replace) {\n let index = parseInt(collectionIndex);\n if (typeof index !== \"number\")\n throw new Error(\"please provide an index for the collection to update.\");\n\n let collection = this.collection[index];\n\n this._append(collection, newValues, replace);\n }\n\n appendCurrent(newValues, replace) {\n if (this.isActive) {\n this._append(this.current.collection, newValues, replace);\n } else {\n throw new Error(\n \"No active state. Please use append instead and pass an index.\"\n );\n }\n }\n\n detach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._detach(el[i]);\n }\n } else {\n this._detach(el);\n }\n }\n\n _detach(el) {\n this.events.unbind(el);\n if (el.tributeMenu) {\n this.menuEvents.unbind(el.tributeMenu);\n }\n\n setTimeout(() => {\n el.removeAttribute(\"data-tribute\");\n this.isActive = false;\n if (el.tributeMenu) {\n el.tributeMenu.remove();\n }\n });\n }\n}\n\n/**\n * Tribute.js\n * Native ES6 JavaScript @mention Plugin\n **/\n\nexport default Tribute;\n","import \"../assets/index-d9ae9479.css\";\nimport { r as c } from \"../chunks/index-5f2a5f57.mjs\";\nimport { N as rt } from \"../chunks/index-5f2a5f57.mjs\";\nimport { generateUrl as p } from \"@nextcloud/router\";\nimport { n as u } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { t as o } from \"../chunks/l10n-b6d21146.mjs\";\nimport \"../Directives/Tooltip.mjs\";\nimport { emojiAddRecent as m, emojiSearch as d } from \"../Functions/emoji.mjs\";\nimport { n as h, j as f } from \"../chunks/referencePickerModal-58498cac.mjs\";\nimport \"@nextcloud/axios\";\nimport \"unist-util-visit\";\nimport \"unist-builder\";\nimport \"unified\";\nimport \"remark-parse\";\nimport \"remark-breaks\";\nimport \"remark-rehype\";\nimport \"rehype-react\";\nimport \"rehype-external-links\";\nimport \"./NcEmptyContent.mjs\";\nimport \"./NcSelect.mjs\";\nimport \"./NcLoadingIcon.mjs\";\nimport \"./NcTextField.mjs\";\nimport \"./NcButton.mjs\";\nimport \"./NcModal.mjs\";\nimport \"@nextcloud/event-bus\";\nimport l from \"tributejs/dist/tribute.esm.js\";\nimport _ from \"debounce\";\nimport g from \"string-length\";\nimport { VTooltip as b } from \"floating-vue\";\nconst y = {\n name: \"NcAutoCompleteResult\",\n props: {\n title: {\n type: String,\n required: !0\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: !0\n },\n iconUrl: {\n type: String,\n default: null\n },\n source: {\n type: String,\n required: !0\n },\n status: {\n type: [Object, Array],\n default: () => ({})\n }\n },\n computed: {\n avatarUrl() {\n return this.iconUrl ? this.iconUrl : this.id && this.source === \"users\" ? this.getAvatarUrl(this.id, 44) : null;\n },\n haveStatus() {\n var e, t, n;\n return ((e = this.status) == null ? void 0 : e.icon) || ((t = this.status) == null ? void 0 : t.status) && ((n = this.status) == null ? void 0 : n.status) !== \"offline\";\n }\n },\n methods: {\n getAvatarUrl(e, t) {\n return p(\"/avatar/{user}/{size}\", {\n user: e,\n size: t\n });\n }\n }\n};\nvar C = function() {\n var t = this, n = t._self._c;\n return n(\"div\", { staticClass: \"autocomplete-result\" }, [n(\"div\", { staticClass: \"autocomplete-result__icon\", class: [t.icon, `autocomplete-result__icon--${t.avatarUrl ? \"with-avatar\" : \"\"}`], style: t.avatarUrl ? { backgroundImage: `url(${t.avatarUrl})` } : null }, [t.haveStatus ? n(\"div\", { staticClass: \"autocomplete-result__status\", class: [`autocomplete-result__status--${t.status && t.status.icon ? \"icon\" : t.status.status}`] }, [t._v(\" \" + t._s(t.status && t.status.icon || \"\") + \" \")]) : t._e()]), n(\"span\", { staticClass: \"autocomplete-result__content\" }, [n(\"span\", { staticClass: \"autocomplete-result__title\", attrs: { title: t.title } }, [t._v(\" \" + t._s(t.title) + \" \")]), t.subline ? n(\"span\", { staticClass: \"autocomplete-result__subline\" }, [t._v(\" \" + t._s(t.subline) + \" \")]) : t._e()])]);\n}, v = [], k = /* @__PURE__ */ u(\n y,\n C,\n v,\n !1,\n null,\n \"25cf09d8\",\n null,\n null\n);\nconst x = k.exports;\nconst T = {\n name: \"NcRichContenteditable\",\n directives: {\n tooltip: b\n },\n mixins: [c],\n props: {\n value: {\n type: String,\n default: \"\",\n required: !0\n },\n placeholder: {\n type: String,\n default: o(\"Write a message …\")\n },\n autoComplete: {\n type: Function,\n default: () => []\n },\n menuContainer: {\n type: Element,\n default: () => document.body\n },\n /**\n * Make the contenteditable looks like a textarea or not.\n * Default looks like a single-line input.\n * This also handle the default enter/shift+enter behaviour.\n * if multiline, enter = newline; otherwise enter = submit\n * shift+enter always add a new line. ctrl+enter always submits\n */\n multiline: {\n type: Boolean,\n default: !1\n },\n /**\n * Is the content editable ?\n */\n contenteditable: {\n type: Boolean,\n default: !0\n },\n /**\n * Disable the editing and show specific disabled design\n */\n disabled: {\n type: Boolean,\n default: !1\n },\n /**\n * Max allowed length\n */\n maxlength: {\n type: Number,\n default: null\n },\n /**\n * Enable or disable emoji autocompletion\n */\n emojiAutocomplete: {\n type: Boolean,\n default: !0\n },\n /**\n * Enable or disable link autocompletion\n */\n linkAutocomplete: {\n type: Boolean,\n default: !0\n }\n },\n emits: [\n \"submit\",\n \"paste\",\n \"update:value\",\n \"smart-picker-submit\"\n ],\n data() {\n return {\n textSmiles: [],\n tribute: null,\n autocompleteOptions: {\n // Allow spaces in the middle of mentions\n allowSpaces: !0,\n fillAttr: \"id\",\n // Search against id and title (display name)\n lookup: (e) => `${e.id} ${e.title}`,\n // Where to inject the menu popup\n menuContainer: this.menuContainer,\n // Popup mention autocompletion templates\n menuItemTemplate: (e) => this.renderComponentHtml(e.original, x),\n // Hide if no results\n noMatchTemplate: () => '<span class=\"hidden\"></span>',\n // Inner display of mentions\n selectTemplate: (e) => {\n var t;\n return this.genSelectTemplate((t = e == null ? void 0 : e.original) == null ? void 0 : t.id);\n },\n // Autocompletion results\n values: this.debouncedAutoComplete\n },\n emojiOptions: {\n trigger: \":\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (e, t) => t,\n // Where to inject the menu popup\n menuContainer: this.menuContainer,\n // Popup mention autocompletion templates\n menuItemTemplate: (e) => this.textSmiles.includes(e.original) ? e.original : `<span class=\"tribute-container-emoji__item__emoji\">${e.original.native}</span> :${e.original.short_name}`,\n // Hide if no results\n noMatchTemplate: () => o(\"No emoji found\"),\n // Display raw emoji along with its name\n selectTemplate: (e) => this.textSmiles.includes(e.original) ? e.original : (m(e.original), e.original.native),\n // Pass the search results as values\n values: (e, t) => {\n const n = d(e);\n this.textSmiles.includes(\":\" + e) && n.unshift(\":\" + e), t(n);\n },\n // Class added to the menu container\n containerClass: \"tribute-container-emoji\",\n // Class added to each list item\n itemClass: \"tribute-container-emoji__item\"\n },\n linkOptions: {\n trigger: \"/\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (e, t) => t,\n // Where to inject the menu popup\n menuContainer: this.menuContainer,\n // Popup mention autocompletion templates\n menuItemTemplate: (e) => `<img class=\"tribute-container-link__item__icon\" src=\"${e.original.icon_url}\"> <span class=\"tribute-container-link__item__title\">${e.original.title}</span>`,\n // Hide if no results\n noMatchTemplate: () => o(\"No link provider found\"),\n selectTemplate: this.getLink,\n // Pass the search results as values\n values: (e, t) => t(h(e)),\n // Class added to the menu container\n containerClass: \"tribute-container-link\",\n // Class added to each list item\n itemClass: \"tribute-container-link__item\"\n },\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.value,\n // Is in text composition session in IME\n isComposing: !1\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 && this.localValue.trim() === \"\";\n },\n /**\n * Is this Firefox? 🙄\n *\n * @return {boolean}\n */\n isFF() {\n return !!navigator.userAgent.match(/firefox/i);\n },\n /**\n * Is the current value over maxlength?\n *\n * @return {boolean}\n */\n isOverMaxlength() {\n return this.isEmptyValue || !this.maxlength ? !1 : g(this.localValue) > this.maxlength;\n },\n /**\n * Tooltip to show if characters count is over limit\n *\n * @return {string}\n */\n tooltipString() {\n return this.isOverMaxlength ? {\n content: o(\"Message limit of {count} characters reached\", { count: this.maxlength }),\n shown: !0,\n trigger: \"manual\"\n } : null;\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 e = { ...this.$listeners };\n return delete e.paste, e;\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 value() {\n const e = this.$refs.contenteditable.innerHTML;\n this.value.trim() !== this.parseContent(e).trim() && this.updateContent(this.value);\n }\n },\n mounted() {\n const e = [\"d\", \"D\", \"p\", \"P\", \"s\", \"S\", \"x\", \"X\", \")\", \"(\", \"|\", \"/\"];\n this.textSmiles = [], e.forEach((t) => {\n this.textSmiles.push(\":\" + t), this.textSmiles.push(\":-\" + t);\n }), this.autocompleteTribute = new l(this.autocompleteOptions), this.autocompleteTribute.attach(this.$el), this.emojiAutocomplete && (this.emojiTribute = new l(this.emojiOptions), this.emojiTribute.attach(this.$el)), this.linkAutocomplete && (this.linkTribute = new l(this.linkOptions), this.linkTribute.attach(this.$el)), this.updateContent(this.value), this.$refs.contenteditable.contentEditable = this.canEdit;\n },\n beforeDestroy() {\n this.autocompleteTribute && this.autocompleteTribute.detach(this.$el), this.emojiTribute && this.emojiTribute.detach(this.$el), this.linkTribute && this.linkTribute.detach(this.$el);\n },\n methods: {\n /**\n * Focus the richContenteditable\n *\n * @public\n */\n focus() {\n this.$refs.contenteditable.focus();\n },\n getLink(e) {\n return f(e.original.id).then((t) => {\n const n = document.getElementById(\"tmp-smart-picker-result-node\"), i = {\n result: t,\n insertText: !0\n };\n if (this.$emit(\"smart-picker-submit\", i), i.insertText) {\n const s = document.createTextNode(t);\n n.replaceWith(s), this.setCursorAfter(s), this.updateValue(this.$refs.contenteditable.innerHTML);\n } else\n n.remove();\n }).catch((t) => {\n console.debug(\"Smart picker promise rejected:\", t);\n const n = document.getElementById(\"tmp-smart-picker-result-node\");\n this.setCursorAfter(n), n.remove();\n }), '<span id=\"tmp-smart-picker-result-node\"></span>';\n },\n setCursorAfter(e) {\n const t = document.createRange();\n t.setEndAfter(e), t.collapse();\n const n = window.getSelection();\n n.removeAllRanges(), n.addRange(t);\n },\n /**\n * Re-emit the input event to the parent\n *\n * @param {Event} event the input event\n */\n onInput(e) {\n this.updateValue(e.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(e) {\n if (!this.canEdit)\n return;\n e.preventDefault();\n const t = e.clipboardData;\n if (this.$emit(\"paste\", e), t.files.length !== 0 || !Object.values(t.items).find((a) => a == null ? void 0 : a.type.startsWith(\"text\")))\n return;\n const n = t.getData(\"text\"), i = window.getSelection();\n if (!i.rangeCount) {\n this.updateValue(n);\n return;\n }\n const s = i.getRangeAt(0);\n i.deleteFromDocument(), s.insertNode(document.createTextNode(n));\n const r = document.createRange();\n r.setStart(e.target, s.endOffset), r.collapse(!0), i.removeAllRanges(), i.addRange(r), 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(e) {\n const t = this.parseContent(e);\n this.localValue = t, this.$emit(\"update:value\", t);\n },\n /**\n * Update content and local value\n *\n * @param {string} value the message value\n */\n updateContent(e) {\n const t = this.renderContent(e);\n this.$refs.contenteditable.innerHTML = t, this.localValue = e;\n },\n /**\n * Because FF have a decade old bug preventing contenteditable=false\n * to properly be deleted on backspace, we have to hack 👀\n * https://stackoverflow.com/a/59383394/3885878\n * https://stackoverflow.com/a/30574622\n *\n * @param {Event} event the delete keydown event\n */\n onDelete(e) {\n if (!this.isFF || !window.getSelection || !this.canEdit)\n return;\n const t = window.getSelection(), n = e.target;\n if (!t.isCollapsed || !t.rangeCount)\n return;\n const i = t.getRangeAt(t.rangeCount - 1);\n if (i.commonAncestorContainer.nodeType === 3 && i.startOffset > 0)\n return;\n const s = document.createRange();\n if (t.anchorNode !== n)\n s.selectNodeContents(n), s.setEndBefore(t.anchorNode);\n else if (t.anchorOffset > 0)\n s.setEnd(n, t.anchorOffset);\n else\n return;\n s.setStart(n, s.endOffset - 1);\n const r = s.cloneContents().lastChild;\n r && r.contentEditable === \"false\" && (s.deleteContents(), e.preventDefault());\n },\n /**\n * Enter key pressed. Submits if not multiline\n *\n * @param {Event} event the keydown event\n */\n onEnter(e) {\n this.multiline || this.isOverMaxlength || this.autocompleteTribute.isActive || this.emojiTribute.isActive || this.linkTribute.isActive || this.isComposing || (e.preventDefault(), e.stopPropagation(), this.$emit(\"submit\", e));\n },\n /**\n * Ctrl + Enter key pressed is used to submit\n *\n * @param {Event} event the keydown event\n */\n onCtrlEnter(e) {\n this.isOverMaxlength || this.$emit(\"submit\", e);\n },\n /**\n * Debounce the autocomplete function\n */\n debouncedAutoComplete: _(async function(e, t) {\n this.autoComplete(e, t);\n }, 100),\n onKeyUp(e) {\n e.stopImmediatePropagation();\n }\n }\n};\nvar S = function() {\n var t = this, n = t._self._c;\n return n(\"div\", t._g({ directives: [{ name: \"tooltip\", rawName: \"v-tooltip\", value: t.tooltipString, expression: \"tooltipString\" }], ref: \"contenteditable\", staticClass: \"rich-contenteditable__input\", class: {\n \"rich-contenteditable__input--empty\": t.isEmptyValue,\n \"rich-contenteditable__input--multiline\": t.multiline,\n \"rich-contenteditable__input--overflow\": t.isOverMaxlength,\n \"rich-contenteditable__input--disabled\": t.disabled\n }, attrs: { contenteditable: t.canEdit, placeholder: t.placeholder, \"aria-placeholder\": t.placeholder, \"aria-multiline\": \"true\", role: \"textbox\" }, on: { input: t.onInput, compositionstart: function(i) {\n t.isComposing = !0;\n }, compositionend: function(i) {\n t.isComposing = !1;\n }, keydown: [function(i) {\n return !i.type.indexOf(\"key\") && t._k(i.keyCode, \"delete\", [8, 46], i.key, [\"Backspace\", \"Delete\", \"Del\"]) ? null : t.onDelete.apply(null, arguments);\n }, function(i) {\n return !i.type.indexOf(\"key\") && t._k(i.keyCode, \"enter\", 13, i.key, \"Enter\") || i.ctrlKey || i.shiftKey || i.altKey || i.metaKey ? null : t.onEnter.apply(null, arguments);\n }, function(i) {\n return !i.type.indexOf(\"key\") && t._k(i.keyCode, \"enter\", 13, i.key, \"Enter\") || !i.ctrlKey || i.shiftKey || i.altKey || i.metaKey ? null : (i.stopPropagation(), i.preventDefault(), t.onCtrlEnter.apply(null, arguments));\n }], paste: t.onPaste, \"!keyup\": function(i) {\n return i.stopPropagation(), i.preventDefault(), t.onKeyUp.apply(null, arguments);\n } } }, t.listeners));\n}, A = [], E = /* @__PURE__ */ u(\n T,\n S,\n A,\n !1,\n null,\n \"599f92d5\",\n null,\n null\n);\nconst it = E.exports;\nexport {\n x as NcAutoCompleteResult,\n rt as NcMentionBubble,\n it as default\n};\n","import stripAnsi from 'strip-ansi';\nimport charRegex from 'char-regex';\n\nexport default function stringLength(string, {countAnsiEscapeCodes = false} = {}) {\n\tif (string === '') {\n\t\treturn 0;\n\t}\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string === '') {\n\t\treturn 0;\n\t}\n\n\treturn string.match(charRegex()).length;\n}\n","import { N as b } from \"./referencePickerModal-58498cac.mjs\";\nimport h from \"@nextcloud/axios\";\nimport { generateOcsUrl as d } from \"@nextcloud/router\";\nimport { n as g } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { visit as _, SKIP as v } from \"unist-util-visit\";\nimport { u as l } from \"unist-builder\";\nimport { unified as y } from \"unified\";\nimport w from \"remark-parse\";\nimport R from \"remark-breaks\";\nimport N from \"remark-rehype\";\nimport A from \"rehype-react\";\nimport L from \"rehype-external-links\";\nconst m = /(\\s|^)(https?:\\/\\/)((?:[-A-Z0-9+_]+\\.)+[-A-Z]+(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig, x = /(\\s|\\(|^)((https?:\\/\\/)((?:[-A-Z0-9+_]+\\.)+[-A-Z0-9]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\\s|\\)|$)/ig, $ = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget: b\n },\n props: {\n text: {\n type: String,\n default: \"\"\n },\n referenceData: {\n type: Object,\n default: null\n },\n limit: {\n type: Number,\n default: 1\n }\n },\n data() {\n return {\n references: null,\n loading: !0\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences;\n },\n values() {\n return this.referenceData ? this.referenceData : this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n var e;\n return (e = this.values[0]) != null ? e : null;\n },\n displayedReferences() {\n return this.values.slice(0, this.limit);\n }\n },\n watch: {\n text: \"fetch\"\n },\n mounted() {\n this.fetch();\n },\n methods: {\n fetch() {\n if (this.loading = !0, this.referenceData) {\n this.loading = !1;\n return;\n }\n if (!new RegExp(m).exec(this.text)) {\n this.loading = !1;\n return;\n }\n this.resolve().then((e) => {\n this.references = e.data.ocs.data.references, this.loading = !1;\n }).catch((e) => {\n console.error(\"Failed to extract references\", e), this.loading = !1;\n });\n },\n resolve() {\n const e = new RegExp(m).exec(this.text.trim());\n return this.limit === 1 && e ? h.get(d(\"references/resolve\", 2) + `?reference=${encodeURIComponent(e[0])}`) : h.post(d(\"references/extract\", 2), {\n text: this.text,\n resolve: !0,\n limit: this.limit\n });\n }\n }\n};\nvar j = function() {\n var s = this, t = s._self._c;\n return s.isVisible ? t(\"div\", { staticClass: \"widgets--list\", class: { \"icon-loading\": s.loading } }, s._l(s.displayedReferences, function(r) {\n var i;\n return t(\"div\", { key: (i = r == null ? void 0 : r.openGraphObject) == null ? void 0 : i.id }, [t(\"NcReferenceWidget\", { attrs: { reference: r } })], 1);\n }), 0) : s._e();\n}, T = [], O = /* @__PURE__ */ g(\n $,\n j,\n T,\n !1,\n null,\n \"bd1fbb02\",\n null,\n null\n);\nconst f = O.exports, C = {\n name: \"NcLink\",\n props: {\n href: {\n type: String,\n required: !0\n }\n },\n render(e) {\n return e(\"a\", {\n attrs: {\n href: this.href,\n rel: \"noopener noreferrer\",\n target: \"_blank\",\n class: \"rich-text--external-link\"\n }\n }, [this.href.trim()]);\n }\n}, M = function({ autolink: e, useMarkdown: s }) {\n return function(t) {\n !s || !e || _(t, (r) => r.type === \"text\", (r, i, n) => {\n let c = k(r.value);\n return c = c.map((a) => typeof a == \"string\" ? l(\"text\", a) : l(\"link\", {\n url: a.props.href\n }, [l(\"text\", a.props.href)])).filter((a) => a), n.children.splice(i, 1, ...c.flat()), [v, i + c.flat().length];\n });\n };\n}, k = (e) => {\n let s = x.exec(e);\n const t = [];\n let r = 0;\n for (; s !== null; ) {\n let n = s[2], c, a = e.substring(r, s.index + s[1].length);\n n[0] === \" \" && (a += n[0], n = n.substring(1).trim());\n const o = n[n.length - 1];\n (o === \".\" || o === \",\" || o === \";\" || s[0][0] === \"(\" && o === \")\") && (n = n.substring(0, n.length - 1), c = o), t.push(a), t.push({ component: C, props: { href: n } }), c && t.push(c), r = s.index + s[0].length, s = x.exec(e);\n }\n t.push(e.substring(r));\n const i = t.map((n) => typeof n == \"string\" ? n : n.props.href).join(\"\");\n return e === i ? t : (console.error(\"Failed to reassemble the chunked text: \" + e), e);\n}, D = function() {\n return function(e) {\n _(e, (t) => t.type === \"text\", s);\n function s(t, r, i) {\n const n = t.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((c, a, o) => {\n const p = c.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!p)\n return l(\"text\", c);\n const [, u] = p;\n return l(\"element\", {\n tagName: `#${u}`\n });\n });\n i.children.splice(r, 1, ...n);\n }\n };\n}, E = ({ h: e, context: s }, t) => (s.autolink && (t = k(t)), Array.isArray(t) ? t.map((r) => {\n if (typeof r == \"string\")\n return r;\n const { component: i, props: n } = r, c = i.name === \"NcLink\" ? void 0 : \"rich-text--component\";\n return e(i, {\n props: n,\n class: c\n });\n}) : t), P = {\n name: \"NcRichText\",\n components: {\n NcReferenceList: f\n },\n props: {\n text: {\n type: String,\n default: \"\"\n },\n arguments: {\n type: Object,\n default: () => ({})\n },\n referenceLimit: {\n type: Number,\n default: 0\n },\n /** Provide data upfront to avoid extra http request */\n references: {\n type: Object,\n default: null\n },\n markdownCssClasses: {\n type: Object,\n default: () => ({\n a: \"rich-text--external-link\",\n ol: \"rich-text--ordered-list\",\n ul: \"rich-text--un-ordered-list\",\n li: \"rich-text--list-item\",\n strong: \"rich-text--strong\",\n em: \"rich-text--italic\",\n h1: \"rich-text--heading rich-text--heading-1\",\n h2: \"rich-text--heading rich-text--heading-2\",\n h3: \"rich-text--heading rich-text--heading-3\",\n h4: \"rich-text--heading rich-text--heading-4\",\n h5: \"rich-text--heading rich-text--heading-5\",\n h6: \"rich-text--heading rich-text--heading-6\",\n hr: \"rich-text--hr\",\n table: \"rich-text--table\",\n pre: \"rich-text--pre\",\n code: \"rich-text--code\",\n blockquote: \"rich-text--blockquote\"\n })\n },\n useMarkdown: {\n type: Boolean,\n default: !1\n },\n autolink: {\n type: Boolean,\n default: !0\n }\n },\n methods: {\n renderPlaintext(e) {\n const s = this, t = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map(function(r, i, n) {\n const c = r.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!c)\n return E({ h: e, context: s }, r);\n const a = c[1], o = s.arguments[a];\n if (typeof o == \"object\") {\n const { component: p, props: u } = o;\n return e(p, {\n props: u,\n class: \"rich-text--component\"\n });\n }\n return o ? e(\"span\", { class: \"rich-text--fallback\" }, o) : r;\n });\n return e(\"div\", { class: \"rich-text--wrapper\" }, [\n e(\"div\", {}, t.flat()),\n this.referenceLimit > 0 ? e(\"div\", { class: \"rich-text--reference-widget\" }, [\n e(f, { props: { text: this.text, referenceData: this.references } })\n ]) : null\n ]);\n },\n renderMarkdown(e) {\n const s = y().use(w).use(M, {\n autolink: this.autolink,\n useMarkdown: this.useMarkdown\n }).use(R).use(N, {\n handlers: {\n component(t, r) {\n return t(r, r.component, { value: r.value });\n }\n }\n }).use(D).use(L, {\n target: \"_blank\",\n rel: [\"noopener noreferrer\"]\n }).use(A, {\n createElement: (t, r, i) => {\n if (i = i == null ? void 0 : i.map(\n (c) => typeof c == \"string\" ? c.replace(/</gmi, \"<\") : c\n ), !t.startsWith(\"#\"))\n return e(t, r, i);\n const n = this.arguments[t.slice(1)];\n return n ? n.component ? e(\n n.component,\n {\n attrs: r,\n props: n.props,\n class: \"rich-text--component\"\n },\n i\n ) : e(\"span\", r, [n]) : e(\"span\", { attrs: r, class: \"rich-text--fallback\" }, [`{${t.slice(1)}}`]);\n },\n prefix: !1\n }).processSync(\n this.text.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n ).result;\n return e(\"div\", { class: \"rich-text--wrapper rich-text--wrapper-markdown\" }, [\n s,\n this.referenceLimit > 0 ? e(\"div\", { class: \"rich-text--reference-widget\" }, [\n e(f, { props: { text: this.text, referenceData: this.references } })\n ]) : null\n ]);\n }\n },\n render(e) {\n return this.useMarkdown ? this.renderMarkdown(e) : this.renderPlaintext(e);\n }\n}, U = null, Z = null;\nvar z = /* @__PURE__ */ g(\n P,\n U,\n Z,\n !1,\n null,\n \"5f33f45b\",\n null,\n null\n);\nconst X = z.exports;\nexport {\n X as N,\n f as a\n};\n","import { defineComponent as a } from \"vue\";\nimport { n } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst i = a({\n name: \"NcSavingIndicatorIcon\",\n props: {\n /**\n * Specify the size of the saving icon.\n */\n size: {\n type: Number,\n default: 20\n },\n /**\n * Specify what is saved.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * Set to true when saving is in progress.\n */\n saving: {\n type: Boolean,\n default: !1,\n required: !1\n },\n /**\n * Set to true if an error occured while saving.\n */\n error: {\n type: Boolean,\n default: !1,\n required: !1\n }\n },\n emits: [\"click\"],\n computed: {\n indicatorColor() {\n return this.error ? \"var(--color-error)\" : this.saving ? \"var(--color-primary-element)\" : \"none\";\n }\n }\n});\nvar o = function() {\n var e = this, r = e._self._c;\n return e._self._setupProxy, r(\"span\", { staticClass: \"material-design-icon\", attrs: { \"aria-label\": e.name, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, [r(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [r(\"path\", { attrs: { fill: e.indicatorColor, d: \"m19 15a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4z\" } }), r(\"path\", { attrs: { fill: \"currentColor\", d: \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" } }, [e.name ? r(\"title\", [e._v(e._s(e.name))]) : e._e()])])]);\n}, l = [], s = /* @__PURE__ */ n(\n i,\n o,\n l,\n !1,\n null,\n null,\n null,\n null\n);\nconst d = s.exports;\nexport {\n d as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-6c47e88a.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-6c47e88a.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-6c47e88a.css\";\nimport { t as a } from \"../chunks/l10n-b6d21146.mjs\";\nimport { G as s } from \"../chunks/GenRandomId-cb9ccebe.mjs\";\nimport { n as u } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst r = {\n name: \"NcSettingsInputText\",\n props: {\n /**\n * label of the select group element\n */\n label: {\n type: String,\n required: !0\n },\n /**\n * hint of the select group input\n */\n hint: {\n type: String,\n default: \"\"\n },\n /**\n * value of the select group input\n */\n value: {\n type: String,\n default: \"\"\n },\n /**\n * disabled state of the settings select group input\n */\n disabled: {\n type: Boolean,\n default: !1\n },\n /**\n * id attribute of the select group element\n */\n id: {\n type: String,\n default: () => \"settings-input-text-\" + s(),\n validator: (e) => e.trim() !== \"\"\n }\n },\n emits: [\n \"update:value\",\n \"input\",\n \"submit\",\n \"change\"\n ],\n data() {\n return {\n submitTranslated: a(\"Submit\")\n };\n },\n computed: {\n /**\n * @return {string}\n */\n idSubmit() {\n return this.id + \"-submit\";\n }\n },\n methods: {\n onInput(e) {\n this.$emit(\"input\", e), this.$emit(\"update:value\", e.target.value);\n },\n onSubmit(e) {\n this.disabled || this.$emit(\"submit\", e);\n },\n onChange(e) {\n this.$emit(\"change\", e);\n }\n }\n};\nvar l = function() {\n var t = this, i = t._self._c;\n return i(\"form\", { ref: \"form\", attrs: { disabled: t.disabled }, on: { submit: function(n) {\n return n.preventDefault(), n.stopPropagation(), t.onSubmit.apply(null, arguments);\n } } }, [i(\"div\", { staticClass: \"input-wrapper\" }, [i(\"label\", { staticClass: \"action-input__label\", attrs: { for: t.id } }, [t._v(t._s(t.label))]), i(\"input\", { attrs: { id: t.id, type: \"text\", disabled: t.disabled }, domProps: { value: t.value }, on: { input: t.onInput, change: t.onChange } }), i(\"input\", { staticClass: \"action-input__submit\", attrs: { id: t.idSubmit, type: \"submit\" }, domProps: { value: t.submitTranslated } }), t.hint ? i(\"p\", { staticClass: \"hint\" }, [t._v(\" \" + t._s(t.hint) + \" \")]) : t._e()])]);\n}, o = [], p = /* @__PURE__ */ u(\n r,\n l,\n o,\n !1,\n null,\n \"5b140fb6\",\n null,\n null\n);\nconst c = p.exports;\nexport {\n c as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcSettingsSelectGroup-0d38d76b.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcSettingsSelectGroup-0d38d76b.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/NcSettingsSelectGroup-0d38d76b.css\";\nimport a from \"../Components/NcSelect.mjs\";\nimport { t as i } from \"./l10n-b6d21146.mjs\";\nimport { l } from \"./l10n-bef4ea85.mjs\";\nimport { G as o } from \"./GenRandomId-cb9ccebe.mjs\";\nimport n from \"@nextcloud/axios\";\nimport { generateOcsUrl as u } from \"@nextcloud/router\";\nimport { debounce as p } from \"debounce\";\nimport { n as c } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst d = {\n name: \"NcSettingsSelectGroup\",\n components: {\n NcSelect: a\n },\n mixins: [l],\n props: {\n /**\n * The text of the label element of the select group input\n */\n label: {\n type: String,\n required: !0\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-\" + o(),\n validator: (r) => r.trim() !== \"\"\n },\n /**\n * value of the select group input\n * A list of group IDs can be provided\n */\n value: {\n type: Array,\n default: () => []\n },\n /**\n * disabled state of the settings select group input\n */\n disabled: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"input\",\n \"error\"\n ],\n data() {\n return {\n /** Temporary store to cache groups */\n groups: {},\n randId: o(),\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.value.filter((r) => r !== \"\" && typeof r == \"string\");\n },\n /**\n * value property converted to an array of group objects used as input for the NcSelect\n */\n inputValue() {\n return this.filteredValue.map(\n (r) => typeof this.groups[r] > \"u\" ? {\n id: r,\n displayname: r\n } : this.groups[r]\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((r) => !this.value.includes(r.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 r = Object.keys(this.groups);\n this.filteredValue.filter((t) => !r.includes(t)).forEach((t) => {\n this.loadGroup(t);\n });\n },\n // Run the watch handler also when the component is initially mounted\n immediate: !0\n }\n },\n /**\n * Load groups matching the empty query to reduce API calls\n */\n async mounted() {\n const r = `${appName}:${appVersion}/initialGroups`;\n let e = window.sessionStorage.getItem(r);\n e ? (e = Object.fromEntries(JSON.parse(e).map((t) => [t.id, t])), this.groups = { ...this.groups, ...e }) : (await this.loadGroup(\"\"), window.sessionStorage.setItem(r, JSON.stringify(Object.values(this.groups))));\n },\n methods: {\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(r) {\n const e = r.map((t) => t.id);\n this.$emit(\"input\", e);\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(r) {\n try {\n r = typeof r == \"string\" ? encodeURI(r) : \"\";\n const e = await n.get(u(`cloud/groups/details?search=${r}&limit=10`, 2));\n if (this.errorMessage !== \"\" && window.setTimeout(() => {\n this.errorMessage = \"\";\n }, 5e3), Object.keys(e.data.ocs.data.groups).length > 0) {\n const t = Object.fromEntries(e.data.ocs.data.groups.map((s) => [s.id, s]));\n return this.groups = { ...this.groups, ...t }, !0;\n }\n } catch (e) {\n this.$emit(\"error\", e), this.errorMessage = i(\"Unable to search the group\");\n }\n return !1;\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(r, e, t) {\n return `${e || \"\"} ${r.id}`.toLocaleLowerCase().indexOf(t.toLocaleLowerCase()) > -1;\n },\n /**\n * Debounce the group search (reduce API calls)\n */\n onSearch: p(function(r) {\n this.loadGroup(r);\n }, 200)\n }\n};\nvar m = function() {\n var e = this, t = e._self._c;\n return t(\"div\", [e.label ? t(\"label\", { staticClass: \"hidden-visually\", attrs: { for: e.id } }, [e._v(e._s(e.label))]) : e._e(), t(\"NcSelect\", { attrs: { value: e.inputValue, options: e.groupsArray, placeholder: e.placeholder || e.label, \"filter-by\": e.filterGroups, \"input-id\": e.id, limit: 5, label: \"displayname\", multiple: !0, \"close-on-select\": !1, disabled: e.disabled }, on: { input: e.update, search: e.onSearch } }), t(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: e.hasError, expression: \"hasError\" }], staticClass: \"select-group-error\" }, [e._v(\" \" + e._s(e.errorMessage) + \" \")])], 1);\n}, f = [], h = /* @__PURE__ */ c(\n d,\n m,\n f,\n !1,\n null,\n \"5a35ccce\",\n null,\n null\n);\nconst O = h.exports;\nexport {\n O as N\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-c221fe05.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-c221fe05.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-c221fe05.css\";\nimport { n as s } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { N as a } from \"../chunks/index-a01ff595.mjs\";\nimport n from \"./NcPopover.mjs\";\nimport i from \"vue\";\nconst o = {\n name: \"NcUserBubbleDiv\"\n};\nvar l = function() {\n var e = this, r = e._self._c;\n return r(\"div\", [e._t(\"trigger\")], 2);\n}, u = [], p = /* @__PURE__ */ s(\n o,\n l,\n u,\n !1,\n null,\n null,\n null,\n null\n);\nconst c = p.exports;\nconst m = {\n name: \"NcUserBubble\",\n components: {\n NcAvatar: a,\n NcPopover: n,\n NcUserBubbleDiv: c\n },\n props: {\n /**\n * Override generated avatar, can be an url or an icon class\n */\n avatarImage: {\n type: String,\n default: void 0\n },\n /**\n * Provide the user id if this is a user\n */\n user: {\n type: String,\n default: void 0\n },\n /**\n * Displayed label\n */\n displayName: {\n type: String,\n default: void 0\n },\n /**\n * Whether or not to display the user-status\n */\n showUserStatus: {\n type: Boolean,\n default: !1\n },\n /**\n * Define the whole bubble as a link\n */\n url: {\n type: String,\n default: void 0,\n validator: (t) => {\n var e;\n try {\n return t = new URL(t, (e = t == null ? void 0 : t.startsWith) != null && e.call(t, \"/\") ? window.location.href : void 0), !0;\n } catch {\n return !1;\n }\n }\n },\n /**\n * Default popover state. Requires the UserBubble\n * to have some content to render inside the popover\n */\n open: {\n type: Boolean,\n default: !1\n },\n /**\n * Use the primary colour\n */\n primary: {\n type: Boolean,\n default: !1\n },\n /**\n * This is the height of the component\n */\n size: {\n type: Number,\n default: 20\n },\n /**\n * This is the margin of the avatar (size - margin = avatar size)\n */\n margin: {\n type: Number,\n default: 2\n }\n },\n emits: [\n \"click\",\n \"update:open\"\n ],\n computed: {\n /**\n * If userbubble is empty, let's NOT\n * use the Popover component\n * We need a component instead of a simple div here,\n * because otherwise the trigger template will not be shown.\n *\n * @return {string} 'Popover' or 'UserBubbleDiv'\n */\n isPopoverComponent() {\n return this.popoverEmpty ? \"NcUserBubbleDiv\" : \"NcPopover\";\n },\n /**\n * Is the provided avatar url valid or not\n *\n * @return {boolean}\n */\n isAvatarUrl() {\n if (!this.avatarImage)\n return !1;\n try {\n return !!new URL(this.avatarImage);\n } catch {\n return !1;\n }\n },\n /**\n * Do we have a custom avatar or not\n *\n * @return {boolean}\n */\n isCustomAvatar() {\n return !!this.avatarImage;\n },\n hasUrl() {\n return this.url && this.url.trim() !== \"\";\n },\n isLinkComponent() {\n return this.hasUrl ? \"a\" : \"div\";\n },\n popoverEmpty() {\n return !(\"default\" in this.$slots);\n },\n styles() {\n return {\n content: {\n height: this.size + \"px\",\n lineHeight: this.size + \"px\",\n borderRadius: this.size / 2 + \"px\"\n },\n avatar: {\n marginLeft: this.margin + \"px\"\n }\n };\n }\n },\n mounted() {\n !this.displayName && !this.user && i.util.warn(\"[NcUserBubble] At least `displayName` or `user` property should be set.\");\n },\n methods: {\n onOpenChange(t) {\n this.$emit(\"update:open\", t);\n },\n /**\n * Catch and forward click event to parent\n *\n * @param {Event} event the click event\n */\n onClick(t) {\n this.$emit(\"click\", t);\n }\n }\n};\nvar d = function() {\n var e = this, r = e._self._c;\n return r(e.isPopoverComponent, { tag: \"component\", staticClass: \"user-bubble__wrapper\", attrs: { trigger: \"hover focus\", shown: e.open }, on: { \"update:open\": e.onOpenChange }, scopedSlots: e._u([{ key: \"trigger\", fn: function() {\n return [r(e.isLinkComponent, { tag: \"component\", staticClass: \"user-bubble__content\", class: { \"user-bubble__content--primary\": e.primary }, style: e.styles.content, attrs: { href: e.hasUrl ? e.url : null }, on: { click: e.onClick } }, [r(\"NcAvatar\", { staticClass: \"user-bubble__avatar\", style: e.styles.avatar, attrs: { url: e.isCustomAvatar && e.isAvatarUrl ? e.avatarImage : void 0, \"icon-class\": e.isCustomAvatar && !e.isAvatarUrl ? e.avatarImage : void 0, user: e.user, \"display-name\": e.displayName, size: e.size - e.margin * 2, \"disable-tooltip\": !0, \"disable-menu\": !0, \"show-user-status\": e.showUserStatus } }), r(\"span\", { staticClass: \"user-bubble__name\" }, [e._v(\" \" + e._s(e.displayName || e.user) + \" \")]), e.$slots.name ? r(\"span\", { staticClass: \"user-bubble__secondary\" }, [e._t(\"name\")], 2) : e._e()], 1)];\n }, proxy: !0 }], null, !0) }, [e._t(\"default\")], 2);\n}, _ = [], f = /* @__PURE__ */ s(\n m,\n d,\n _,\n !1,\n null,\n \"55ab76f1\",\n null,\n null\n);\nconst N = f.exports;\nexport {\n N as default\n};\n","import i from \"./Components/NcActionButton.mjs\";\nimport m from \"./Components/NcActionButtonGroup.mjs\";\nimport e from \"./Components/NcActionCaption.mjs\";\nimport p from \"./Components/NcActionCheckbox.mjs\";\nimport c from \"./Components/NcActionInput.mjs\";\nimport f from \"./Components/NcActionLink.mjs\";\nimport n from \"./Components/NcActionRadio.mjs\";\nimport N from \"./Components/NcActionRouter.mjs\";\nimport a from \"./Components/NcActions.mjs\";\nimport s from \"./Components/NcActionSeparator.mjs\";\nimport l from \"./Components/NcActionText.mjs\";\nimport u from \"./Components/NcActionTextEditable.mjs\";\nimport d from \"./Components/NcAppContent.mjs\";\nimport A from \"./Components/NcAppContentDetails.mjs\";\nimport g from \"./Components/NcAppContentList.mjs\";\nimport b from \"./Components/NcAppNavigation.mjs\";\nimport S from \"./Components/NcAppNavigationCaption.mjs\";\nimport v from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport T from \"./Components/NcAppNavigationItem.mjs\";\nimport x from \"./Components/NcAppNavigationNew.mjs\";\nimport C from \"./Components/NcAppNavigationNewItem.mjs\";\nimport k from \"./Components/NcAppNavigationSettings.mjs\";\nimport h from \"./Components/NcAppNavigationSpacer.mjs\";\nimport I from \"./Components/NcAppSettingsDialog.mjs\";\nimport y from \"./Components/NcAppSettingsSection.mjs\";\nimport P from \"./Components/NcAppSidebar.mjs\";\nimport B from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as D } from \"./chunks/index-a01ff595.mjs\";\nimport { u as tt } from \"./chunks/index-a01ff595.mjs\";\nimport j from \"./Components/NcBreadcrumb.mjs\";\nimport R from \"./Components/NcBreadcrumbs.mjs\";\nimport O from \"./Components/NcButton.mjs\";\nimport _ from \"./Components/NcCheckboxRadioSwitch.mjs\";\nimport E from \"./Components/NcColorPicker.mjs\";\nimport L from \"./Components/NcContent.mjs\";\nimport M from \"./Components/NcCounterBubble.mjs\";\nimport w from \"./Components/NcDashboardWidget.mjs\";\nimport F from \"./Components/NcDashboardWidgetItem.mjs\";\nimport z from \"./Components/NcDateTime.mjs\";\nimport G from \"./Components/NcDateTimePicker.mjs\";\nimport W from \"./Components/NcDateTimePickerNative.mjs\";\nimport H from \"./Components/NcDialog.mjs\";\nimport V from \"./Components/NcDialogButton.mjs\";\nimport U from \"./Components/NcEmojiPicker.mjs\";\nimport $ from \"./Components/NcEmptyContent.mjs\";\nimport q from \"./Components/NcGuestContent.mjs\";\nimport J from \"./Components/NcHeaderMenu.mjs\";\nimport { N as K } from \"./chunks/index-20a9ace9.mjs\";\nimport Q from \"./Components/NcIconSvgWrapper.mjs\";\nimport X from \"./Components/NcListItem.mjs\";\nimport Y from \"./Components/NcListItemIcon.mjs\";\nimport Z from \"./Components/NcLoadingIcon.mjs\";\nimport oo from \"./Components/NcModal.mjs\";\nimport ro from \"./Components/NcNoteCard.mjs\";\nimport to from \"./Components/NcPasswordField.mjs\";\nimport io from \"./Components/NcPopover.mjs\";\nimport mo from \"./Components/NcProgressBar.mjs\";\nimport eo from \"./Components/NcRelatedResourcesPanel.mjs\";\nimport { N as po } from \"./chunks/index-5f2a5f57.mjs\";\nimport { r as mt } from \"./chunks/index-5f2a5f57.mjs\";\nimport co, { NcAutoCompleteResult as fo } from \"./Components/NcRichContenteditable.mjs\";\nimport { N as no } from \"./chunks/NcRichText-25edeb8e.mjs\";\nimport \"./chunks/referencePickerModal-58498cac.mjs\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport No from \"./Components/NcSelect.mjs\";\nimport \"./chunks/l10n-b6d21146.mjs\";\nimport ao from \"./Components/NcTextField.mjs\";\nimport \"@nextcloud/event-bus\";\nimport \"vue\";\nimport so from \"./Components/NcSavingIndicatorIcon.mjs\";\nimport lo from \"./Components/NcSelectTags.mjs\";\nimport uo from \"./Components/NcSettingsInputText.mjs\";\nimport Ao from \"./Components/NcSettingsSection.mjs\";\nimport { N as go } from \"./chunks/NcSettingsSelectGroup-fd91d31a.mjs\";\nimport bo from \"./Components/NcTimezonePicker.mjs\";\nimport So from \"./Components/NcUserBubble.mjs\";\nimport vo from \"./Components/NcTextArea.mjs\";\nimport { emojiAddRecent as pt, emojiSearch as ct } from \"./Functions/emoji.mjs\";\nimport { default as nt } from \"./Functions/usernameToColor.mjs\";\nimport { directive as To } from \"./Directives/Focus.mjs\";\nimport { directive as xo } from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as at } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as lt } from \"./Mixins/isFullscreen.mjs\";\nimport { default as dt } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip as Co } from \"floating-vue\";\nimport { VTooltip as gt } from \"floating-vue\";\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst ko = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton: i,\n NcActionButtonGroup: m,\n NcActionCaption: e,\n NcActionCheckbox: p,\n NcActionInput: c,\n NcActionLink: f,\n NcActionRadio: n,\n NcActionRouter: N,\n NcActionSeparator: s,\n NcActionText: l,\n NcActionTextEditable: u,\n NcActions: a,\n NcAppContent: d,\n NcAppContentDetails: A,\n NcAppContentList: g,\n NcAppNavigation: b,\n NcAppNavigationCaption: S,\n NcAppNavigationIconBullet: v,\n NcAppNavigationItem: T,\n NcAppNavigationNew: x,\n NcAppNavigationNewItem: C,\n NcAppNavigationSettings: k,\n NcAppNavigationSpacer: h,\n NcAppSettingsDialog: I,\n NcAppSettingsSection: y,\n NcAppSidebar: P,\n NcAppSidebarTab: B,\n NcAutoCompleteResult: fo,\n NcAvatar: D,\n NcBreadcrumb: j,\n NcBreadcrumbs: R,\n NcButton: O,\n NcCheckboxRadioSwitch: _,\n NcColorPicker: E,\n NcContent: L,\n NcCounterBubble: M,\n NcDashboardWidget: w,\n NcDashboardWidgetItem: F,\n NcDateTime: z,\n NcDateTimePicker: G,\n NcDateTimePickerNative: W,\n NcDialog: H,\n NcDialogButton: V,\n NcEmojiPicker: U,\n NcEmptyContent: $,\n NcGuestContent: q,\n NcHeaderMenu: J,\n NcHighlight: K,\n NcIconSvgWrapper: Q,\n NcListItem: X,\n NcListItemIcon: Y,\n NcLoadingIcon: Z,\n NcMentionBubble: po,\n NcModal: oo,\n NcNoteCard: ro,\n NcPasswordField: to,\n NcPopover: io,\n NcProgressBar: mo,\n NcRelatedResourcesPanel: eo,\n NcRichContenteditable: co,\n NcRichText: no,\n NcSavingIndicatorIcon: so,\n NcSelect: No,\n NcSelectTags: lo,\n NcSettingsInputText: uo,\n NcSettingsSection: Ao,\n NcSettingsSelectGroup: go,\n NcTextArea: vo,\n NcTextField: ao,\n NcTimezonePicker: bo,\n NcUserBubble: So\n}, Symbol.toStringTag, { value: \"Module\" }));\n/**\n * @copyright 2022 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst Yr = (o) => o.type === \"click\" || o.type === \"keydown\" && o.key === \"Enter\";\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst ho = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: To,\n Linkify: xo,\n Tooltip: Co\n}, Symbol.toStringTag, { value: \"Module\" })), Zr = {\n install(o) {\n Object.entries(ko).forEach(([t, r]) => {\n o.component(r.name || t, r);\n }), Object.entries(ho).forEach(([t, r]) => {\n o.directive(t, r);\n });\n }\n};\nexport {\n To as Focus,\n xo as Linkify,\n i as NcActionButton,\n m as NcActionButtonGroup,\n e as NcActionCaption,\n p as NcActionCheckbox,\n c as NcActionInput,\n f as NcActionLink,\n n as NcActionRadio,\n N as NcActionRouter,\n s as NcActionSeparator,\n l as NcActionText,\n u as NcActionTextEditable,\n a as NcActions,\n d as NcAppContent,\n A as NcAppContentDetails,\n g as NcAppContentList,\n b as NcAppNavigation,\n S as NcAppNavigationCaption,\n v as NcAppNavigationIconBullet,\n T as NcAppNavigationItem,\n x as NcAppNavigationNew,\n C as NcAppNavigationNewItem,\n k as NcAppNavigationSettings,\n h as NcAppNavigationSpacer,\n I as NcAppSettingsDialog,\n y as NcAppSettingsSection,\n P as NcAppSidebar,\n B as NcAppSidebarTab,\n fo as NcAutoCompleteResult,\n D as NcAvatar,\n j as NcBreadcrumb,\n R as NcBreadcrumbs,\n O as NcButton,\n _ as NcCheckboxRadioSwitch,\n E as NcColorPicker,\n L as NcContent,\n M as NcCounterBubble,\n w as NcDashboardWidget,\n F as NcDashboardWidgetItem,\n z as NcDateTime,\n G as NcDateTimePicker,\n W as NcDateTimePickerNative,\n H as NcDialog,\n V as NcDialogButton,\n U as NcEmojiPicker,\n $ as NcEmptyContent,\n q as NcGuestContent,\n J as NcHeaderMenu,\n K as NcHighlight,\n Q as NcIconSvgWrapper,\n X as NcListItem,\n Y as NcListItemIcon,\n Z as NcLoadingIcon,\n po as NcMentionBubble,\n oo as NcModal,\n ro as NcNoteCard,\n to as NcPasswordField,\n io as NcPopover,\n mo as NcProgressBar,\n eo as NcRelatedResourcesPanel,\n co as NcRichContenteditable,\n no as NcRichText,\n so as NcSavingIndicatorIcon,\n No as NcSelect,\n lo as NcSelectTags,\n uo as NcSettingsInputText,\n Ao as NcSettingsSection,\n go as NcSettingsSelectGroup,\n vo as NcTextArea,\n ao as NcTextField,\n bo as NcTimezonePicker,\n So as NcUserBubble,\n Zr as NextcloudVuePlugin,\n gt as Tooltip,\n at as clickOutsideOptions,\n pt as emojiAddRecent,\n ct as emojiSearch,\n Yr as isA11yActivation,\n lt as isFullscreen,\n dt as isMobile,\n mt as richEditor,\n tt as userStatus,\n nt as usernameToColor\n};\n","<!--\n - @copyright Copyright (c) 2023 Richard Steinmetz <richard@steinmetz.cloud>\n -\n - @author Richard Steinmetz <richard@steinmetz.cloud>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU General Public License as published by\n - the Free Software Foundation, either version 3 of the License, or\n - (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU General Public License for more details.\n -\n - You should have received a copy of the GNU General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<NcDashboardWidget :items=\"items\"\n\t\t:show-more-label=\"showMoreLabel\"\n\t\t:show-more-url=\"showMoreUrl\"\n\t\t:loading=\"loading\"\n\t\t:show-items-and-empty-content=\"!!halfEmptyContentMessage\"\n\t\t:half-empty-content-message=\"halfEmptyContentMessage\">\n\t\t<template #default=\"{ item }\">\n\t\t\t<NcDashboardWidgetItem :target-url=\"item.link\"\n\t\t\t\t:overlay-icon-url=\"item.overlayIconUrl ? item.overlayIconUrl : ''\"\n\t\t\t\t:main-text=\"item.title\"\n\t\t\t\t:sub-text=\"item.subtitle\">\n\t\t\t\t<template #avatar>\n\t\t\t\t\t<template v-if=\"item.iconUrl\">\n\t\t\t\t\t\t<NcAvatar :size=\"44\" :url=\"item.iconUrl\" />\n\t\t\t\t\t</template>\n\t\t\t\t</template>\n\t\t\t</NcDashboardWidgetItem>\n\t\t</template>\n\t\t<template #empty-content>\n\t\t\t<NcEmptyContent v-if=\"items.length === 0\"\n\t\t\t\t:description=\"emptyContentMessage\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckIcon v-if=\"emptyContentMessage\" :size=\"65\" />\n\t\t\t\t</template>\n\t\t\t\t<template #action>\n\t\t\t\t\t<NcButton v-if=\"setupButton\" :href=\"setupButton.link\">\n\t\t\t\t\t\t{{ setupButton.text }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</template>\n\t</NcDashboardWidget>\n</template>\n\n<script>\nimport {\n\tNcAvatar,\n\tNcDashboardWidget,\n\tNcDashboardWidgetItem,\n\tNcEmptyContent,\n\tNcButton,\n} from '@nextcloud/vue'\nimport CheckIcon from 'vue-material-design-icons/Check.vue'\n\nexport default {\n\tname: 'ApiDashboardWidget',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcDashboardWidget,\n\t\tNcDashboardWidgetItem,\n\t\tNcEmptyContent,\n\t\tNcButton,\n\t\tCheckIcon,\n\t},\n\tprops: {\n\t\twidget: {\n\t\t\ttype: [Object, undefined],\n\t\t\tdefault: undefined,\n\t\t},\n\t\tdata: {\n\t\t\ttype: [Object, undefined],\n\t\t\tdefault: undefined,\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\t/** @return {object[]} */\n\t\titems() {\n\t\t\treturn this.data?.items ?? []\n\t\t},\n\n\t\t/** @return {string} */\n\t\temptyContentMessage() {\n\t\t\treturn this.data?.emptyContentMessage ?? ''\n\t\t},\n\n\t\t/** @return {string} */\n\t\thalfEmptyContentMessage() {\n\t\t\treturn this.data?.halfEmptyContentMessage ?? ''\n\t\t},\n\n\t\t/** @return {object|undefined} */\n\t\tnewButton() {\n\t\t\t// TODO: Render new button in the template\n\t\t\t// I couldn't find a widget that makes use of the button. Furthermore, there is no convenient\n\t\t\t// way to render such a button using the official widget component.\n\t\t\treturn this.widget?.buttons?.find(button => button.type === 'new')\n\t\t},\n\n\t\t/** @return {object|undefined} */\n\t\tmoreButton() {\n\t\t\treturn this.widget?.buttons?.find(button => button.type === 'more')\n\t\t},\n\n\t\t/** @return {object|undefined} */\n\t\tsetupButton() {\n\t\t\treturn this.widget?.buttons?.find(button => button.type === 'setup')\n\t\t},\n\n\t\t/** @return {string|undefined} */\n\t\tshowMoreLabel() {\n\t\t\treturn this.moreButton?.text\n\t\t},\n\n\t\t/** @return {string|undefined} */\n\t\tshowMoreUrl() {\n\t\t\treturn this.moreButton?.link\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ApiDashboardWidget.vue?vue&type=template&id=d91c9686&scoped=true\"\nimport script from \"./ApiDashboardWidget.vue?vue&type=script&lang=js\"\nexport * from \"./ApiDashboardWidget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d91c9686\",\n null\n \n)\n\nexport default component.exports","<template>\n\t<div id=\"app-dashboard\">\n\t\t<h2>{{ greeting.text }}</h2>\n\t\t<ul class=\"statuses\">\n\t\t\t<li v-for=\"status in sortedRegisteredStatus\"\n\t\t\t\t:id=\"'status-' + status\"\n\t\t\t\t:key=\"status\">\n\t\t\t\t<div :ref=\"'status-' + status\" />\n\t\t\t</li>\n\t\t</ul>\n\n\t\t<Draggable v-model=\"layout\"\n\t\t\tclass=\"panels\"\n\t\t\tv-bind=\"{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3}\"\n\t\t\thandle=\".panel--header\"\n\t\t\t@end=\"saveLayout\">\n\t\t\t<template v-for=\"panelId in layout\">\n\t\t\t\t<div v-if=\"isApiWidgetV2(panels[panelId].id)\"\n\t\t\t\t\t:key=\"`${panels[panelId].id}-v2`\"\n\t\t\t\t\tclass=\"panel\">\n\t\t\t\t\t<div class=\"panel--header\">\n\t\t\t\t\t\t<h2>\n\t\t\t\t\t\t\t<span :aria-labelledby=\"`panel-${panels[panelId].id}--header--icon--description`\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t:class=\"apiWidgets[panels[panelId].id].icon_class\"\n\t\t\t\t\t\t\t\trole=\"img\" />\n\t\t\t\t\t\t\t{{ apiWidgets[panels[panelId].id].title }}\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t<span :id=\"`panel-${panels[panelId].id}--header--icon--description`\" class=\"hidden-visually\">\n\t\t\t\t\t\t\t{{ t('dashboard', '\"{title} icon\"', { title: apiWidgets[panels[panelId].id].title }) }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"panel--content\">\n\t\t\t\t\t\t<ApiDashboardWidget :widget=\"apiWidgets[panels[panelId].id]\"\n\t\t\t\t\t\t\t:data=\"apiWidgetItems[panels[panelId].id]\"\n\t\t\t\t\t\t\t:loading=\"loadingItems\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div v-else :key=\"panels[panelId].id\" class=\"panel\">\n\t\t\t\t\t<div class=\"panel--header\">\n\t\t\t\t\t\t<h2>\n\t\t\t\t\t\t\t<span :aria-labelledby=\"`panel-${panels[panelId].id}--header--icon--description`\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t:class=\"panels[panelId].iconClass\"\n\t\t\t\t\t\t\t\trole=\"img\" />\n\t\t\t\t\t\t\t{{ panels[panelId].title }}\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t<span :id=\"`panel-${panels[panelId].id}--header--icon--description`\" class=\"hidden-visually\"> {{ t('dashboard', '\"{title} icon\"', { title: panels[panelId].title }) }} </span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"panel--content\" :class=\"{ loading: !panels[panelId].mounted }\">\n\t\t\t\t\t\t<div :ref=\"panels[panelId].id\" :data-id=\"panels[panelId].id\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</Draggable>\n\n\t\t<div class=\"footer\">\n\t\t\t<NcButton @click=\"showModal\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('dashboard', 'Customize') }}\n\t\t\t</NcButton>\n\t\t</div>\n\n\t\t<NcModal v-if=\"modal\" size=\"large\" @close=\"closeModal\">\n\t\t\t<div class=\"modal__content\">\n\t\t\t\t<h3>{{ t('dashboard', 'Edit widgets') }}</h3>\n\t\t\t\t<ol class=\"panels\">\n\t\t\t\t\t<li v-for=\"status in sortedAllStatuses\" :key=\"status\" :class=\"'panel-' + status\">\n\t\t\t\t\t\t<input :id=\"'status-checkbox-' + status\"\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tclass=\"checkbox\"\n\t\t\t\t\t\t\t:checked=\"isStatusActive(status)\"\n\t\t\t\t\t\t\t@input=\"updateStatusCheckbox(status, $event.target.checked)\">\n\t\t\t\t\t\t<label :for=\"'status-checkbox-' + status\">\n\t\t\t\t\t\t\t<span :class=\"statusInfo[status].icon\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{{ statusInfo[status].text }}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</li>\n\t\t\t\t</ol>\n\t\t\t\t<Draggable v-model=\"layout\"\n\t\t\t\t\tclass=\"panels\"\n\t\t\t\t\ttag=\"ol\"\n\t\t\t\t\tv-bind=\"{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3}\"\n\t\t\t\t\thandle=\".draggable\"\n\t\t\t\t\t@end=\"saveLayout\">\n\t\t\t\t\t<li v-for=\"panel in sortedPanels\" :key=\"panel.id\" :class=\"'panel-' + panel.id\">\n\t\t\t\t\t\t<input :id=\"'panel-checkbox-' + panel.id\"\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tclass=\"checkbox\"\n\t\t\t\t\t\t\t:checked=\"isActive(panel)\"\n\t\t\t\t\t\t\t@input=\"updateCheckbox(panel, $event.target.checked)\">\n\t\t\t\t\t\t<label :for=\"'panel-checkbox-' + panel.id\" :class=\"{ draggable: isActive(panel) }\">\n\t\t\t\t\t\t\t<span :class=\"panel.iconClass\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{{ panel.title }}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</li>\n\t\t\t\t</Draggable>\n\n\t\t\t\t<a v-if=\"isAdmin\" :href=\"appStoreUrl\" class=\"button\">{{ t('dashboard', 'Get more widgets from the App Store') }}</a>\n\n\t\t\t\t<div v-if=\"statuses.weather && isStatusActive('weather')\">\n\t\t\t\t\t<h3>{{ t('dashboard', 'Weather service') }}</h3>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{{ t('dashboard', 'For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.') }}\n\t\t\t\t\t</p>\n\t\t\t\t\t<p class=\"credits--end\">\n\t\t\t\t\t\t<a href=\"https://api.met.no/doc/TermsOfService\" target=\"_blank\" rel=\"noopener\">{{ t('dashboard', 'Weather data from Met.no') }}</a>,\n\t\t\t\t\t\t<a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\" target=\"_blank\" rel=\"noopener\">{{ t('dashboard', 'geocoding with Nominatim') }}</a>,\n\t\t\t\t\t\t<a href=\"https://www.opentopodata.org/#public-api\" target=\"_blank\" rel=\"noopener\">{{ t('dashboard', 'elevation data from OpenTopoData') }}</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</NcModal>\n\t</div>\n</template>\n\n<script>\nimport { generateUrl, generateOcsUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport axios from '@nextcloud/axios'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport Draggable from 'vuedraggable'\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\nimport Pencil from 'vue-material-design-icons/Pencil.vue'\nimport Vue from 'vue'\n\nimport isMobile from './mixins/isMobile.js'\nimport ApiDashboardWidget from './components/ApiDashboardWidget.vue'\n\nconst panels = loadState('dashboard', 'panels')\nconst firstRun = loadState('dashboard', 'firstRun')\n\nconst statusInfo = {\n\tweather: {\n\t\ttext: t('dashboard', 'Weather'),\n\t\ticon: 'icon-weather-status',\n\t},\n\tstatus: {\n\t\ttext: t('dashboard', 'Status'),\n\t\ticon: 'icon-user-status-online',\n\t},\n}\n\nexport default {\n\tname: 'DashboardApp',\n\tcomponents: {\n\t\tApiDashboardWidget,\n\t\tNcButton,\n\t\tDraggable,\n\t\tNcModal,\n\t\tPencil,\n\t},\n\tmixins: [\n\t\tisMobile,\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tisAdmin: getCurrentUser().isAdmin,\n\t\t\ttimer: new Date(),\n\t\t\tregisteredStatus: [],\n\t\t\tcallbacks: {},\n\t\t\tcallbacksStatus: {},\n\t\t\tallCallbacksStatus: {},\n\t\t\tstatusInfo,\n\t\t\tenabledStatuses: loadState('dashboard', 'statuses'),\n\t\t\tpanels,\n\t\t\tfirstRun,\n\t\t\tdisplayName: getCurrentUser()?.displayName,\n\t\t\tuid: getCurrentUser()?.uid,\n\t\t\tlayout: loadState('dashboard', 'layout').filter((panelId) => panels[panelId]),\n\t\t\tmodal: false,\n\t\t\tappStoreUrl: generateUrl('/settings/apps/dashboard'),\n\t\t\tstatuses: {},\n\t\t\tapiWidgets: [],\n\t\t\tapiWidgetItems: {},\n\t\t\tloadingItems: true,\n\t\t}\n\t},\n\tcomputed: {\n\t\tgreeting() {\n\t\t\tconst time = this.timer.getHours()\n\n\t\t\t// Determine part of the day\n\t\t\tlet partOfDay\n\t\t\tif (time >= 22 || time < 5) {\n\t\t\t\tpartOfDay = 'night'\n\t\t\t} else if (time >= 18) {\n\t\t\t\tpartOfDay = 'evening'\n\t\t\t} else if (time >= 12) {\n\t\t\t\tpartOfDay = 'afternoon'\n\t\t\t} else {\n\t\t\t\tpartOfDay = 'morning'\n\t\t\t}\n\n\t\t\t// Define the greetings\n\t\t\tconst good = {\n\t\t\t\tmorning: {\n\t\t\t\t\tgeneric: t('dashboard', 'Good morning'),\n\t\t\t\t\twithName: t('dashboard', 'Good morning, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t\tafternoon: {\n\t\t\t\t\tgeneric: t('dashboard', 'Good afternoon'),\n\t\t\t\t\twithName: t('dashboard', 'Good afternoon, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t\tevening: {\n\t\t\t\t\tgeneric: t('dashboard', 'Good evening'),\n\t\t\t\t\twithName: t('dashboard', 'Good evening, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t\tnight: {\n\t\t\t\t\t// Don't use \"Good night\" as it's not a greeting\n\t\t\t\t\tgeneric: t('dashboard', 'Hello'),\n\t\t\t\t\twithName: t('dashboard', 'Hello, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t}\n\n\t\t\t// Figure out which greeting to show\n\t\t\tconst shouldShowName = this.displayName && this.uid !== this.displayName\n\t\t\treturn { text: shouldShowName ? good[partOfDay].withName : good[partOfDay].generic }\n\t\t},\n\n\t\tisActive() {\n\t\t\treturn (panel) => this.layout.indexOf(panel.id) > -1\n\t\t},\n\t\tisStatusActive() {\n\t\t\treturn (status) => !(status in this.enabledStatuses) || this.enabledStatuses[status]\n\t\t},\n\n\t\tsortedAllStatuses() {\n\t\t\treturn Object.keys(this.allCallbacksStatus).slice().sort(this.sortStatuses)\n\t\t},\n\t\tsortedPanels() {\n\t\t\treturn Object.values(this.panels).sort((a, b) => {\n\t\t\t\tconst indexA = this.layout.indexOf(a.id)\n\t\t\t\tconst indexB = this.layout.indexOf(b.id)\n\t\t\t\tif (indexA === -1 || indexB === -1) {\n\t\t\t\t\treturn indexB - indexA || a.id - b.id\n\t\t\t\t}\n\t\t\t\treturn indexA - indexB || a.id - b.id\n\t\t\t})\n\t\t},\n\t\tsortedRegisteredStatus() {\n\t\t\treturn this.registeredStatus.slice().sort(this.sortStatuses)\n\t\t},\n\t},\n\n\twatch: {\n\t\tcallbacks() {\n\t\t\tthis.rerenderPanels()\n\t\t},\n\t\tcallbacksStatus() {\n\t\t\tfor (const app in this.callbacksStatus) {\n\t\t\t\tconst element = this.$refs['status-' + app]\n\t\t\t\tif (this.statuses[app] && this.statuses[app].mounted) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\tthis.callbacksStatus[app](element[0])\n\t\t\t\t\tVue.set(this.statuses, app, { mounted: true })\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('Failed to register panel in the frontend as no backend data was provided for ' + app)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\n\tasync created() {\n\t\tawait this.fetchApiWidgets()\n\n\t\tconst apiWidgetIdsToFetch = Object\n\t\t\t.values(this.apiWidgets)\n\t\t\t.filter(widget => this.isApiWidgetV2(widget.id))\n\t\t\t.map(widget => widget.id)\n\t\tawait Promise.all(apiWidgetIdsToFetch.map(id => this.fetchApiWidgetItems([id], true)))\n\n\t\tfor (const widget of Object.values(this.apiWidgets)) {\n\t\t\tif (widget.reload_interval > 0) {\n\t\t\t\tsetInterval(async () => {\n\t\t\t\t\tawait this.fetchApiWidgetItems([widget.id], true)\n\t\t\t\t}, widget.reload_interval * 1000)\n\t\t\t}\n\t\t}\n\t},\n\tmounted() {\n\t\tthis.updateSkipLink()\n\t\twindow.addEventListener('scroll', this.handleScroll)\n\n\t\tsetInterval(() => {\n\t\t\tthis.timer = new Date()\n\t\t}, 30000)\n\n\t\tif (this.firstRun) {\n\t\t\twindow.addEventListener('scroll', this.disableFirstrunHint)\n\t\t}\n\t},\n\tdestroyed() {\n\t\twindow.removeEventListener('scroll', this.handleScroll)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Method to register panels that will be called by the integrating apps\n\t\t *\n\t\t * @param {string} app The unique app id for the widget\n\t\t * @param {Function} callback The callback function to register a panel which gets the DOM element passed as parameter\n\t\t */\n\t\tregister(app, callback) {\n\t\t\tVue.set(this.callbacks, app, callback)\n\t\t},\n\t\tregisterStatus(app, callback) {\n\t\t\t// always save callbacks in case user enables the status later\n\t\t\tVue.set(this.allCallbacksStatus, app, callback)\n\t\t\t// register only if status is enabled or missing from config\n\t\t\tif (this.isStatusActive(app)) {\n\t\t\t\tthis.registeredStatus.push(app)\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tVue.set(this.callbacksStatus, app, callback)\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\trerenderPanels() {\n\t\t\tfor (const app in this.callbacks) {\n\t\t\t\t// TODO: Properly rerender v2 widgets\n\t\t\t\tif (this.isApiWidgetV2(this.panels[app].id)) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst element = this.$refs[app]\n\t\t\t\tif (this.layout.indexOf(app) === -1) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (this.panels[app] && this.panels[app].mounted) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\tthis.callbacks[app](element[0], {\n\t\t\t\t\t\twidget: this.panels[app],\n\t\t\t\t\t})\n\t\t\t\t\tVue.set(this.panels[app], 'mounted', true)\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('Failed to register panel in the frontend as no backend data was provided for ' + app)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsaveLayout() {\n\t\t\taxios.post(generateUrl('/apps/dashboard/layout'), {\n\t\t\t\tlayout: this.layout.join(','),\n\t\t\t})\n\t\t},\n\t\tsaveStatuses() {\n\t\t\taxios.post(generateUrl('/apps/dashboard/statuses'), {\n\t\t\t\tstatuses: JSON.stringify(this.enabledStatuses),\n\t\t\t})\n\t\t},\n\t\tshowModal() {\n\t\t\tthis.modal = true\n\t\t\tthis.firstRun = false\n\t\t},\n\t\tcloseModal() {\n\t\t\tthis.modal = false\n\t\t},\n\t\tupdateCheckbox(panel, currentValue) {\n\t\t\tconst index = this.layout.indexOf(panel.id)\n\t\t\tif (!currentValue && index > -1) {\n\t\t\t\tthis.layout.splice(index, 1)\n\n\t\t\t} else {\n\t\t\t\tthis.layout.push(panel.id)\n\t\t\t}\n\t\t\tVue.set(this.panels[panel.id], 'mounted', false)\n\t\t\tthis.saveLayout()\n\t\t\tthis.$nextTick(() => this.rerenderPanels())\n\t\t},\n\t\tdisableFirstrunHint() {\n\t\t\twindow.removeEventListener('scroll', this.disableFirstrunHint)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.firstRun = false\n\t\t\t}, 1000)\n\t\t},\n\t\tupdateSkipLink() {\n\t\t\t// Make sure \"Skip to main content\" link points to the app content\n\t\t\tdocument.getElementsByClassName('skip-navigation')[0].setAttribute('href', '#app-dashboard')\n\t\t},\n\t\tupdateStatusCheckbox(app, checked) {\n\t\t\tif (checked) {\n\t\t\t\tthis.enableStatus(app)\n\t\t\t} else {\n\t\t\t\tthis.disableStatus(app)\n\t\t\t}\n\t\t},\n\t\tenableStatus(app) {\n\t\t\tthis.enabledStatuses[app] = true\n\t\t\tthis.registerStatus(app, this.allCallbacksStatus[app])\n\t\t\tthis.saveStatuses()\n\t\t},\n\t\tdisableStatus(app) {\n\t\t\tthis.enabledStatuses[app] = false\n\t\t\tconst i = this.registeredStatus.findIndex((s) => s === app)\n\t\t\tif (i !== -1) {\n\t\t\t\tthis.registeredStatus.splice(i, 1)\n\t\t\t\tVue.set(this.statuses, app, { mounted: false })\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tVue.delete(this.callbacksStatus, app)\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis.saveStatuses()\n\t\t},\n\t\tsortStatuses(a, b) {\n\t\t\tconst al = a.toLowerCase()\n\t\t\tconst bl = b.toLowerCase()\n\t\t\treturn al > bl\n\t\t\t\t? 1\n\t\t\t\t: al < bl\n\t\t\t\t\t? -1\n\t\t\t\t\t: 0\n\t\t},\n\t\thandleScroll() {\n\t\t\tif (window.scrollY > 70) {\n\t\t\t\tdocument.body.classList.add('dashboard--scrolled')\n\t\t\t} else {\n\t\t\t\tdocument.body.classList.remove('dashboard--scrolled')\n\t\t\t}\n\t\t},\n\t\tasync fetchApiWidgets() {\n\t\t\tconst response = await axios.get(generateOcsUrl('/apps/dashboard/api/v1/widgets'))\n\t\t\tthis.apiWidgets = response.data.ocs.data\n\t\t},\n\t\tasync fetchApiWidgetItems(widgetIds, merge = false) {\n\t\t\ttry {\n\t\t\t\tconst url = generateOcsUrl('/apps/dashboard/api/v2/widget-items')\n\t\t\t\tconst params = new URLSearchParams(widgetIds.map(id => ['widgets[]', id]))\n\t\t\t\tconst response = await axios.get(`${url}?${params.toString()}`)\n\t\t\t\tconst widgetItems = response.data.ocs.data\n\t\t\t\tif (merge) {\n\t\t\t\t\tthis.apiWidgetItems = Object.assign({}, this.apiWidgetItems, widgetItems)\n\t\t\t\t} else {\n\t\t\t\t\tthis.apiWidgetItems = widgetItems\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loadingItems = false\n\t\t\t}\n\t\t},\n\t\tisApiWidgetV2(id) {\n\t\t\tfor (const widget of Object.values(this.apiWidgets)) {\n\t\t\t\tif (widget.id === id && widget.item_api_versions.includes(2)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n#app-dashboard {\n\twidth: 100%;\n\tmin-height: 100%;\n\tbackground-size: cover;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\tbackground-attachment: fixed;\n\n\t> h2 {\n\t\tcolor: var(--color-primary-element-text);\n\t\ttext-align: center;\n\t\tfont-size: 32px;\n\t\tline-height: 130%;\n\t\tpadding: 1rem 0;\n\t}\n}\n\n.panels {\n\twidth: auto;\n\tmargin: auto;\n\tmax-width: 1800px;\n\tdisplay: flex;\n\tjustify-content: center;\n\tflex-direction: row;\n\talign-items: flex-start;\n\tflex-wrap: wrap;\n}\n\n.panel, .panels > div {\n\twidth: 320px;\n\tmax-width: 100%;\n\tmargin: 16px;\n\talign-self: stretch;\n\tbackground-color: var(--color-main-background-blur);\n\t-webkit-backdrop-filter: var(--filter-background-blur);\n\tbackdrop-filter: var(--filter-background-blur);\n\tborder-radius: var(--border-radius-rounded);\n\n\t#body-user.theme--highcontrast & {\n\t\tborder: 2px solid var(--color-border);\n\t}\n\n\t&.sortable-ghost {\n\t\t opacity: 0.1;\n\t}\n\n\t& > .panel--header {\n\t\tdisplay: flex;\n\t\tz-index: 1;\n\t\ttop: 50px;\n\t\tpadding: 16px;\n\t\tcursor: grab;\n\n\t\t&, ::v-deep * {\n\t\t\t-webkit-touch-callout: none;\n\t\t\t-webkit-user-select: none;\n\t\t\t-khtml-user-select: none;\n\t\t\t-moz-user-select: none;\n\t\t\t-ms-user-select: none;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tcursor: grabbing;\n\t\t}\n\n\t\ta {\n\t\t\tflex-grow: 1;\n\t\t}\n\n\t\t> h2 {\n\t\t\tdisplay: block;\n\t\t\talign-items: center;\n\t\t\tflex-grow: 1;\n\t\t\tmargin: 0;\n\t\t\tfont-size: 20px;\n\t\t\tline-height: 24px;\n\t\t\tfont-weight: bold;\n\t\t\tpadding: 16px 8px;\n\t\t\theight: 56px;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcursor: grab;\n\t\t\tspan {\n\t\t\t\tbackground-size: 32px;\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t\tmargin-right: 16px;\n\t\t\t\tbackground-position: center;\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: -6px;\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .panel--content {\n\t\tmargin: 0 16px 16px 16px;\n\t\theight: 424px;\n\t\t// We specifically do not want scrollbars inside widgets\n\t\toverflow: visible;\n\t}\n\n\t// No need to extend height of widgets if only one column is shown\n\t@media only screen and (max-width: 709px) {\n\t\t& > .panel--content {\n\t\t\theight: auto;\n\t\t}\n\t}\n}\n\n.footer {\n\tdisplay: flex;\n\tjustify-content: center;\n\ttransition: bottom var(--animation-slow) ease-in-out;\n\tpadding: 1rem 0;\n}\n\n.edit-panels {\n\tdisplay: inline-block;\n\tmargin:auto;\n\tbackground-position: 16px center;\n\tpadding: 12px 16px;\n\tpadding-left: 36px;\n\tborder-radius: var(--border-radius-pill);\n\tmax-width: 200px;\n\topacity: 1;\n\ttext-align: center;\n}\n\n.button,\n.button-vue,\n.edit-panels,\n.statuses ::v-deep .action-item .action-item__menutoggle,\n.statuses ::v-deep .action-item.action-item--open .action-item__menutoggle {\n\tbackground-color: var(--color-main-background-blur);\n\t-webkit-backdrop-filter: var(--filter-background-blur);\n\tbackdrop-filter: var(--filter-background-blur);\n\topacity: 1 !important;\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbackground-color: var(--color-background-hover)!important;\n\t}\n\t&:focus-visible {\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\n\t\toutline: 2px solid var(--color-main-text) !important;\n\t}\n}\n\n.modal__content {\n\tpadding: 32px 16px;\n\ttext-align: center;\n\n\tol {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tjustify-content: center;\n\t\tlist-style-type: none;\n\t\tpadding-bottom: 16px;\n\t}\n\tli {\n\t\tlabel {\n\t\t\tposition: relative;\n\t\t\tdisplay: block;\n\t\t\tpadding: 48px 16px 14px 16px;\n\t\t\tmargin: 8px;\n\t\t\twidth: 140px;\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder: 2px solid var(--color-main-background);\n\t\t\tborder-radius: var(--border-radius-large);\n\t\t\ttext-align: left;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\n\t\t\tspan {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 16px;\n\t\t\t\twidth: 24px;\n\t\t\t\theight: 24px;\n\t\t\t\tbackground-size: 24px;\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tborder-color: var(--color-primary-element);\n\t\t\t}\n\t\t}\n\n\t\t// Do not invert status icons\n\t\t&:not(.panel-status) label span {\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\n\t\tinput[type='checkbox'].checkbox + label:before {\n\t\t\tposition: absolute;\n\t\t\tright: 12px;\n\t\t\ttop: 16px;\n\t\t}\n\n\t\tinput:focus + label {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\th3 {\n\t\tfont-weight: bold;\n\n\t\t&:not(:first-of-type) {\n\t\t\tmargin-top: 64px;\n\t\t}\n\t}\n\n\t// Adjust design of 'Get more widgets' button\n\t.button {\n\t\tdisplay: inline-block;\n\t\tpadding: 10px 16px;\n\t\tmargin: 0;\n\t}\n\n\tp {\n\t\tmax-width: 650px;\n\t\tmargin: 0 auto;\n\n\t\ta:hover,\n\t\ta:focus {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\t}\n\n\t.credits--end {\n\t\tpadding-bottom: 32px;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\ta {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n\n.flip-list-move {\n\ttransition: transform var(--animation-slow);\n}\n\n.statuses {\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: center;\n\tflex-wrap: wrap;\n\tmargin-bottom: 36px;\n\n\t& > li {\n\t\tmargin: 8px;\n\t}\n}\n</style>\n<style>\nhtml, body {\n\tbackground-attachment: fixed;\n}\n\n#body-user #header {\n\tposition: fixed;\n}\n\n#content {\n\toverflow: auto;\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=0&id=9fd44988&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=0&id=9fd44988&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=1&id=9fd44988&prod&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=1&id=9fd44988&prod&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DashboardApp.vue?vue&type=template&id=9fd44988&scoped=true\"\nimport script from \"./DashboardApp.vue?vue&type=script&lang=js\"\nexport * from \"./DashboardApp.vue?vue&type=script&lang=js\"\nimport style0 from \"./DashboardApp.vue?vue&type=style&index=0&id=9fd44988&prod&lang=scss&scoped=true\"\nimport style1 from \"./DashboardApp.vue?vue&type=style&index=1&id=9fd44988&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9fd44988\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app-dashboard\"}},[_c('h2',[_vm._v(_vm._s(_vm.greeting.text))]),_vm._v(\" \"),_c('ul',{staticClass:\"statuses\"},_vm._l((_vm.sortedRegisteredStatus),function(status){return _c('li',{key:status,attrs:{\"id\":'status-' + status}},[_c('div',{ref:'status-' + status,refInFor:true})])}),0),_vm._v(\" \"),_c('Draggable',_vm._b({staticClass:\"panels\",attrs:{\"handle\":\".panel--header\"},on:{\"end\":_vm.saveLayout},model:{value:(_vm.layout),callback:function ($$v) {_vm.layout=$$v},expression:\"layout\"}},'Draggable',{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3},false),[_vm._l((_vm.layout),function(panelId){return [(_vm.isApiWidgetV2(_vm.panels[panelId].id))?_c('div',{key:`${_vm.panels[panelId].id}-v2`,staticClass:\"panel\"},[_c('div',{staticClass:\"panel--header\"},[_c('h2',[_c('span',{class:_vm.apiWidgets[_vm.panels[panelId].id].icon_class,attrs:{\"aria-labelledby\":`panel-${_vm.panels[panelId].id}--header--icon--description`,\"aria-hidden\":\"true\",\"role\":\"img\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.apiWidgets[_vm.panels[panelId].id].title)+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\",attrs:{\"id\":`panel-${_vm.panels[panelId].id}--header--icon--description`}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('dashboard', '\"{title} icon\"', { title: _vm.apiWidgets[_vm.panels[panelId].id].title }))+\"\\n\\t\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel--content\"},[_c('ApiDashboardWidget',{attrs:{\"widget\":_vm.apiWidgets[_vm.panels[panelId].id],\"data\":_vm.apiWidgetItems[_vm.panels[panelId].id],\"loading\":_vm.loadingItems}})],1)]):_c('div',{key:_vm.panels[panelId].id,staticClass:\"panel\"},[_c('div',{staticClass:\"panel--header\"},[_c('h2',[_c('span',{class:_vm.panels[panelId].iconClass,attrs:{\"aria-labelledby\":`panel-${_vm.panels[panelId].id}--header--icon--description`,\"aria-hidden\":\"true\",\"role\":\"img\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.panels[panelId].title)+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\",attrs:{\"id\":`panel-${_vm.panels[panelId].id}--header--icon--description`}},[_vm._v(\" \"+_vm._s(_vm.t('dashboard', '\"{title} icon\"', { title: _vm.panels[panelId].title }))+\" \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel--content\",class:{ loading: !_vm.panels[panelId].mounted }},[_c('div',{ref:_vm.panels[panelId].id,refInFor:true,attrs:{\"data-id\":_vm.panels[panelId].id}})])])]})],2),_vm._v(\" \"),_c('div',{staticClass:\"footer\"},[_c('NcButton',{on:{\"click\":_vm.showModal},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('dashboard', 'Customize'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.modal)?_c('NcModal',{attrs:{\"size\":\"large\"},on:{\"close\":_vm.closeModal}},[_c('div',{staticClass:\"modal__content\"},[_c('h3',[_vm._v(_vm._s(_vm.t('dashboard', 'Edit widgets')))]),_vm._v(\" \"),_c('ol',{staticClass:\"panels\"},_vm._l((_vm.sortedAllStatuses),function(status){return _c('li',{key:status,class:'panel-' + status},[_c('input',{staticClass:\"checkbox\",attrs:{\"id\":'status-checkbox-' + status,\"type\":\"checkbox\"},domProps:{\"checked\":_vm.isStatusActive(status)},on:{\"input\":function($event){return _vm.updateStatusCheckbox(status, $event.target.checked)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":'status-checkbox-' + status}},[_c('span',{class:_vm.statusInfo[status].icon,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.statusInfo[status].text)+\"\\n\\t\\t\\t\\t\\t\")])])}),0),_vm._v(\" \"),_c('Draggable',_vm._b({staticClass:\"panels\",attrs:{\"tag\":\"ol\",\"handle\":\".draggable\"},on:{\"end\":_vm.saveLayout},model:{value:(_vm.layout),callback:function ($$v) {_vm.layout=$$v},expression:\"layout\"}},'Draggable',{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3},false),_vm._l((_vm.sortedPanels),function(panel){return _c('li',{key:panel.id,class:'panel-' + panel.id},[_c('input',{staticClass:\"checkbox\",attrs:{\"id\":'panel-checkbox-' + panel.id,\"type\":\"checkbox\"},domProps:{\"checked\":_vm.isActive(panel)},on:{\"input\":function($event){return _vm.updateCheckbox(panel, $event.target.checked)}}}),_vm._v(\" \"),_c('label',{class:{ draggable: _vm.isActive(panel) },attrs:{\"for\":'panel-checkbox-' + panel.id}},[_c('span',{class:panel.iconClass,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(panel.title)+\"\\n\\t\\t\\t\\t\\t\")])])}),0),_vm._v(\" \"),(_vm.isAdmin)?_c('a',{staticClass:\"button\",attrs:{\"href\":_vm.appStoreUrl}},[_vm._v(_vm._s(_vm.t('dashboard', 'Get more widgets from the App Store')))]):_vm._e(),_vm._v(\" \"),(_vm.statuses.weather && _vm.isStatusActive('weather'))?_c('div',[_c('h3',[_vm._v(_vm._s(_vm.t('dashboard', 'Weather service')))]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('dashboard', 'For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('p',{staticClass:\"credits--end\"},[_c('a',{attrs:{\"href\":\"https://api.met.no/doc/TermsOfService\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(_vm.t('dashboard', 'Weather data from Met.no')))]),_vm._v(\",\\n\\t\\t\\t\\t\\t\"),_c('a',{attrs:{\"href\":\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(_vm.t('dashboard', 'geocoding with Nominatim')))]),_vm._v(\",\\n\\t\\t\\t\\t\\t\"),_c('a',{attrs:{\"href\":\"https://www.opentopodata.org/#public-api\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(_vm.t('dashboard', 'elevation data from OpenTopoData')))]),_vm._v(\".\\n\\t\\t\\t\\t\")])]):_vm._e()],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport DashboardApp from './DashboardApp.vue'\nimport { translate as t } from '@nextcloud/l10n'\nimport VTooltip from '@nextcloud/vue/dist/Directives/Tooltip.js'\nimport { getRequestToken } from '@nextcloud/auth'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.directive('Tooltip', VTooltip)\n\nVue.prototype.t = t\n\n// FIXME workaround to make the sidebar work\nif (!window.OCA.Files) {\n\twindow.OCA.Files = {}\n}\n\nObject.assign(window.OCA.Files, { App: { fileList: { filesClient: OC.Files.getClient() } } }, window.OCA.Files)\n\nconst Dashboard = Vue.extend(DashboardApp)\nconst Instance = new Dashboard({}).$mount('#app-content-vue')\n\nwindow.OCA.Dashboard = {\n\tregister: (app, callback) => Instance.register(app, callback),\n\tregisterStatus: (app, callback) => Instance.registerStatus(app, callback),\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-5a35ccce] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.select-group-error[data-v-5a35ccce] {\n color: var(--color-error);\n font-size: 13px;\n padding-inline-start: var(--border-radius-large);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcSettingsSelectGroup-0d38d76b.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,yBAAyB;EACzB,eAAe;EACf,gDAAgD;AAClD\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-5a35ccce] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.select-group-error[data-v-5a35ccce] {\\n color: var(--color-error);\\n font-size: 13px;\\n padding-inline-start: var(--border-radius-large);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-b5f9046e] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nli.active[data-v-b5f9046e] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-b5f9046e] {\n pointer-events: none;\n opacity: .5;\n}\n.action--disabled[data-v-b5f9046e]:hover,\n.action--disabled[data-v-b5f9046e]:focus {\n cursor: default;\n opacity: .5;\n}\n.action--disabled *[data-v-b5f9046e] {\n opacity: 1 !important;\n}\n.action-radio[data-v-b5f9046e] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: 400;\n line-height: 44px;\n}\n.action-radio__radio[data-v-b5f9046e] {\n position: absolute;\n top: auto;\n left: -10000px;\n overflow: hidden;\n width: 1px;\n height: 1px;\n}\n.action-radio__label[data-v-b5f9046e] {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 0 14px 0 0 !important;\n}\n.action-radio__label[data-v-b5f9046e]:before {\n margin: 0 14px !important;\n}\n.action-radio--disabled[data-v-b5f9046e],\n.action-radio--disabled .action-radio__label[data-v-b5f9046e] {\n cursor: pointer;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-24f6c355.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;;;;;;;;;;;;;;;;;;;EAqBE;AACF;EACE,+CAA+C;EAC/C,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,oBAAoB;EACpB,WAAW;AACb;AACA;;EAEE,eAAe;EACf,WAAW;AACb;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,gBAAgB;EAChB,iBAAiB;AACnB;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,cAAc;EACd,gBAAgB;EAChB,UAAU;EACV,WAAW;AACb;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,WAAW;EACX,8BAA8B;AAChC;AACA;EACE,yBAAyB;AAC3B;AACA;;EAEE,eAAe;AACjB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-b5f9046e] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\nli.active[data-v-b5f9046e] {\\n background-color: var(--color-background-hover);\\n border-radius: 6px;\\n padding: 0;\\n}\\n.action--disabled[data-v-b5f9046e] {\\n pointer-events: none;\\n opacity: .5;\\n}\\n.action--disabled[data-v-b5f9046e]:hover,\\n.action--disabled[data-v-b5f9046e]:focus {\\n cursor: default;\\n opacity: .5;\\n}\\n.action--disabled *[data-v-b5f9046e] {\\n opacity: 1 !important;\\n}\\n.action-radio[data-v-b5f9046e] {\\n display: flex;\\n align-items: flex-start;\\n width: 100%;\\n height: auto;\\n margin: 0;\\n padding: 0;\\n cursor: pointer;\\n white-space: nowrap;\\n color: var(--color-main-text);\\n border: 0;\\n border-radius: 0;\\n background-color: transparent;\\n box-shadow: none;\\n font-weight: 400;\\n line-height: 44px;\\n}\\n.action-radio__radio[data-v-b5f9046e] {\\n position: absolute;\\n top: auto;\\n left: -10000px;\\n overflow: hidden;\\n width: 1px;\\n height: 1px;\\n}\\n.action-radio__label[data-v-b5f9046e] {\\n display: flex;\\n align-items: center;\\n width: 100%;\\n padding: 0 14px 0 0 !important;\\n}\\n.action-radio__label[data-v-b5f9046e]:before {\\n margin: 0 14px !important;\\n}\\n.action-radio--disabled[data-v-b5f9046e],\\n.action-radio--disabled .action-radio__label[data-v-b5f9046e] {\\n cursor: pointer;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-db4cc195] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#app-settings[data-v-db4cc195] {\n margin-top: auto;\n padding: 3px;\n}\n#app-settings__header[data-v-db4cc195] {\n box-sizing: border-box;\n margin: 0 3px 3px;\n}\n#app-settings__header .settings-button[data-v-db4cc195] {\n display: flex;\n flex: 1 1 0;\n height: 44px;\n width: 100%;\n padding: 0 14px 0 0;\n margin: 0;\n background-color: var(--color-main-background);\n box-shadow: none;\n border: 0;\n border-radius: var(--border-radius-pill);\n text-align: left;\n font-weight: 400;\n font-size: 100%;\n color: var(--color-main-text);\n line-height: 44px;\n}\n#app-settings__header .settings-button[data-v-db4cc195]:hover,\n#app-settings__header .settings-button[data-v-db4cc195]:focus {\n background-color: var(--color-background-hover);\n}\n#app-settings__header .settings-button__icon[data-v-db4cc195] {\n width: 44px;\n height: 44px;\n min-width: 44px;\n}\n#app-settings__header .settings-button__label[data-v-db4cc195] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n#app-settings__content[data-v-db4cc195] {\n display: block;\n padding: 10px;\n margin-bottom: -3px;\n max-height: 300px;\n overflow-y: auto;\n box-sizing: border-box;\n}\n.slide-up-leave-active[data-v-db4cc195],\n.slide-up-enter-active[data-v-db4cc195] {\n transition-duration: var(--animation-slow);\n transition-property: max-height, padding;\n overflow-y: hidden !important;\n}\n.slide-up-enter[data-v-db4cc195],\n.slide-up-leave-to[data-v-db4cc195] {\n max-height: 0 !important;\n padding: 0 10px !important;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-34dfc54e.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,iBAAiB;AACnB;AACA;EACE,aAAa;EACb,WAAW;EACX,YAAY;EACZ,WAAW;EACX,mBAAmB;EACnB,SAAS;EACT,8CAA8C;EAC9C,gBAAgB;EAChB,SAAS;EACT,wCAAwC;EACxC,gBAAgB;EAChB,gBAAgB;EAChB,eAAe;EACf,6BAA6B;EAC7B,iBAAiB;AACnB;AACA;;EAEE,+CAA+C;AACjD;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,gBAAgB;EAChB,sBAAsB;AACxB;AACA;;EAEE,0CAA0C;EAC1C,wCAAwC;EACxC,6BAA6B;AAC/B;AACA;;EAEE,wBAAwB;EACxB,0BAA0B;AAC5B\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-db4cc195] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n#app-settings[data-v-db4cc195] {\\n margin-top: auto;\\n padding: 3px;\\n}\\n#app-settings__header[data-v-db4cc195] {\\n box-sizing: border-box;\\n margin: 0 3px 3px;\\n}\\n#app-settings__header .settings-button[data-v-db4cc195] {\\n display: flex;\\n flex: 1 1 0;\\n height: 44px;\\n width: 100%;\\n padding: 0 14px 0 0;\\n margin: 0;\\n background-color: var(--color-main-background);\\n box-shadow: none;\\n border: 0;\\n border-radius: var(--border-radius-pill);\\n text-align: left;\\n font-weight: 400;\\n font-size: 100%;\\n color: var(--color-main-text);\\n line-height: 44px;\\n}\\n#app-settings__header .settings-button[data-v-db4cc195]:hover,\\n#app-settings__header .settings-button[data-v-db4cc195]:focus {\\n background-color: var(--color-background-hover);\\n}\\n#app-settings__header .settings-button__icon[data-v-db4cc195] {\\n width: 44px;\\n height: 44px;\\n min-width: 44px;\\n}\\n#app-settings__header .settings-button__label[data-v-db4cc195] {\\n overflow: hidden;\\n max-width: 100%;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n#app-settings__content[data-v-db4cc195] {\\n display: block;\\n padding: 10px;\\n margin-bottom: -3px;\\n max-height: 300px;\\n overflow-y: auto;\\n box-sizing: border-box;\\n}\\n.slide-up-leave-active[data-v-db4cc195],\\n.slide-up-enter-active[data-v-db4cc195] {\\n transition-duration: var(--animation-slow);\\n transition-property: max-height, padding;\\n overflow-y: hidden !important;\\n}\\n.slide-up-enter[data-v-db4cc195],\\n.slide-up-leave-to[data-v-db4cc195] {\\n max-height: 0 !important;\\n padding: 0 10px !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.nc-button-group-base > div {\n text-align: center;\n color: var(--color-text-maxcontrast);\n}\n.nc-button-group-base ul.nc-button-group-content {\n display: flex;\n justify-content: space-between;\n}\n.nc-button-group-base ul.nc-button-group-content li {\n flex: 1 1;\n}\n.nc-button-group-base ul.nc-button-group-content .action-button {\n padding: 0 !important;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-5fa0ac5a.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,oCAAoC;AACtC;AACA;EACE,aAAa;EACb,8BAA8B;AAChC;AACA;EACE,SAAS;AACX;AACA;EACE,qBAAqB;EACrB,WAAW;EACX,aAAa;EACb,uBAAuB;AACzB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.nc-button-group-base > div {\\n text-align: center;\\n color: var(--color-text-maxcontrast);\\n}\\n.nc-button-group-base ul.nc-button-group-content {\\n display: flex;\\n justify-content: space-between;\\n}\\n.nc-button-group-base ul.nc-button-group-content li {\\n flex: 1 1;\\n}\\n.nc-button-group-base ul.nc-button-group-content .action-button {\\n padding: 0 !important;\\n width: 100%;\\n display: flex;\\n justify-content: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-1efcbeee] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dashboard-widget[data-v-1efcbeee] .empty-content {\n text-align: center;\n padding-top: 5vh;\n}\n.dashboard-widget[data-v-1efcbeee] .empty-content.half-screen {\n padding-top: 0;\n margin-bottom: 1vh;\n}\n.more[data-v-1efcbeee] {\n display: block;\n text-align: center;\n color: var(--color-text-maxcontrast);\n line-height: 60px;\n cursor: pointer;\n}\n.more[data-v-1efcbeee]:hover,\n.more[data-v-1efcbeee]:focus {\n background-color: var(--color-background-hover);\n border-radius: var(--border-radius-large);\n color: var(--color-main-text);\n}\n.item-list__entry[data-v-1efcbeee] {\n display: flex;\n align-items: flex-start;\n padding: 8px;\n}\n.item-list__entry .item-avatar[data-v-1efcbeee] {\n position: relative;\n margin-top: auto;\n margin-bottom: auto;\n background-color: var(--color-background-dark) !important;\n}\n.item-list__entry .item__details[data-v-1efcbeee] {\n padding-left: 8px;\n max-height: 44px;\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.item-list__entry .item__details h3[data-v-1efcbeee],\n.item-list__entry .item__details .message[data-v-1efcbeee] {\n white-space: nowrap;\n background-color: var(--color-background-dark);\n}\n.item-list__entry .item__details h3[data-v-1efcbeee] {\n font-size: 100%;\n margin: 0;\n}\n.item-list__entry .item__details .message[data-v-1efcbeee] {\n width: 80%;\n height: 15px;\n margin-top: 5px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-6416f636.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,kBAAkB;AACpB;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,oCAAoC;EACpC,iBAAiB;EACjB,eAAe;AACjB;AACA;;EAEE,+CAA+C;EAC/C,yCAAyC;EACzC,6BAA6B;AAC/B;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,mBAAmB;EACnB,yDAAyD;AAC3D;AACA;EACE,iBAAiB;EACjB,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,sBAAsB;AACxB;AACA;;EAEE,mBAAmB;EACnB,8CAA8C;AAChD;AACA;EACE,eAAe;EACf,SAAS;AACX;AACA;EACE,UAAU;EACV,YAAY;EACZ,eAAe;AACjB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-1efcbeee] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.dashboard-widget[data-v-1efcbeee] .empty-content {\\n text-align: center;\\n padding-top: 5vh;\\n}\\n.dashboard-widget[data-v-1efcbeee] .empty-content.half-screen {\\n padding-top: 0;\\n margin-bottom: 1vh;\\n}\\n.more[data-v-1efcbeee] {\\n display: block;\\n text-align: center;\\n color: var(--color-text-maxcontrast);\\n line-height: 60px;\\n cursor: pointer;\\n}\\n.more[data-v-1efcbeee]:hover,\\n.more[data-v-1efcbeee]:focus {\\n background-color: var(--color-background-hover);\\n border-radius: var(--border-radius-large);\\n color: var(--color-main-text);\\n}\\n.item-list__entry[data-v-1efcbeee] {\\n display: flex;\\n align-items: flex-start;\\n padding: 8px;\\n}\\n.item-list__entry .item-avatar[data-v-1efcbeee] {\\n position: relative;\\n margin-top: auto;\\n margin-bottom: auto;\\n background-color: var(--color-background-dark) !important;\\n}\\n.item-list__entry .item__details[data-v-1efcbeee] {\\n padding-left: 8px;\\n max-height: 44px;\\n flex-grow: 1;\\n overflow: hidden;\\n display: flex;\\n flex-direction: column;\\n}\\n.item-list__entry .item__details h3[data-v-1efcbeee],\\n.item-list__entry .item__details .message[data-v-1efcbeee] {\\n white-space: nowrap;\\n background-color: var(--color-background-dark);\\n}\\n.item-list__entry .item__details h3[data-v-1efcbeee] {\\n font-size: 100%;\\n margin: 0;\\n}\\n.item-list__entry .item__details .message[data-v-1efcbeee] {\\n width: 80%;\\n height: 15px;\\n margin-top: 5px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-5b140fb6] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.input-wrapper[data-v-5b140fb6] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n width: 100%;\n max-width: 400px;\n}\n.input-wrapper .action-input__label[data-v-5b140fb6] {\n margin-right: 12px;\n}\n.input-wrapper[data-v-5b140fb6]:disabled {\n cursor: default;\n}\n.input-wrapper .hint[data-v-5b140fb6] {\n color: var(--color-text-maxcontrast);\n margin-left: 8px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-6c47e88a.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,WAAW;EACX,gBAAgB;AAClB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,eAAe;AACjB;AACA;EACE,oCAAoC;EACpC,gBAAgB;AAClB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-5b140fb6] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.input-wrapper[data-v-5b140fb6] {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n width: 100%;\\n max-width: 400px;\\n}\\n.input-wrapper .action-input__label[data-v-5b140fb6] {\\n margin-right: 12px;\\n}\\n.input-wrapper[data-v-5b140fb6]:disabled {\\n cursor: default;\\n}\\n.input-wrapper .hint[data-v-5b140fb6] {\\n color: var(--color-text-maxcontrast);\\n margin-left: 8px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n.material-design-icon[data-v-36ad47ca] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#guest-content-vue[data-v-36ad47ca] {\n color: var(--color-main-text);\n background-color: var(--color-main-background);\n min-width: 0;\n border-radius: var(--border-radius-large);\n box-shadow: 0 0 10px var(--color-box-shadow);\n height: fit-content;\n padding: 15px;\n margin: 20px auto;\n}\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#content.nc-guest-content {\n overflow: auto;\n margin-bottom: 0;\n height: calc(var(--body-height) + var(--body-container-margin));\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-8aa4712e.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,6BAA6B;EAC7B,8CAA8C;EAC9C,YAAY;EACZ,yCAAyC;EACzC,4CAA4C;EAC5C,mBAAmB;EACnB,aAAa;EACb,iBAAiB;AACnB;AACA;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,gBAAgB;EAChB,+DAA+D;AACjE\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n.material-design-icon[data-v-36ad47ca] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n#guest-content-vue[data-v-36ad47ca] {\\n color: var(--color-main-text);\\n background-color: var(--color-main-background);\\n min-width: 0;\\n border-radius: var(--border-radius-large);\\n box-shadow: 0 0 10px var(--color-box-shadow);\\n height: fit-content;\\n padding: 15px;\\n margin: 20px auto;\\n}\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n#content.nc-guest-content {\\n overflow: auto;\\n margin-bottom: 0;\\n height: calc(var(--body-height) + var(--body-container-margin));\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n.material-design-icon[data-v-b0b05af8] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nbutton[data-v-b0b05af8]:not(.button-vue),\ninput[data-v-b0b05af8]:not([type=range]),\ntextarea[data-v-b0b05af8] {\n margin: 0;\n padding: 7px 6px;\n cursor: text;\n color: var(--color-text-lighter);\n border: 1px solid var(--color-border-dark);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--color-main-background);\n font-size: 13px;\n}\nbutton[data-v-b0b05af8]:not(.button-vue):not(:disabled):not(.primary):hover,\nbutton[data-v-b0b05af8]:not(.button-vue):not(:disabled):not(.primary):focus,\nbutton:not(.button-vue):not(:disabled):not(.primary).active[data-v-b0b05af8],\ninput[data-v-b0b05af8]:not([type=range]):not(:disabled):not(.primary):hover,\ninput[data-v-b0b05af8]:not([type=range]):not(:disabled):not(.primary):focus,\ninput:not([type=range]):not(:disabled):not(.primary).active[data-v-b0b05af8],\ntextarea[data-v-b0b05af8]:not(:disabled):not(.primary):hover,\ntextarea[data-v-b0b05af8]:not(:disabled):not(.primary):focus,\ntextarea:not(:disabled):not(.primary).active[data-v-b0b05af8] {\n border-color: var(--color-primary-element);\n outline: none;\n}\nbutton[data-v-b0b05af8]:not(.button-vue):not(:disabled):not(.primary):active,\ninput[data-v-b0b05af8]:not([type=range]):not(:disabled):not(.primary):active,\ntextarea[data-v-b0b05af8]:not(:disabled):not(.primary):active {\n color: var(--color-text-light);\n outline: none;\n background-color: var(--color-main-background);\n}\nbutton[data-v-b0b05af8]:not(.button-vue):disabled,\ninput[data-v-b0b05af8]:not([type=range]):disabled,\ntextarea[data-v-b0b05af8]:disabled {\n cursor: default;\n opacity: .5;\n color: var(--color-text-maxcontrast);\n background-color: var(--color-background-dark);\n}\nbutton[data-v-b0b05af8]:not(.button-vue):required,\ninput[data-v-b0b05af8]:not([type=range]):required,\ntextarea[data-v-b0b05af8]:required {\n box-shadow: none;\n}\nbutton[data-v-b0b05af8]:not(.button-vue):invalid,\ninput[data-v-b0b05af8]:not([type=range]):invalid,\ntextarea[data-v-b0b05af8]:invalid {\n border-color: var(--color-error);\n box-shadow: none !important;\n}\nbutton:not(.button-vue).primary[data-v-b0b05af8],\ninput:not([type=range]).primary[data-v-b0b05af8],\ntextarea.primary[data-v-b0b05af8] {\n cursor: pointer;\n color: var(--color-primary-element-text);\n border-color: var(--color-primary-element);\n background-color: var(--color-primary-element);\n}\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):hover,\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):focus,\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):hover,\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):focus,\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):active,\ntextarea.primary[data-v-b0b05af8]:not(:disabled):hover,\ntextarea.primary[data-v-b0b05af8]:not(:disabled):focus,\ntextarea.primary[data-v-b0b05af8]:not(:disabled):active {\n border-color: var(--color-primary-element-light);\n background-color: var(--color-primary-element-light);\n}\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):active,\ntextarea.primary[data-v-b0b05af8]:not(:disabled):active {\n color: var(--color-primary-element-text-dark);\n}\nbutton:not(.button-vue).primary[data-v-b0b05af8]:disabled,\ninput:not([type=range]).primary[data-v-b0b05af8]:disabled,\ntextarea.primary[data-v-b0b05af8]:disabled {\n cursor: default;\n color: var(--color-primary-element-text-dark);\n background-color: var(--color-primary-element);\n}\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nli.active[data-v-b0b05af8] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-b0b05af8] {\n pointer-events: none;\n opacity: .5;\n}\n.action--disabled[data-v-b0b05af8]:hover,\n.action--disabled[data-v-b0b05af8]:focus {\n cursor: default;\n opacity: .5;\n}\n.action--disabled *[data-v-b0b05af8] {\n opacity: 1 !important;\n}\n.action-text-editable[data-v-b0b05af8] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: 400;\n line-height: 44px;\n}\n.action-text-editable > span[data-v-b0b05af8] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-text-editable__icon[data-v-b0b05af8] {\n min-width: 0;\n min-height: 0;\n padding: 22px 0 22px 44px;\n background-position: 14px center;\n background-size: 16px;\n}\n.action-text-editable[data-v-b0b05af8] .material-design-icon {\n width: 44px;\n height: 44px;\n opacity: 1;\n}\n.action-text-editable[data-v-b0b05af8] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-text-editable__form[data-v-b0b05af8] {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n position: relative;\n margin: 4px 0;\n padding-right: 14px;\n}\n.action-text-editable__submit[data-v-b0b05af8] {\n position: absolute;\n left: -10000px;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n.action-text-editable__label[data-v-b0b05af8] {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n right: 15px;\n bottom: 1px;\n width: 36px;\n height: 36px;\n box-sizing: border-box;\n margin: 0;\n padding: 7px 6px;\n border: 0;\n border-radius: 50%;\n background-color: var(--color-main-background);\n background-clip: padding-box;\n}\n.action-text-editable__label[data-v-b0b05af8],\n.action-text-editable__label *[data-v-b0b05af8] {\n cursor: pointer;\n}\n.action-text-editable__textarea[data-v-b0b05af8] {\n flex: 1 1 auto;\n color: inherit;\n border-color: var(--color-border-maxcontrast);\n min-height: 80px;\n max-height: 124px;\n min-width: 176px;\n width: 100% !important;\n margin: 0;\n}\n.action-text-editable__textarea[data-v-b0b05af8]:disabled {\n cursor: default;\n}\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid + .action-text-editable__label[data-v-b0b05af8] {\n background-color: var(--color-error);\n}\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-b0b05af8]:active,\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-b0b05af8]:hover,\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-b0b05af8]:focus {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.action-text-editable__textarea:active:not(:disabled) + .action-text-editable__label[data-v-b0b05af8],\n.action-text-editable__textarea:hover:not(:disabled) + .action-text-editable__label[data-v-b0b05af8],\n.action-text-editable__textarea:focus:not(:disabled) + .action-text-editable__label[data-v-b0b05af8] {\n z-index: 2;\n border-color: var(--color-primary-element);\n border-left-color: transparent;\n}\nli:last-child > .action-text-editable[data-v-b0b05af8] {\n margin-bottom: 10px;\n}\nli:first-child > .action-text-editable[data-v-b0b05af8] {\n margin-top: 10px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-93ad846c.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;;;EAGE,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,gCAAgC;EAChC,0CAA0C;EAC1C,mCAAmC;EACnC,aAAa;EACb,8CAA8C;EAC9C,eAAe;AACjB;AACA;;;;;;;;;EASE,0CAA0C;EAC1C,aAAa;AACf;AACA;;;EAGE,8BAA8B;EAC9B,aAAa;EACb,8CAA8C;AAChD;AACA;;;EAGE,eAAe;EACf,WAAW;EACX,oCAAoC;EACpC,8CAA8C;AAChD;AACA;;;EAGE,gBAAgB;AAClB;AACA;;;EAGE,gCAAgC;EAChC,2BAA2B;AAC7B;AACA;;;EAGE,eAAe;EACf,wCAAwC;EACxC,0CAA0C;EAC1C,8CAA8C;AAChD;AACA;;;;;;;;;EASE,gDAAgD;EAChD,oDAAoD;AACtD;AACA;;;EAGE,6CAA6C;AAC/C;AACA;;;EAGE,eAAe;EACf,6CAA6C;EAC7C,8CAA8C;AAChD;AACA;;;;;;;;;;;;;;;;;;;;;EAqBE;AACF;EACE,+CAA+C;EAC/C,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,oBAAoB;EACpB,WAAW;AACb;AACA;;EAEE,eAAe;EACf,WAAW;AACb;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,gBAAgB;EAChB,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,YAAY;EACZ,aAAa;EACb,yBAAyB;EACzB,gCAAgC;EAChC,qBAAqB;AACvB;AACA;EACE,WAAW;EACX,YAAY;EACZ,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,kBAAkB;EAClB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,SAAS;EACT,UAAU;EACV,WAAW;EACX,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;EAClB,WAAW;EACX,WAAW;EACX,WAAW;EACX,YAAY;EACZ,sBAAsB;EACtB,SAAS;EACT,gBAAgB;EAChB,SAAS;EACT,kBAAkB;EAClB,8CAA8C;EAC9C,4BAA4B;AAC9B;AACA;;EAEE,eAAe;AACjB;AACA;EACE,cAAc;EACd,cAAc;EACd,6CAA6C;EAC7C,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;EAChB,sBAAsB;EACtB,SAAS;AACX;AACA;EACE,eAAe;AACjB;AACA;EACE,oCAAoC;AACtC;AACA;;;EAGE,8CAA8C;EAC9C,wCAAwC;AAC1C;AACA;;;EAGE,UAAU;EACV,0CAA0C;EAC1C,8BAA8B;AAChC;AACA;EACE,mBAAmB;AACrB;AACA;EACE,gBAAgB;AAClB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n.material-design-icon[data-v-b0b05af8] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\nbutton[data-v-b0b05af8]:not(.button-vue),\\ninput[data-v-b0b05af8]:not([type=range]),\\ntextarea[data-v-b0b05af8] {\\n margin: 0;\\n padding: 7px 6px;\\n cursor: text;\\n color: var(--color-text-lighter);\\n border: 1px solid var(--color-border-dark);\\n border-radius: var(--border-radius);\\n outline: none;\\n background-color: var(--color-main-background);\\n font-size: 13px;\\n}\\nbutton[data-v-b0b05af8]:not(.button-vue):not(:disabled):not(.primary):hover,\\nbutton[data-v-b0b05af8]:not(.button-vue):not(:disabled):not(.primary):focus,\\nbutton:not(.button-vue):not(:disabled):not(.primary).active[data-v-b0b05af8],\\ninput[data-v-b0b05af8]:not([type=range]):not(:disabled):not(.primary):hover,\\ninput[data-v-b0b05af8]:not([type=range]):not(:disabled):not(.primary):focus,\\ninput:not([type=range]):not(:disabled):not(.primary).active[data-v-b0b05af8],\\ntextarea[data-v-b0b05af8]:not(:disabled):not(.primary):hover,\\ntextarea[data-v-b0b05af8]:not(:disabled):not(.primary):focus,\\ntextarea:not(:disabled):not(.primary).active[data-v-b0b05af8] {\\n border-color: var(--color-primary-element);\\n outline: none;\\n}\\nbutton[data-v-b0b05af8]:not(.button-vue):not(:disabled):not(.primary):active,\\ninput[data-v-b0b05af8]:not([type=range]):not(:disabled):not(.primary):active,\\ntextarea[data-v-b0b05af8]:not(:disabled):not(.primary):active {\\n color: var(--color-text-light);\\n outline: none;\\n background-color: var(--color-main-background);\\n}\\nbutton[data-v-b0b05af8]:not(.button-vue):disabled,\\ninput[data-v-b0b05af8]:not([type=range]):disabled,\\ntextarea[data-v-b0b05af8]:disabled {\\n cursor: default;\\n opacity: .5;\\n color: var(--color-text-maxcontrast);\\n background-color: var(--color-background-dark);\\n}\\nbutton[data-v-b0b05af8]:not(.button-vue):required,\\ninput[data-v-b0b05af8]:not([type=range]):required,\\ntextarea[data-v-b0b05af8]:required {\\n box-shadow: none;\\n}\\nbutton[data-v-b0b05af8]:not(.button-vue):invalid,\\ninput[data-v-b0b05af8]:not([type=range]):invalid,\\ntextarea[data-v-b0b05af8]:invalid {\\n border-color: var(--color-error);\\n box-shadow: none !important;\\n}\\nbutton:not(.button-vue).primary[data-v-b0b05af8],\\ninput:not([type=range]).primary[data-v-b0b05af8],\\ntextarea.primary[data-v-b0b05af8] {\\n cursor: pointer;\\n color: var(--color-primary-element-text);\\n border-color: var(--color-primary-element);\\n background-color: var(--color-primary-element);\\n}\\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):hover,\\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):focus,\\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):active,\\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):hover,\\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):focus,\\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):active,\\ntextarea.primary[data-v-b0b05af8]:not(:disabled):hover,\\ntextarea.primary[data-v-b0b05af8]:not(:disabled):focus,\\ntextarea.primary[data-v-b0b05af8]:not(:disabled):active {\\n border-color: var(--color-primary-element-light);\\n background-color: var(--color-primary-element-light);\\n}\\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):active,\\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):active,\\ntextarea.primary[data-v-b0b05af8]:not(:disabled):active {\\n color: var(--color-primary-element-text-dark);\\n}\\nbutton:not(.button-vue).primary[data-v-b0b05af8]:disabled,\\ninput:not([type=range]).primary[data-v-b0b05af8]:disabled,\\ntextarea.primary[data-v-b0b05af8]:disabled {\\n cursor: default;\\n color: var(--color-primary-element-text-dark);\\n background-color: var(--color-primary-element);\\n}\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\nli.active[data-v-b0b05af8] {\\n background-color: var(--color-background-hover);\\n border-radius: 6px;\\n padding: 0;\\n}\\n.action--disabled[data-v-b0b05af8] {\\n pointer-events: none;\\n opacity: .5;\\n}\\n.action--disabled[data-v-b0b05af8]:hover,\\n.action--disabled[data-v-b0b05af8]:focus {\\n cursor: default;\\n opacity: .5;\\n}\\n.action--disabled *[data-v-b0b05af8] {\\n opacity: 1 !important;\\n}\\n.action-text-editable[data-v-b0b05af8] {\\n display: flex;\\n align-items: flex-start;\\n width: 100%;\\n height: auto;\\n margin: 0;\\n padding: 0;\\n cursor: pointer;\\n white-space: nowrap;\\n color: var(--color-main-text);\\n border: 0;\\n border-radius: 0;\\n background-color: transparent;\\n box-shadow: none;\\n font-weight: 400;\\n line-height: 44px;\\n}\\n.action-text-editable > span[data-v-b0b05af8] {\\n cursor: pointer;\\n white-space: nowrap;\\n}\\n.action-text-editable__icon[data-v-b0b05af8] {\\n min-width: 0;\\n min-height: 0;\\n padding: 22px 0 22px 44px;\\n background-position: 14px center;\\n background-size: 16px;\\n}\\n.action-text-editable[data-v-b0b05af8] .material-design-icon {\\n width: 44px;\\n height: 44px;\\n opacity: 1;\\n}\\n.action-text-editable[data-v-b0b05af8] .material-design-icon .material-design-icon__svg {\\n vertical-align: middle;\\n}\\n.action-text-editable__form[data-v-b0b05af8] {\\n display: flex;\\n flex: 1 1 auto;\\n flex-direction: column;\\n position: relative;\\n margin: 4px 0;\\n padding-right: 14px;\\n}\\n.action-text-editable__submit[data-v-b0b05af8] {\\n position: absolute;\\n left: -10000px;\\n top: auto;\\n width: 1px;\\n height: 1px;\\n overflow: hidden;\\n}\\n.action-text-editable__label[data-v-b0b05af8] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n position: absolute;\\n right: 15px;\\n bottom: 1px;\\n width: 36px;\\n height: 36px;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 7px 6px;\\n border: 0;\\n border-radius: 50%;\\n background-color: var(--color-main-background);\\n background-clip: padding-box;\\n}\\n.action-text-editable__label[data-v-b0b05af8],\\n.action-text-editable__label *[data-v-b0b05af8] {\\n cursor: pointer;\\n}\\n.action-text-editable__textarea[data-v-b0b05af8] {\\n flex: 1 1 auto;\\n color: inherit;\\n border-color: var(--color-border-maxcontrast);\\n min-height: 80px;\\n max-height: 124px;\\n min-width: 176px;\\n width: 100% !important;\\n margin: 0;\\n}\\n.action-text-editable__textarea[data-v-b0b05af8]:disabled {\\n cursor: default;\\n}\\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid + .action-text-editable__label[data-v-b0b05af8] {\\n background-color: var(--color-error);\\n}\\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-b0b05af8]:active,\\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-b0b05af8]:hover,\\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-b0b05af8]:focus {\\n background-color: var(--color-primary-element);\\n color: var(--color-primary-element-text);\\n}\\n.action-text-editable__textarea:active:not(:disabled) + .action-text-editable__label[data-v-b0b05af8],\\n.action-text-editable__textarea:hover:not(:disabled) + .action-text-editable__label[data-v-b0b05af8],\\n.action-text-editable__textarea:focus:not(:disabled) + .action-text-editable__label[data-v-b0b05af8] {\\n z-index: 2;\\n border-color: var(--color-primary-element);\\n border-left-color: transparent;\\n}\\nli:last-child > .action-text-editable[data-v-b0b05af8] {\\n margin-bottom: 10px;\\n}\\nli:first-child > .action-text-editable[data-v-b0b05af8] {\\n margin-top: 10px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-8950be04] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-entry[data-v-8950be04] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n min-height: 44px;\n transition: background-color var(--animation-quick) ease-in-out;\n transition: background-color .2s ease-in-out;\n border-radius: var(--border-radius-pill);\n}\n.app-navigation-entry-wrapper[data-v-8950be04] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n}\n.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul[data-v-8950be04] {\n display: none;\n}\n.app-navigation-entry.active[data-v-8950be04] {\n background-color: var(--color-primary-element) !important;\n}\n.app-navigation-entry.active .app-navigation-entry-link[data-v-8950be04],\n.app-navigation-entry.active .app-navigation-entry-button[data-v-8950be04] {\n color: var(--color-primary-element-text) !important;\n}\n.app-navigation-entry[data-v-8950be04]:focus-within,\n.app-navigation-entry[data-v-8950be04]:hover {\n background-color: var(--color-background-hover);\n}\n.app-navigation-entry.active .app-navigation-entry__children[data-v-8950be04],\n.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-8950be04],\n.app-navigation-entry:hover .app-navigation-entry__children[data-v-8950be04] {\n background-color: var(--color-main-background);\n}\n.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\n.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\n.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\n.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\n.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04] {\n display: inline-block;\n}\n.app-navigation-entry.app-navigation-entry--deleted > ul[data-v-8950be04] {\n display: none;\n}\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-8950be04],\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-8950be04] {\n padding-right: 14px;\n}\n.app-navigation-entry .app-navigation-entry-link[data-v-8950be04],\n.app-navigation-entry .app-navigation-entry-button[data-v-8950be04] {\n z-index: 100;\n display: flex;\n overflow: hidden;\n flex: 1 1 0;\n box-sizing: border-box;\n min-height: 44px;\n padding: 0;\n white-space: nowrap;\n color: var(--color-main-text);\n background-repeat: no-repeat;\n background-position: 14px center;\n background-size: 16px 16px;\n line-height: 44px;\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-8950be04],\n.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-8950be04] {\n display: flex;\n align-items: center;\n flex: 0 0 44px;\n justify-content: center;\n width: 44px;\n height: 44px;\n background-size: 16px 16px;\n background-repeat: no-repeat;\n background-position: 14px center;\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-8950be04],\n.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-8950be04] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-8950be04],\n.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-8950be04] {\n width: calc(100% - 44px);\n margin: auto;\n}\n.app-navigation-entry__children[data-v-8950be04] {\n position: relative;\n display: flex;\n flex: 0 1 auto;\n flex-direction: column;\n width: 100%;\n gap: var(--default-grid-baseline, 4px);\n}\n.app-navigation-entry__children .app-navigation-entry[data-v-8950be04] {\n display: inline-flex;\n flex-wrap: wrap;\n padding-left: 16px;\n}\n.app-navigation-entry__deleted[data-v-8950be04] {\n display: inline-flex;\n flex: 1 1 0;\n padding-left: 30px !important;\n}\n.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-8950be04] {\n position: relative;\n overflow: hidden;\n flex: 1 1 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 44px;\n}\n.app-navigation-entry__utils[data-v-8950be04] {\n display: flex;\n min-width: 44px;\n align-items: center;\n flex: 0 1 auto;\n justify-content: flex-end;\n}\n.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-8950be04] {\n display: inline-block;\n}\n.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-8950be04] {\n margin-right: calc(var(--default-grid-baseline) * 3);\n display: flex;\n align-items: center;\n flex: 0 1 auto;\n}\n.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-8950be04] {\n display: none;\n}\n.app-navigation-entry--editing .app-navigation-entry-edit[data-v-8950be04] {\n z-index: 250;\n opacity: 1;\n}\n.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-8950be04] {\n z-index: 250;\n transform: translate(0);\n}\n.app-navigation-entry--pinned[data-v-8950be04] {\n order: 2;\n margin-top: auto;\n}\n.app-navigation-entry--pinned ~ .app-navigation-entry--pinned[data-v-8950be04] {\n margin-top: 0;\n}\n[data-themes*=highcontrast] .app-navigation-entry[data-v-8950be04]:active {\n background-color: var(--color-primary-element-light-hover) !important;\n}\n.app-navigation-new-item__name[data-v-8950be04] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n padding-left: 7px;\n font-size: 14px;\n}\n.newItemContainer[data-v-8950be04] {\n width: calc(100% - 44px);\n margin: auto;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-93bc89ef.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,eAAe;EACf,sBAAsB;EACtB,WAAW;EACX,gBAAgB;EAChB,+DAA+D;EAC/D,4CAA4C;EAC5C,wCAAwC;AAC1C;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,eAAe;EACf,sBAAsB;EACtB,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE,yDAAyD;AAC3D;AACA;;EAEE,mDAAmD;AACrD;AACA;;EAEE,+CAA+C;AACjD;AACA;;;EAGE,8CAA8C;AAChD;AACA;;;;;EAKE,qBAAqB;AACvB;AACA;EACE,aAAa;AACf;AACA;;EAEE,mBAAmB;AACrB;AACA;;EAEE,YAAY;EACZ,aAAa;EACb,gBAAgB;EAChB,WAAW;EACX,sBAAsB;EACtB,gBAAgB;EAChB,UAAU;EACV,mBAAmB;EACnB,6BAA6B;EAC7B,4BAA4B;EAC5B,gCAAgC;EAChC,0BAA0B;EAC1B,iBAAiB;AACnB;AACA;;EAEE,aAAa;EACb,mBAAmB;EACnB,cAAc;EACd,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,0BAA0B;EAC1B,4BAA4B;EAC5B,gCAAgC;AAClC;AACA;;EAEE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;EAEE,wBAAwB;EACxB,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,WAAW;EACX,sCAAsC;AACxC;AACA;EACE,oBAAoB;EACpB,eAAe;EACf,kBAAkB;AACpB;AACA;EACE,oBAAoB;EACpB,WAAW;EACX,6BAA6B;AAC/B;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,WAAW;EACX,mBAAmB;EACnB,uBAAuB;EACvB,iBAAiB;AACnB;AACA;EACE,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,cAAc;EACd,yBAAyB;AAC3B;AACA;EACE,qBAAqB;AACvB;AACA;EACE,oDAAoD;EACpD,aAAa;EACb,mBAAmB;EACnB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,YAAY;EACZ,UAAU;AACZ;AACA;EACE,YAAY;EACZ,uBAAuB;AACzB;AACA;EACE,QAAQ;EACR,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,qEAAqE;AACvE;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;EACvB,iBAAiB;EACjB,eAAe;AACjB;AACA;EACE,wBAAwB;EACxB,YAAY;AACd\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-8950be04] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.app-navigation-entry[data-v-8950be04] {\\n position: relative;\\n display: flex;\\n flex-shrink: 0;\\n flex-wrap: wrap;\\n box-sizing: border-box;\\n width: 100%;\\n min-height: 44px;\\n transition: background-color var(--animation-quick) ease-in-out;\\n transition: background-color .2s ease-in-out;\\n border-radius: var(--border-radius-pill);\\n}\\n.app-navigation-entry-wrapper[data-v-8950be04] {\\n position: relative;\\n display: flex;\\n flex-shrink: 0;\\n flex-wrap: wrap;\\n box-sizing: border-box;\\n width: 100%;\\n}\\n.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul[data-v-8950be04] {\\n display: none;\\n}\\n.app-navigation-entry.active[data-v-8950be04] {\\n background-color: var(--color-primary-element) !important;\\n}\\n.app-navigation-entry.active .app-navigation-entry-link[data-v-8950be04],\\n.app-navigation-entry.active .app-navigation-entry-button[data-v-8950be04] {\\n color: var(--color-primary-element-text) !important;\\n}\\n.app-navigation-entry[data-v-8950be04]:focus-within,\\n.app-navigation-entry[data-v-8950be04]:hover {\\n background-color: var(--color-background-hover);\\n}\\n.app-navigation-entry.active .app-navigation-entry__children[data-v-8950be04],\\n.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-8950be04],\\n.app-navigation-entry:hover .app-navigation-entry__children[data-v-8950be04] {\\n background-color: var(--color-main-background);\\n}\\n.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\\n.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\\n.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\\n.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\\n.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04] {\\n display: inline-block;\\n}\\n.app-navigation-entry.app-navigation-entry--deleted > ul[data-v-8950be04] {\\n display: none;\\n}\\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-8950be04],\\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-8950be04] {\\n padding-right: 14px;\\n}\\n.app-navigation-entry .app-navigation-entry-link[data-v-8950be04],\\n.app-navigation-entry .app-navigation-entry-button[data-v-8950be04] {\\n z-index: 100;\\n display: flex;\\n overflow: hidden;\\n flex: 1 1 0;\\n box-sizing: border-box;\\n min-height: 44px;\\n padding: 0;\\n white-space: nowrap;\\n color: var(--color-main-text);\\n background-repeat: no-repeat;\\n background-position: 14px center;\\n background-size: 16px 16px;\\n line-height: 44px;\\n}\\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-8950be04],\\n.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-8950be04] {\\n display: flex;\\n align-items: center;\\n flex: 0 0 44px;\\n justify-content: center;\\n width: 44px;\\n height: 44px;\\n background-size: 16px 16px;\\n background-repeat: no-repeat;\\n background-position: 14px center;\\n}\\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-8950be04],\\n.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-8950be04] {\\n overflow: hidden;\\n max-width: 100%;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-8950be04],\\n.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-8950be04] {\\n width: calc(100% - 44px);\\n margin: auto;\\n}\\n.app-navigation-entry__children[data-v-8950be04] {\\n position: relative;\\n display: flex;\\n flex: 0 1 auto;\\n flex-direction: column;\\n width: 100%;\\n gap: var(--default-grid-baseline, 4px);\\n}\\n.app-navigation-entry__children .app-navigation-entry[data-v-8950be04] {\\n display: inline-flex;\\n flex-wrap: wrap;\\n padding-left: 16px;\\n}\\n.app-navigation-entry__deleted[data-v-8950be04] {\\n display: inline-flex;\\n flex: 1 1 0;\\n padding-left: 30px !important;\\n}\\n.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-8950be04] {\\n position: relative;\\n overflow: hidden;\\n flex: 1 1 0;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: 44px;\\n}\\n.app-navigation-entry__utils[data-v-8950be04] {\\n display: flex;\\n min-width: 44px;\\n align-items: center;\\n flex: 0 1 auto;\\n justify-content: flex-end;\\n}\\n.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-8950be04] {\\n display: inline-block;\\n}\\n.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-8950be04] {\\n margin-right: calc(var(--default-grid-baseline) * 3);\\n display: flex;\\n align-items: center;\\n flex: 0 1 auto;\\n}\\n.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-8950be04] {\\n display: none;\\n}\\n.app-navigation-entry--editing .app-navigation-entry-edit[data-v-8950be04] {\\n z-index: 250;\\n opacity: 1;\\n}\\n.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-8950be04] {\\n z-index: 250;\\n transform: translate(0);\\n}\\n.app-navigation-entry--pinned[data-v-8950be04] {\\n order: 2;\\n margin-top: auto;\\n}\\n.app-navigation-entry--pinned ~ .app-navigation-entry--pinned[data-v-8950be04] {\\n margin-top: 0;\\n}\\n[data-themes*=highcontrast] .app-navigation-entry[data-v-8950be04]:active {\\n background-color: var(--color-primary-element-light-hover) !important;\\n}\\n.app-navigation-new-item__name[data-v-8950be04] {\\n overflow: hidden;\\n max-width: 100%;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n padding-left: 7px;\\n font-size: 14px;\\n}\\n.newItemContainer[data-v-8950be04] {\\n width: calc(100% - 44px);\\n margin: auto;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n.material-design-icon[data-v-1a960bef] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.resource[data-v-1a960bef] {\n display: flex;\n align-items: center;\n height: 44px;\n}\n.resource__button[data-v-1a960bef] {\n width: 100% !important;\n justify-content: flex-start !important;\n padding: 0 !important;\n}\n.resource__button[data-v-1a960bef] .button-vue__wrapper {\n justify-content: flex-start !important;\n}\n.resource__button[data-v-1a960bef] .button-vue__wrapper .button-vue__text {\n font-weight: 400 !important;\n margin-left: 2px !important;\n}\n.resource__icon[data-v-1a960bef] {\n width: 32px;\n height: 32px;\n background-color: var(--color-text-maxcontrast);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.resource__icon img[data-v-1a960bef] {\n width: 16px;\n height: 16px;\n filter: var(--background-invert-if-dark);\n}\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-19300848] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.related-resources__header[data-v-19300848] {\n margin: 0 0 10px 46px;\n}\n.related-resources__header h5[data-v-19300848] {\n font-weight: 700;\n}\n.related-resources__header p[data-v-19300848] {\n color: var(--color-text-maxcontrast);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-ab715d82.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,sCAAsC;EACtC,qBAAqB;AACvB;AACA;EACE,sCAAsC;AACxC;AACA;EACE,2BAA2B;EAC3B,2BAA2B;AAC7B;AACA;EACE,WAAW;EACX,YAAY;EACZ,+CAA+C;EAC/C,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,YAAY;EACZ,wCAAwC;AAC1C;AACA;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,oCAAoC;AACtC\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n.material-design-icon[data-v-1a960bef] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.resource[data-v-1a960bef] {\\n display: flex;\\n align-items: center;\\n height: 44px;\\n}\\n.resource__button[data-v-1a960bef] {\\n width: 100% !important;\\n justify-content: flex-start !important;\\n padding: 0 !important;\\n}\\n.resource__button[data-v-1a960bef] .button-vue__wrapper {\\n justify-content: flex-start !important;\\n}\\n.resource__button[data-v-1a960bef] .button-vue__wrapper .button-vue__text {\\n font-weight: 400 !important;\\n margin-left: 2px !important;\\n}\\n.resource__icon[data-v-1a960bef] {\\n width: 32px;\\n height: 32px;\\n background-color: var(--color-text-maxcontrast);\\n border-radius: 50%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.resource__icon img[data-v-1a960bef] {\\n width: 16px;\\n height: 16px;\\n filter: var(--background-invert-if-dark);\\n}\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-19300848] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.related-resources__header[data-v-19300848] {\\n margin: 0 0 10px 46px;\\n}\\n.related-resources__header h5[data-v-19300848] {\\n font-weight: 700;\\n}\\n.related-resources__header p[data-v-19300848] {\\n color: var(--color-text-maxcontrast);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-55ab76f1] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.user-bubble__wrapper[data-v-55ab76f1] {\n display: inline-block;\n vertical-align: middle;\n min-width: 0;\n max-width: 100%;\n}\n.user-bubble__content[data-v-55ab76f1] {\n display: inline-flex;\n max-width: 100%;\n background-color: var(--color-background-dark);\n}\n.user-bubble__content--primary[data-v-55ab76f1] {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.user-bubble__content[data-v-55ab76f1] > :last-child {\n padding-right: 8px;\n}\n.user-bubble__avatar[data-v-55ab76f1] {\n align-self: center;\n}\n.user-bubble__name[data-v-55ab76f1] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.user-bubble__name[data-v-55ab76f1],\n.user-bubble__secondary[data-v-55ab76f1] {\n padding: 0 0 0 4px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-c221fe05.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,qBAAqB;EACrB,sBAAsB;EACtB,YAAY;EACZ,eAAe;AACjB;AACA;EACE,oBAAoB;EACpB,eAAe;EACf,8CAA8C;AAChD;AACA;EACE,wCAAwC;EACxC,8CAA8C;AAChD;AACA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;EAEE,kBAAkB;AACpB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-55ab76f1] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.user-bubble__wrapper[data-v-55ab76f1] {\\n display: inline-block;\\n vertical-align: middle;\\n min-width: 0;\\n max-width: 100%;\\n}\\n.user-bubble__content[data-v-55ab76f1] {\\n display: inline-flex;\\n max-width: 100%;\\n background-color: var(--color-background-dark);\\n}\\n.user-bubble__content--primary[data-v-55ab76f1] {\\n color: var(--color-primary-element-text);\\n background-color: var(--color-primary-element);\\n}\\n.user-bubble__content[data-v-55ab76f1] > :last-child {\\n padding-right: 8px;\\n}\\n.user-bubble__avatar[data-v-55ab76f1] {\\n align-self: center;\\n}\\n.user-bubble__name[data-v-55ab76f1] {\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n.user-bubble__name[data-v-55ab76f1],\\n.user-bubble__secondary[data-v-55ab76f1] {\\n padding: 0 0 0 4px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-00e861ef] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.item-list__entry[data-v-00e861ef] {\n display: flex;\n align-items: flex-start;\n position: relative;\n padding: 8px;\n}\n.item-list__entry[data-v-00e861ef]:hover,\n.item-list__entry[data-v-00e861ef]:focus {\n background-color: var(--color-background-hover);\n border-radius: var(--border-radius-large);\n}\n.item-list__entry .item-avatar[data-v-00e861ef] {\n position: relative;\n margin-top: auto;\n margin-bottom: auto;\n}\n.item-list__entry .item__details[data-v-00e861ef] {\n padding-left: 8px;\n max-height: 44px;\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.item-list__entry .item__details h3[data-v-00e861ef],\n.item-list__entry .item__details .message[data-v-00e861ef] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.item-list__entry .item__details .message span[data-v-00e861ef] {\n width: 10px;\n display: inline-block;\n margin-bottom: -3px;\n}\n.item-list__entry .item__details h3[data-v-00e861ef] {\n font-size: 100%;\n margin: 0;\n}\n.item-list__entry .item__details .message[data-v-00e861ef] {\n width: 100%;\n color: var(--color-text-maxcontrast);\n}\n.item-list__entry .item-icon[data-v-00e861ef] {\n position: relative;\n width: 14px;\n height: 14px;\n margin: 27px -3px 0 -7px;\n}\n.item-list__entry button.primary[data-v-00e861ef] {\n padding: 21px;\n margin: 0;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-e7eadba7.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,kBAAkB;EAClB,YAAY;AACd;AACA;;EAEE,+CAA+C;EAC/C,yCAAyC;AAC3C;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,iBAAiB;EACjB,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,sBAAsB;AACxB;AACA;;EAEE,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,qBAAqB;EACrB,mBAAmB;AACrB;AACA;EACE,eAAe;EACf,SAAS;AACX;AACA;EACE,WAAW;EACX,oCAAoC;AACtC;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,wBAAwB;AAC1B;AACA;EACE,aAAa;EACb,SAAS;AACX\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-00e861ef] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.item-list__entry[data-v-00e861ef] {\\n display: flex;\\n align-items: flex-start;\\n position: relative;\\n padding: 8px;\\n}\\n.item-list__entry[data-v-00e861ef]:hover,\\n.item-list__entry[data-v-00e861ef]:focus {\\n background-color: var(--color-background-hover);\\n border-radius: var(--border-radius-large);\\n}\\n.item-list__entry .item-avatar[data-v-00e861ef] {\\n position: relative;\\n margin-top: auto;\\n margin-bottom: auto;\\n}\\n.item-list__entry .item__details[data-v-00e861ef] {\\n padding-left: 8px;\\n max-height: 44px;\\n flex-grow: 1;\\n overflow: hidden;\\n display: flex;\\n flex-direction: column;\\n}\\n.item-list__entry .item__details h3[data-v-00e861ef],\\n.item-list__entry .item__details .message[data-v-00e861ef] {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.item-list__entry .item__details .message span[data-v-00e861ef] {\\n width: 10px;\\n display: inline-block;\\n margin-bottom: -3px;\\n}\\n.item-list__entry .item__details h3[data-v-00e861ef] {\\n font-size: 100%;\\n margin: 0;\\n}\\n.item-list__entry .item__details .message[data-v-00e861ef] {\\n width: 100%;\\n color: var(--color-text-maxcontrast);\\n}\\n.item-list__entry .item-icon[data-v-00e861ef] {\\n position: relative;\\n width: 14px;\\n height: 14px;\\n margin: 27px -3px 0 -7px;\\n}\\n.item-list__entry button.primary[data-v-00e861ef] {\\n padding: 21px;\\n margin: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-91580127] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-entry__icon-bullet[data-v-91580127] {\n display: block;\n padding: 15px;\n}\n.app-navigation-entry__icon-bullet div[data-v-91580127] {\n width: 14px;\n height: 14px;\n cursor: pointer;\n transition: background .1s ease-in-out;\n border: none;\n border-radius: 50%;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-fc61f2d8.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,aAAa;AACf;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,sCAAsC;EACtC,YAAY;EACZ,kBAAkB;AACpB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-91580127] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.app-navigation-entry__icon-bullet[data-v-91580127] {\\n display: block;\\n padding: 15px;\\n}\\n.app-navigation-entry__icon-bullet div[data-v-91580127] {\\n width: 14px;\\n height: 14px;\\n cursor: pointer;\\n transition: background .1s ease-in-out;\\n border: none;\\n border-radius: 50%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `#app-dashboard[data-v-9fd44988]{width:100%;min-height:100%;background-size:cover;background-position:center center;background-repeat:no-repeat;background-attachment:fixed}#app-dashboard>h2[data-v-9fd44988]{color:var(--color-primary-element-text);text-align:center;font-size:32px;line-height:130%;padding:1rem 0}.panels[data-v-9fd44988]{width:auto;margin:auto;max-width:1800px;display:flex;justify-content:center;flex-direction:row;align-items:flex-start;flex-wrap:wrap}.panel[data-v-9fd44988],.panels>div[data-v-9fd44988]{width:320px;max-width:100%;margin:16px;align-self:stretch;background-color:var(--color-main-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur);border-radius:var(--border-radius-rounded)}#body-user.theme--highcontrast .panel[data-v-9fd44988],#body-user.theme--highcontrast .panels>div[data-v-9fd44988]{border:2px solid var(--color-border)}.panel.sortable-ghost[data-v-9fd44988],.panels>div.sortable-ghost[data-v-9fd44988]{opacity:.1}.panel>.panel--header[data-v-9fd44988],.panels>div>.panel--header[data-v-9fd44988]{display:flex;z-index:1;top:50px;padding:16px;cursor:grab}.panel>.panel--header[data-v-9fd44988],.panel>.panel--header[data-v-9fd44988] *,.panels>div>.panel--header[data-v-9fd44988],.panels>div>.panel--header[data-v-9fd44988] *{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.panel>.panel--header[data-v-9fd44988]:active,.panels>div>.panel--header[data-v-9fd44988]:active{cursor:grabbing}.panel>.panel--header a[data-v-9fd44988],.panels>div>.panel--header a[data-v-9fd44988]{flex-grow:1}.panel>.panel--header>h2[data-v-9fd44988],.panels>div>.panel--header>h2[data-v-9fd44988]{display:block;align-items:center;flex-grow:1;margin:0;font-size:20px;line-height:24px;font-weight:bold;padding:16px 8px;height:56px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab}.panel>.panel--header>h2 span[data-v-9fd44988],.panels>div>.panel--header>h2 span[data-v-9fd44988]{background-size:32px;width:32px;height:32px;margin-right:16px;background-position:center;float:left;margin-top:-6px}.panel>.panel--content[data-v-9fd44988],.panels>div>.panel--content[data-v-9fd44988]{margin:0 16px 16px 16px;height:424px;overflow:visible}@media only screen and (max-width: 709px){.panel>.panel--content[data-v-9fd44988],.panels>div>.panel--content[data-v-9fd44988]{height:auto}}.footer[data-v-9fd44988]{display:flex;justify-content:center;transition:bottom var(--animation-slow) ease-in-out;padding:1rem 0}.edit-panels[data-v-9fd44988]{display:inline-block;margin:auto;background-position:16px center;padding:12px 16px;padding-left:36px;border-radius:var(--border-radius-pill);max-width:200px;opacity:1;text-align:center}.button[data-v-9fd44988],.button-vue[data-v-9fd44988],.edit-panels[data-v-9fd44988],.statuses[data-v-9fd44988] .action-item .action-item__menutoggle,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle{background-color:var(--color-main-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur);opacity:1 !important}.button[data-v-9fd44988]:hover,.button[data-v-9fd44988]:focus,.button[data-v-9fd44988]:active,.button-vue[data-v-9fd44988]:hover,.button-vue[data-v-9fd44988]:focus,.button-vue[data-v-9fd44988]:active,.edit-panels[data-v-9fd44988]:hover,.edit-panels[data-v-9fd44988]:focus,.edit-panels[data-v-9fd44988]:active,.statuses[data-v-9fd44988] .action-item .action-item__menutoggle:hover,.statuses[data-v-9fd44988] .action-item .action-item__menutoggle:focus,.statuses[data-v-9fd44988] .action-item .action-item__menutoggle:active,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle:hover,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle:focus,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle:active{background-color:var(--color-background-hover) !important}.button[data-v-9fd44988]:focus-visible,.button-vue[data-v-9fd44988]:focus-visible,.edit-panels[data-v-9fd44988]:focus-visible,.statuses[data-v-9fd44988] .action-item .action-item__menutoggle:focus-visible,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle:focus-visible{box-shadow:0 0 0 4px var(--color-main-background) !important;outline:2px solid var(--color-main-text) !important}.modal__content[data-v-9fd44988]{padding:32px 16px;text-align:center}.modal__content ol[data-v-9fd44988]{display:flex;flex-direction:row;justify-content:center;list-style-type:none;padding-bottom:16px}.modal__content li label[data-v-9fd44988]{position:relative;display:block;padding:48px 16px 14px 16px;margin:8px;width:140px;background-color:var(--color-background-hover);border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal__content li label span[data-v-9fd44988]{position:absolute;top:16px;width:24px;height:24px;background-size:24px}.modal__content li label[data-v-9fd44988]:hover{border-color:var(--color-primary-element)}.modal__content li:not(.panel-status) label span[data-v-9fd44988]{filter:var(--background-invert-if-dark)}.modal__content li input[type=checkbox].checkbox+label[data-v-9fd44988]:before{position:absolute;right:12px;top:16px}.modal__content li input:focus+label[data-v-9fd44988]{border-color:var(--color-primary-element)}.modal__content h3[data-v-9fd44988]{font-weight:bold}.modal__content h3[data-v-9fd44988]:not(:first-of-type){margin-top:64px}.modal__content .button[data-v-9fd44988]{display:inline-block;padding:10px 16px;margin:0}.modal__content p[data-v-9fd44988]{max-width:650px;margin:0 auto}.modal__content p a[data-v-9fd44988]:hover,.modal__content p a[data-v-9fd44988]:focus{border-bottom:2px solid var(--color-border)}.modal__content .credits--end[data-v-9fd44988]{padding-bottom:32px;color:var(--color-text-maxcontrast)}.modal__content .credits--end a[data-v-9fd44988]{color:var(--color-text-maxcontrast)}.flip-list-move[data-v-9fd44988]{transition:transform var(--animation-slow)}.statuses[data-v-9fd44988]{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;margin-bottom:36px}.statuses>li[data-v-9fd44988]{margin:8px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dashboard/src/DashboardApp.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,UAAA,CACA,eAAA,CACA,qBAAA,CACA,iCAAA,CACA,2BAAA,CACA,2BAAA,CAEA,mCACC,uCAAA,CACA,iBAAA,CACA,cAAA,CACA,gBAAA,CACA,cAAA,CAIF,yBACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CAGD,qDACC,WAAA,CACA,cAAA,CACA,WAAA,CACA,kBAAA,CACA,kDAAA,CACA,qDAAA,CACA,6CAAA,CACA,0CAAA,CAEA,mHACC,oCAAA,CAGD,mFACE,UAAA,CAGF,mFACC,YAAA,CACA,SAAA,CACA,QAAA,CACA,YAAA,CACA,WAAA,CAEA,0KACC,0BAAA,CACA,wBAAA,CACA,uBAAA,CACA,qBAAA,CACA,oBAAA,CACA,gBAAA,CAGD,iGACC,eAAA,CAGD,uFACC,WAAA,CAGD,yFACC,aAAA,CACA,kBAAA,CACA,WAAA,CACA,QAAA,CACA,cAAA,CACA,gBAAA,CACA,gBAAA,CACA,gBAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,WAAA,CACA,mGACC,oBAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,0BAAA,CACA,UAAA,CACA,eAAA,CAKH,qFACC,uBAAA,CACA,YAAA,CAEA,gBAAA,CAID,0CACC,qFACC,WAAA,CAAA,CAKH,yBACC,YAAA,CACA,sBAAA,CACA,mDAAA,CACA,cAAA,CAGD,8BACC,oBAAA,CACA,WAAA,CACA,+BAAA,CACA,iBAAA,CACA,iBAAA,CACA,uCAAA,CACA,eAAA,CACA,SAAA,CACA,iBAAA,CAGD,wOAKC,kDAAA,CACA,qDAAA,CACA,6CAAA,CACA,oBAAA,CAEA,uxBAGC,yDAAA,CAED,8SACC,4DAAA,CACA,mDAAA,CAIF,iCACC,iBAAA,CACA,iBAAA,CAEA,oCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,oBAAA,CACA,mBAAA,CAGA,0CACC,iBAAA,CACA,aAAA,CACA,2BAAA,CACA,UAAA,CACA,WAAA,CACA,8CAAA,CACA,6CAAA,CACA,wCAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CAEA,+CACC,iBAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CACA,oBAAA,CAGD,gDACC,yCAAA,CAKF,kEACC,uCAAA,CAGD,+EACC,iBAAA,CACA,UAAA,CACA,QAAA,CAGD,sDACC,yCAAA,CAIF,oCACC,gBAAA,CAEA,wDACC,eAAA,CAKF,yCACC,oBAAA,CACA,iBAAA,CACA,QAAA,CAGD,mCACC,eAAA,CACA,aAAA,CAEA,sFAEC,2CAAA,CAIF,+CACC,mBAAA,CACA,mCAAA,CAEA,iDACC,mCAAA,CAKH,iCACC,0CAAA,CAGD,2BACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CACA,kBAAA,CAEA,8BACC,UAAA\",\"sourcesContent\":[\"\\n#app-dashboard {\\n\\twidth: 100%;\\n\\tmin-height: 100%;\\n\\tbackground-size: cover;\\n\\tbackground-position: center center;\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-attachment: fixed;\\n\\n\\t> h2 {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\ttext-align: center;\\n\\t\\tfont-size: 32px;\\n\\t\\tline-height: 130%;\\n\\t\\tpadding: 1rem 0;\\n\\t}\\n}\\n\\n.panels {\\n\\twidth: auto;\\n\\tmargin: auto;\\n\\tmax-width: 1800px;\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\tflex-direction: row;\\n\\talign-items: flex-start;\\n\\tflex-wrap: wrap;\\n}\\n\\n.panel, .panels > div {\\n\\twidth: 320px;\\n\\tmax-width: 100%;\\n\\tmargin: 16px;\\n\\talign-self: stretch;\\n\\tbackground-color: var(--color-main-background-blur);\\n\\t-webkit-backdrop-filter: var(--filter-background-blur);\\n\\tbackdrop-filter: var(--filter-background-blur);\\n\\tborder-radius: var(--border-radius-rounded);\\n\\n\\t#body-user.theme--highcontrast & {\\n\\t\\tborder: 2px solid var(--color-border);\\n\\t}\\n\\n\\t&.sortable-ghost {\\n\\t\\t opacity: 0.1;\\n\\t}\\n\\n\\t& > .panel--header {\\n\\t\\tdisplay: flex;\\n\\t\\tz-index: 1;\\n\\t\\ttop: 50px;\\n\\t\\tpadding: 16px;\\n\\t\\tcursor: grab;\\n\\n\\t\\t&, ::v-deep * {\\n\\t\\t\\t-webkit-touch-callout: none;\\n\\t\\t\\t-webkit-user-select: none;\\n\\t\\t\\t-khtml-user-select: none;\\n\\t\\t\\t-moz-user-select: none;\\n\\t\\t\\t-ms-user-select: none;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tcursor: grabbing;\\n\\t\\t}\\n\\n\\t\\ta {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t}\\n\\n\\t\\t> h2 {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tfont-size: 20px;\\n\\t\\t\\tline-height: 24px;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tpadding: 16px 8px;\\n\\t\\t\\theight: 56px;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\tcursor: grab;\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tbackground-size: 32px;\\n\\t\\t\\t\\twidth: 32px;\\n\\t\\t\\t\\theight: 32px;\\n\\t\\t\\t\\tmargin-right: 16px;\\n\\t\\t\\t\\tbackground-position: center;\\n\\t\\t\\t\\tfloat: left;\\n\\t\\t\\t\\tmargin-top: -6px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .panel--content {\\n\\t\\tmargin: 0 16px 16px 16px;\\n\\t\\theight: 424px;\\n\\t\\t// We specifically do not want scrollbars inside widgets\\n\\t\\toverflow: visible;\\n\\t}\\n\\n\\t// No need to extend height of widgets if only one column is shown\\n\\t@media only screen and (max-width: 709px) {\\n\\t\\t& > .panel--content {\\n\\t\\t\\theight: auto;\\n\\t\\t}\\n\\t}\\n}\\n\\n.footer {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\ttransition: bottom var(--animation-slow) ease-in-out;\\n\\tpadding: 1rem 0;\\n}\\n\\n.edit-panels {\\n\\tdisplay: inline-block;\\n\\tmargin:auto;\\n\\tbackground-position: 16px center;\\n\\tpadding: 12px 16px;\\n\\tpadding-left: 36px;\\n\\tborder-radius: var(--border-radius-pill);\\n\\tmax-width: 200px;\\n\\topacity: 1;\\n\\ttext-align: center;\\n}\\n\\n.button,\\n.button-vue,\\n.edit-panels,\\n.statuses ::v-deep .action-item .action-item__menutoggle,\\n.statuses ::v-deep .action-item.action-item--open .action-item__menutoggle {\\n\\tbackground-color: var(--color-main-background-blur);\\n\\t-webkit-backdrop-filter: var(--filter-background-blur);\\n\\tbackdrop-filter: var(--filter-background-blur);\\n\\topacity: 1 !important;\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-background-hover)!important;\\n\\t}\\n\\t&:focus-visible {\\n\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\\n\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t}\\n}\\n\\n.modal__content {\\n\\tpadding: 32px 16px;\\n\\ttext-align: center;\\n\\n\\tol {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tjustify-content: center;\\n\\t\\tlist-style-type: none;\\n\\t\\tpadding-bottom: 16px;\\n\\t}\\n\\tli {\\n\\t\\tlabel {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tpadding: 48px 16px 14px 16px;\\n\\t\\t\\tmargin: 8px;\\n\\t\\t\\twidth: 140px;\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\t\\ttext-align: left;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: 16px;\\n\\t\\t\\t\\twidth: 24px;\\n\\t\\t\\t\\theight: 24px;\\n\\t\\t\\t\\tbackground-size: 24px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Do not invert status icons\\n\\t\\t&:not(.panel-status) label span {\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t}\\n\\n\\t\\tinput[type='checkbox'].checkbox + label:before {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tright: 12px;\\n\\t\\t\\ttop: 16px;\\n\\t\\t}\\n\\n\\t\\tinput:focus + label {\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\th3 {\\n\\t\\tfont-weight: bold;\\n\\n\\t\\t&:not(:first-of-type) {\\n\\t\\t\\tmargin-top: 64px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Adjust design of 'Get more widgets' button\\n\\t.button {\\n\\t\\tdisplay: inline-block;\\n\\t\\tpadding: 10px 16px;\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\tp {\\n\\t\\tmax-width: 650px;\\n\\t\\tmargin: 0 auto;\\n\\n\\t\\ta:hover,\\n\\t\\ta:focus {\\n\\t\\t\\tborder-bottom: 2px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t.credits--end {\\n\\t\\tpadding-bottom: 32px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\ta {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n}\\n\\n.flip-list-move {\\n\\ttransition: transform var(--animation-slow);\\n}\\n\\n.statuses {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tjustify-content: center;\\n\\tflex-wrap: wrap;\\n\\tmargin-bottom: 36px;\\n\\n\\t& > li {\\n\\t\\tmargin: 8px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\nhtml, body {\n\tbackground-attachment: fixed;\n}\n#body-user #header {\n\tposition: fixed;\n}\n#content {\n\toverflow: auto;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dashboard/src/DashboardApp.vue\"],\"names\":[],\"mappings\":\";AA4sBA;CACA,4BAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,cAAA;AACA\",\"sourcesContent\":[\"<template>\\n\\t<div id=\\\"app-dashboard\\\">\\n\\t\\t<h2>{{ greeting.text }}</h2>\\n\\t\\t<ul class=\\\"statuses\\\">\\n\\t\\t\\t<li v-for=\\\"status in sortedRegisteredStatus\\\"\\n\\t\\t\\t\\t:id=\\\"'status-' + status\\\"\\n\\t\\t\\t\\t:key=\\\"status\\\">\\n\\t\\t\\t\\t<div :ref=\\\"'status-' + status\\\" />\\n\\t\\t\\t</li>\\n\\t\\t</ul>\\n\\n\\t\\t<Draggable v-model=\\\"layout\\\"\\n\\t\\t\\tclass=\\\"panels\\\"\\n\\t\\t\\tv-bind=\\\"{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3}\\\"\\n\\t\\t\\thandle=\\\".panel--header\\\"\\n\\t\\t\\t@end=\\\"saveLayout\\\">\\n\\t\\t\\t<template v-for=\\\"panelId in layout\\\">\\n\\t\\t\\t\\t<div v-if=\\\"isApiWidgetV2(panels[panelId].id)\\\"\\n\\t\\t\\t\\t\\t:key=\\\"`${panels[panelId].id}-v2`\\\"\\n\\t\\t\\t\\t\\tclass=\\\"panel\\\">\\n\\t\\t\\t\\t\\t<div class=\\\"panel--header\\\">\\n\\t\\t\\t\\t\\t\\t<h2>\\n\\t\\t\\t\\t\\t\\t\\t<span :aria-labelledby=\\\"`panel-${panels[panelId].id}--header--icon--description`\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\taria-hidden=\\\"true\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t:class=\\\"apiWidgets[panels[panelId].id].icon_class\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\trole=\\\"img\\\" />\\n\\t\\t\\t\\t\\t\\t\\t{{ apiWidgets[panels[panelId].id].title }}\\n\\t\\t\\t\\t\\t\\t</h2>\\n\\t\\t\\t\\t\\t\\t<span :id=\\\"`panel-${panels[panelId].id}--header--icon--description`\\\" class=\\\"hidden-visually\\\">\\n\\t\\t\\t\\t\\t\\t\\t{{ t('dashboard', '\\\"{title} icon\\\"', { title: apiWidgets[panels[panelId].id].title }) }}\\n\\t\\t\\t\\t\\t\\t</span>\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t<div class=\\\"panel--content\\\">\\n\\t\\t\\t\\t\\t\\t<ApiDashboardWidget :widget=\\\"apiWidgets[panels[panelId].id]\\\"\\n\\t\\t\\t\\t\\t\\t\\t:data=\\\"apiWidgetItems[panels[panelId].id]\\\"\\n\\t\\t\\t\\t\\t\\t\\t:loading=\\\"loadingItems\\\" />\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t<div v-else :key=\\\"panels[panelId].id\\\" class=\\\"panel\\\">\\n\\t\\t\\t\\t\\t<div class=\\\"panel--header\\\">\\n\\t\\t\\t\\t\\t\\t<h2>\\n\\t\\t\\t\\t\\t\\t\\t<span :aria-labelledby=\\\"`panel-${panels[panelId].id}--header--icon--description`\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\taria-hidden=\\\"true\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t:class=\\\"panels[panelId].iconClass\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\trole=\\\"img\\\" />\\n\\t\\t\\t\\t\\t\\t\\t{{ panels[panelId].title }}\\n\\t\\t\\t\\t\\t\\t</h2>\\n\\t\\t\\t\\t\\t\\t<span :id=\\\"`panel-${panels[panelId].id}--header--icon--description`\\\" class=\\\"hidden-visually\\\"> {{ t('dashboard', '\\\"{title} icon\\\"', { title: panels[panelId].title }) }} </span>\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t<div class=\\\"panel--content\\\" :class=\\\"{ loading: !panels[panelId].mounted }\\\">\\n\\t\\t\\t\\t\\t\\t<div :ref=\\\"panels[panelId].id\\\" :data-id=\\\"panels[panelId].id\\\" />\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t</template>\\n\\t\\t</Draggable>\\n\\n\\t\\t<div class=\\\"footer\\\">\\n\\t\\t\\t<NcButton @click=\\\"showModal\\\">\\n\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t<Pencil :size=\\\"20\\\" />\\n\\t\\t\\t\\t</template>\\n\\t\\t\\t\\t{{ t('dashboard', 'Customize') }}\\n\\t\\t\\t</NcButton>\\n\\t\\t</div>\\n\\n\\t\\t<NcModal v-if=\\\"modal\\\" size=\\\"large\\\" @close=\\\"closeModal\\\">\\n\\t\\t\\t<div class=\\\"modal__content\\\">\\n\\t\\t\\t\\t<h3>{{ t('dashboard', 'Edit widgets') }}</h3>\\n\\t\\t\\t\\t<ol class=\\\"panels\\\">\\n\\t\\t\\t\\t\\t<li v-for=\\\"status in sortedAllStatuses\\\" :key=\\\"status\\\" :class=\\\"'panel-' + status\\\">\\n\\t\\t\\t\\t\\t\\t<input :id=\\\"'status-checkbox-' + status\\\"\\n\\t\\t\\t\\t\\t\\t\\ttype=\\\"checkbox\\\"\\n\\t\\t\\t\\t\\t\\t\\tclass=\\\"checkbox\\\"\\n\\t\\t\\t\\t\\t\\t\\t:checked=\\\"isStatusActive(status)\\\"\\n\\t\\t\\t\\t\\t\\t\\t@input=\\\"updateStatusCheckbox(status, $event.target.checked)\\\">\\n\\t\\t\\t\\t\\t\\t<label :for=\\\"'status-checkbox-' + status\\\">\\n\\t\\t\\t\\t\\t\\t\\t<span :class=\\\"statusInfo[status].icon\\\" aria-hidden=\\\"true\\\" />\\n\\t\\t\\t\\t\\t\\t\\t{{ statusInfo[status].text }}\\n\\t\\t\\t\\t\\t\\t</label>\\n\\t\\t\\t\\t\\t</li>\\n\\t\\t\\t\\t</ol>\\n\\t\\t\\t\\t<Draggable v-model=\\\"layout\\\"\\n\\t\\t\\t\\t\\tclass=\\\"panels\\\"\\n\\t\\t\\t\\t\\ttag=\\\"ol\\\"\\n\\t\\t\\t\\t\\tv-bind=\\\"{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3}\\\"\\n\\t\\t\\t\\t\\thandle=\\\".draggable\\\"\\n\\t\\t\\t\\t\\t@end=\\\"saveLayout\\\">\\n\\t\\t\\t\\t\\t<li v-for=\\\"panel in sortedPanels\\\" :key=\\\"panel.id\\\" :class=\\\"'panel-' + panel.id\\\">\\n\\t\\t\\t\\t\\t\\t<input :id=\\\"'panel-checkbox-' + panel.id\\\"\\n\\t\\t\\t\\t\\t\\t\\ttype=\\\"checkbox\\\"\\n\\t\\t\\t\\t\\t\\t\\tclass=\\\"checkbox\\\"\\n\\t\\t\\t\\t\\t\\t\\t:checked=\\\"isActive(panel)\\\"\\n\\t\\t\\t\\t\\t\\t\\t@input=\\\"updateCheckbox(panel, $event.target.checked)\\\">\\n\\t\\t\\t\\t\\t\\t<label :for=\\\"'panel-checkbox-' + panel.id\\\" :class=\\\"{ draggable: isActive(panel) }\\\">\\n\\t\\t\\t\\t\\t\\t\\t<span :class=\\\"panel.iconClass\\\" aria-hidden=\\\"true\\\" />\\n\\t\\t\\t\\t\\t\\t\\t{{ panel.title }}\\n\\t\\t\\t\\t\\t\\t</label>\\n\\t\\t\\t\\t\\t</li>\\n\\t\\t\\t\\t</Draggable>\\n\\n\\t\\t\\t\\t<a v-if=\\\"isAdmin\\\" :href=\\\"appStoreUrl\\\" class=\\\"button\\\">{{ t('dashboard', 'Get more widgets from the App Store') }}</a>\\n\\n\\t\\t\\t\\t<div v-if=\\\"statuses.weather && isStatusActive('weather')\\\">\\n\\t\\t\\t\\t\\t<h3>{{ t('dashboard', 'Weather service') }}</h3>\\n\\t\\t\\t\\t\\t<p>\\n\\t\\t\\t\\t\\t\\t{{ t('dashboard', 'For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.') }}\\n\\t\\t\\t\\t\\t</p>\\n\\t\\t\\t\\t\\t<p class=\\\"credits--end\\\">\\n\\t\\t\\t\\t\\t\\t<a href=\\\"https://api.met.no/doc/TermsOfService\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">{{ t('dashboard', 'Weather data from Met.no') }}</a>,\\n\\t\\t\\t\\t\\t\\t<a href=\\\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">{{ t('dashboard', 'geocoding with Nominatim') }}</a>,\\n\\t\\t\\t\\t\\t\\t<a href=\\\"https://www.opentopodata.org/#public-api\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">{{ t('dashboard', 'elevation data from OpenTopoData') }}</a>.\\n\\t\\t\\t\\t\\t</p>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t</div>\\n\\t\\t</NcModal>\\n\\t</div>\\n</template>\\n\\n<script>\\nimport { generateUrl, generateOcsUrl } from '@nextcloud/router'\\nimport { getCurrentUser } from '@nextcloud/auth'\\nimport { loadState } from '@nextcloud/initial-state'\\nimport axios from '@nextcloud/axios'\\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\\nimport Draggable from 'vuedraggable'\\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\\nimport Pencil from 'vue-material-design-icons/Pencil.vue'\\nimport Vue from 'vue'\\n\\nimport isMobile from './mixins/isMobile.js'\\nimport ApiDashboardWidget from './components/ApiDashboardWidget.vue'\\n\\nconst panels = loadState('dashboard', 'panels')\\nconst firstRun = loadState('dashboard', 'firstRun')\\n\\nconst statusInfo = {\\n\\tweather: {\\n\\t\\ttext: t('dashboard', 'Weather'),\\n\\t\\ticon: 'icon-weather-status',\\n\\t},\\n\\tstatus: {\\n\\t\\ttext: t('dashboard', 'Status'),\\n\\t\\ticon: 'icon-user-status-online',\\n\\t},\\n}\\n\\nexport default {\\n\\tname: 'DashboardApp',\\n\\tcomponents: {\\n\\t\\tApiDashboardWidget,\\n\\t\\tNcButton,\\n\\t\\tDraggable,\\n\\t\\tNcModal,\\n\\t\\tPencil,\\n\\t},\\n\\tmixins: [\\n\\t\\tisMobile,\\n\\t],\\n\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tisAdmin: getCurrentUser().isAdmin,\\n\\t\\t\\ttimer: new Date(),\\n\\t\\t\\tregisteredStatus: [],\\n\\t\\t\\tcallbacks: {},\\n\\t\\t\\tcallbacksStatus: {},\\n\\t\\t\\tallCallbacksStatus: {},\\n\\t\\t\\tstatusInfo,\\n\\t\\t\\tenabledStatuses: loadState('dashboard', 'statuses'),\\n\\t\\t\\tpanels,\\n\\t\\t\\tfirstRun,\\n\\t\\t\\tdisplayName: getCurrentUser()?.displayName,\\n\\t\\t\\tuid: getCurrentUser()?.uid,\\n\\t\\t\\tlayout: loadState('dashboard', 'layout').filter((panelId) => panels[panelId]),\\n\\t\\t\\tmodal: false,\\n\\t\\t\\tappStoreUrl: generateUrl('/settings/apps/dashboard'),\\n\\t\\t\\tstatuses: {},\\n\\t\\t\\tapiWidgets: [],\\n\\t\\t\\tapiWidgetItems: {},\\n\\t\\t\\tloadingItems: true,\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\tgreeting() {\\n\\t\\t\\tconst time = this.timer.getHours()\\n\\n\\t\\t\\t// Determine part of the day\\n\\t\\t\\tlet partOfDay\\n\\t\\t\\tif (time >= 22 || time < 5) {\\n\\t\\t\\t\\tpartOfDay = 'night'\\n\\t\\t\\t} else if (time >= 18) {\\n\\t\\t\\t\\tpartOfDay = 'evening'\\n\\t\\t\\t} else if (time >= 12) {\\n\\t\\t\\t\\tpartOfDay = 'afternoon'\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tpartOfDay = 'morning'\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Define the greetings\\n\\t\\t\\tconst good = {\\n\\t\\t\\t\\tmorning: {\\n\\t\\t\\t\\t\\tgeneric: t('dashboard', 'Good morning'),\\n\\t\\t\\t\\t\\twithName: t('dashboard', 'Good morning, {name}', { name: this.displayName }, undefined, { escape: false }),\\n\\t\\t\\t\\t},\\n\\t\\t\\t\\tafternoon: {\\n\\t\\t\\t\\t\\tgeneric: t('dashboard', 'Good afternoon'),\\n\\t\\t\\t\\t\\twithName: t('dashboard', 'Good afternoon, {name}', { name: this.displayName }, undefined, { escape: false }),\\n\\t\\t\\t\\t},\\n\\t\\t\\t\\tevening: {\\n\\t\\t\\t\\t\\tgeneric: t('dashboard', 'Good evening'),\\n\\t\\t\\t\\t\\twithName: t('dashboard', 'Good evening, {name}', { name: this.displayName }, undefined, { escape: false }),\\n\\t\\t\\t\\t},\\n\\t\\t\\t\\tnight: {\\n\\t\\t\\t\\t\\t// Don't use \\\"Good night\\\" as it's not a greeting\\n\\t\\t\\t\\t\\tgeneric: t('dashboard', 'Hello'),\\n\\t\\t\\t\\t\\twithName: t('dashboard', 'Hello, {name}', { name: this.displayName }, undefined, { escape: false }),\\n\\t\\t\\t\\t},\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Figure out which greeting to show\\n\\t\\t\\tconst shouldShowName = this.displayName && this.uid !== this.displayName\\n\\t\\t\\treturn { text: shouldShowName ? good[partOfDay].withName : good[partOfDay].generic }\\n\\t\\t},\\n\\n\\t\\tisActive() {\\n\\t\\t\\treturn (panel) => this.layout.indexOf(panel.id) > -1\\n\\t\\t},\\n\\t\\tisStatusActive() {\\n\\t\\t\\treturn (status) => !(status in this.enabledStatuses) || this.enabledStatuses[status]\\n\\t\\t},\\n\\n\\t\\tsortedAllStatuses() {\\n\\t\\t\\treturn Object.keys(this.allCallbacksStatus).slice().sort(this.sortStatuses)\\n\\t\\t},\\n\\t\\tsortedPanels() {\\n\\t\\t\\treturn Object.values(this.panels).sort((a, b) => {\\n\\t\\t\\t\\tconst indexA = this.layout.indexOf(a.id)\\n\\t\\t\\t\\tconst indexB = this.layout.indexOf(b.id)\\n\\t\\t\\t\\tif (indexA === -1 || indexB === -1) {\\n\\t\\t\\t\\t\\treturn indexB - indexA || a.id - b.id\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\treturn indexA - indexB || a.id - b.id\\n\\t\\t\\t})\\n\\t\\t},\\n\\t\\tsortedRegisteredStatus() {\\n\\t\\t\\treturn this.registeredStatus.slice().sort(this.sortStatuses)\\n\\t\\t},\\n\\t},\\n\\n\\twatch: {\\n\\t\\tcallbacks() {\\n\\t\\t\\tthis.rerenderPanels()\\n\\t\\t},\\n\\t\\tcallbacksStatus() {\\n\\t\\t\\tfor (const app in this.callbacksStatus) {\\n\\t\\t\\t\\tconst element = this.$refs['status-' + app]\\n\\t\\t\\t\\tif (this.statuses[app] && this.statuses[app].mounted) {\\n\\t\\t\\t\\t\\tcontinue\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tif (element) {\\n\\t\\t\\t\\t\\tthis.callbacksStatus[app](element[0])\\n\\t\\t\\t\\t\\tVue.set(this.statuses, app, { mounted: true })\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\tconsole.error('Failed to register panel in the frontend as no backend data was provided for ' + app)\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n\\n\\tasync created() {\\n\\t\\tawait this.fetchApiWidgets()\\n\\n\\t\\tconst apiWidgetIdsToFetch = Object\\n\\t\\t\\t.values(this.apiWidgets)\\n\\t\\t\\t.filter(widget => this.isApiWidgetV2(widget.id))\\n\\t\\t\\t.map(widget => widget.id)\\n\\t\\tawait Promise.all(apiWidgetIdsToFetch.map(id => this.fetchApiWidgetItems([id], true)))\\n\\n\\t\\tfor (const widget of Object.values(this.apiWidgets)) {\\n\\t\\t\\tif (widget.reload_interval > 0) {\\n\\t\\t\\t\\tsetInterval(async () => {\\n\\t\\t\\t\\t\\tawait this.fetchApiWidgetItems([widget.id], true)\\n\\t\\t\\t\\t}, widget.reload_interval * 1000)\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\tmounted() {\\n\\t\\tthis.updateSkipLink()\\n\\t\\twindow.addEventListener('scroll', this.handleScroll)\\n\\n\\t\\tsetInterval(() => {\\n\\t\\t\\tthis.timer = new Date()\\n\\t\\t}, 30000)\\n\\n\\t\\tif (this.firstRun) {\\n\\t\\t\\twindow.addEventListener('scroll', this.disableFirstrunHint)\\n\\t\\t}\\n\\t},\\n\\tdestroyed() {\\n\\t\\twindow.removeEventListener('scroll', this.handleScroll)\\n\\t},\\n\\n\\tmethods: {\\n\\t\\t/**\\n\\t\\t * Method to register panels that will be called by the integrating apps\\n\\t\\t *\\n\\t\\t * @param {string} app The unique app id for the widget\\n\\t\\t * @param {Function} callback The callback function to register a panel which gets the DOM element passed as parameter\\n\\t\\t */\\n\\t\\tregister(app, callback) {\\n\\t\\t\\tVue.set(this.callbacks, app, callback)\\n\\t\\t},\\n\\t\\tregisterStatus(app, callback) {\\n\\t\\t\\t// always save callbacks in case user enables the status later\\n\\t\\t\\tVue.set(this.allCallbacksStatus, app, callback)\\n\\t\\t\\t// register only if status is enabled or missing from config\\n\\t\\t\\tif (this.isStatusActive(app)) {\\n\\t\\t\\t\\tthis.registeredStatus.push(app)\\n\\t\\t\\t\\tthis.$nextTick(() => {\\n\\t\\t\\t\\t\\tVue.set(this.callbacksStatus, app, callback)\\n\\t\\t\\t\\t})\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\trerenderPanels() {\\n\\t\\t\\tfor (const app in this.callbacks) {\\n\\t\\t\\t\\t// TODO: Properly rerender v2 widgets\\n\\t\\t\\t\\tif (this.isApiWidgetV2(this.panels[app].id)) {\\n\\t\\t\\t\\t\\tcontinue\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tconst element = this.$refs[app]\\n\\t\\t\\t\\tif (this.layout.indexOf(app) === -1) {\\n\\t\\t\\t\\t\\tcontinue\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tif (this.panels[app] && this.panels[app].mounted) {\\n\\t\\t\\t\\t\\tcontinue\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tif (element) {\\n\\t\\t\\t\\t\\tthis.callbacks[app](element[0], {\\n\\t\\t\\t\\t\\t\\twidget: this.panels[app],\\n\\t\\t\\t\\t\\t})\\n\\t\\t\\t\\t\\tVue.set(this.panels[app], 'mounted', true)\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\tconsole.error('Failed to register panel in the frontend as no backend data was provided for ' + app)\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tsaveLayout() {\\n\\t\\t\\taxios.post(generateUrl('/apps/dashboard/layout'), {\\n\\t\\t\\t\\tlayout: this.layout.join(','),\\n\\t\\t\\t})\\n\\t\\t},\\n\\t\\tsaveStatuses() {\\n\\t\\t\\taxios.post(generateUrl('/apps/dashboard/statuses'), {\\n\\t\\t\\t\\tstatuses: JSON.stringify(this.enabledStatuses),\\n\\t\\t\\t})\\n\\t\\t},\\n\\t\\tshowModal() {\\n\\t\\t\\tthis.modal = true\\n\\t\\t\\tthis.firstRun = false\\n\\t\\t},\\n\\t\\tcloseModal() {\\n\\t\\t\\tthis.modal = false\\n\\t\\t},\\n\\t\\tupdateCheckbox(panel, currentValue) {\\n\\t\\t\\tconst index = this.layout.indexOf(panel.id)\\n\\t\\t\\tif (!currentValue && index > -1) {\\n\\t\\t\\t\\tthis.layout.splice(index, 1)\\n\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tthis.layout.push(panel.id)\\n\\t\\t\\t}\\n\\t\\t\\tVue.set(this.panels[panel.id], 'mounted', false)\\n\\t\\t\\tthis.saveLayout()\\n\\t\\t\\tthis.$nextTick(() => this.rerenderPanels())\\n\\t\\t},\\n\\t\\tdisableFirstrunHint() {\\n\\t\\t\\twindow.removeEventListener('scroll', this.disableFirstrunHint)\\n\\t\\t\\tsetTimeout(() => {\\n\\t\\t\\t\\tthis.firstRun = false\\n\\t\\t\\t}, 1000)\\n\\t\\t},\\n\\t\\tupdateSkipLink() {\\n\\t\\t\\t// Make sure \\\"Skip to main content\\\" link points to the app content\\n\\t\\t\\tdocument.getElementsByClassName('skip-navigation')[0].setAttribute('href', '#app-dashboard')\\n\\t\\t},\\n\\t\\tupdateStatusCheckbox(app, checked) {\\n\\t\\t\\tif (checked) {\\n\\t\\t\\t\\tthis.enableStatus(app)\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tthis.disableStatus(app)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tenableStatus(app) {\\n\\t\\t\\tthis.enabledStatuses[app] = true\\n\\t\\t\\tthis.registerStatus(app, this.allCallbacksStatus[app])\\n\\t\\t\\tthis.saveStatuses()\\n\\t\\t},\\n\\t\\tdisableStatus(app) {\\n\\t\\t\\tthis.enabledStatuses[app] = false\\n\\t\\t\\tconst i = this.registeredStatus.findIndex((s) => s === app)\\n\\t\\t\\tif (i !== -1) {\\n\\t\\t\\t\\tthis.registeredStatus.splice(i, 1)\\n\\t\\t\\t\\tVue.set(this.statuses, app, { mounted: false })\\n\\t\\t\\t\\tthis.$nextTick(() => {\\n\\t\\t\\t\\t\\tVue.delete(this.callbacksStatus, app)\\n\\t\\t\\t\\t})\\n\\t\\t\\t}\\n\\t\\t\\tthis.saveStatuses()\\n\\t\\t},\\n\\t\\tsortStatuses(a, b) {\\n\\t\\t\\tconst al = a.toLowerCase()\\n\\t\\t\\tconst bl = b.toLowerCase()\\n\\t\\t\\treturn al > bl\\n\\t\\t\\t\\t? 1\\n\\t\\t\\t\\t: al < bl\\n\\t\\t\\t\\t\\t? -1\\n\\t\\t\\t\\t\\t: 0\\n\\t\\t},\\n\\t\\thandleScroll() {\\n\\t\\t\\tif (window.scrollY > 70) {\\n\\t\\t\\t\\tdocument.body.classList.add('dashboard--scrolled')\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tdocument.body.classList.remove('dashboard--scrolled')\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tasync fetchApiWidgets() {\\n\\t\\t\\tconst response = await axios.get(generateOcsUrl('/apps/dashboard/api/v1/widgets'))\\n\\t\\t\\tthis.apiWidgets = response.data.ocs.data\\n\\t\\t},\\n\\t\\tasync fetchApiWidgetItems(widgetIds, merge = false) {\\n\\t\\t\\ttry {\\n\\t\\t\\t\\tconst url = generateOcsUrl('/apps/dashboard/api/v2/widget-items')\\n\\t\\t\\t\\tconst params = new URLSearchParams(widgetIds.map(id => ['widgets[]', id]))\\n\\t\\t\\t\\tconst response = await axios.get(`${url}?${params.toString()}`)\\n\\t\\t\\t\\tconst widgetItems = response.data.ocs.data\\n\\t\\t\\t\\tif (merge) {\\n\\t\\t\\t\\t\\tthis.apiWidgetItems = Object.assign({}, this.apiWidgetItems, widgetItems)\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\tthis.apiWidgetItems = widgetItems\\n\\t\\t\\t\\t}\\n\\t\\t\\t} finally {\\n\\t\\t\\t\\tthis.loadingItems = false\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tisApiWidgetV2(id) {\\n\\t\\t\\tfor (const widget of Object.values(this.apiWidgets)) {\\n\\t\\t\\t\\tif (widget.id === id && widget.item_api_versions.includes(2)) {\\n\\t\\t\\t\\t\\treturn true\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\treturn false\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n\\n<style lang=\\\"scss\\\" scoped>\\n#app-dashboard {\\n\\twidth: 100%;\\n\\tmin-height: 100%;\\n\\tbackground-size: cover;\\n\\tbackground-position: center center;\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-attachment: fixed;\\n\\n\\t> h2 {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\ttext-align: center;\\n\\t\\tfont-size: 32px;\\n\\t\\tline-height: 130%;\\n\\t\\tpadding: 1rem 0;\\n\\t}\\n}\\n\\n.panels {\\n\\twidth: auto;\\n\\tmargin: auto;\\n\\tmax-width: 1800px;\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\tflex-direction: row;\\n\\talign-items: flex-start;\\n\\tflex-wrap: wrap;\\n}\\n\\n.panel, .panels > div {\\n\\twidth: 320px;\\n\\tmax-width: 100%;\\n\\tmargin: 16px;\\n\\talign-self: stretch;\\n\\tbackground-color: var(--color-main-background-blur);\\n\\t-webkit-backdrop-filter: var(--filter-background-blur);\\n\\tbackdrop-filter: var(--filter-background-blur);\\n\\tborder-radius: var(--border-radius-rounded);\\n\\n\\t#body-user.theme--highcontrast & {\\n\\t\\tborder: 2px solid var(--color-border);\\n\\t}\\n\\n\\t&.sortable-ghost {\\n\\t\\t opacity: 0.1;\\n\\t}\\n\\n\\t& > .panel--header {\\n\\t\\tdisplay: flex;\\n\\t\\tz-index: 1;\\n\\t\\ttop: 50px;\\n\\t\\tpadding: 16px;\\n\\t\\tcursor: grab;\\n\\n\\t\\t&, ::v-deep * {\\n\\t\\t\\t-webkit-touch-callout: none;\\n\\t\\t\\t-webkit-user-select: none;\\n\\t\\t\\t-khtml-user-select: none;\\n\\t\\t\\t-moz-user-select: none;\\n\\t\\t\\t-ms-user-select: none;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tcursor: grabbing;\\n\\t\\t}\\n\\n\\t\\ta {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t}\\n\\n\\t\\t> h2 {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tfont-size: 20px;\\n\\t\\t\\tline-height: 24px;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tpadding: 16px 8px;\\n\\t\\t\\theight: 56px;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\tcursor: grab;\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tbackground-size: 32px;\\n\\t\\t\\t\\twidth: 32px;\\n\\t\\t\\t\\theight: 32px;\\n\\t\\t\\t\\tmargin-right: 16px;\\n\\t\\t\\t\\tbackground-position: center;\\n\\t\\t\\t\\tfloat: left;\\n\\t\\t\\t\\tmargin-top: -6px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .panel--content {\\n\\t\\tmargin: 0 16px 16px 16px;\\n\\t\\theight: 424px;\\n\\t\\t// We specifically do not want scrollbars inside widgets\\n\\t\\toverflow: visible;\\n\\t}\\n\\n\\t// No need to extend height of widgets if only one column is shown\\n\\t@media only screen and (max-width: 709px) {\\n\\t\\t& > .panel--content {\\n\\t\\t\\theight: auto;\\n\\t\\t}\\n\\t}\\n}\\n\\n.footer {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\ttransition: bottom var(--animation-slow) ease-in-out;\\n\\tpadding: 1rem 0;\\n}\\n\\n.edit-panels {\\n\\tdisplay: inline-block;\\n\\tmargin:auto;\\n\\tbackground-position: 16px center;\\n\\tpadding: 12px 16px;\\n\\tpadding-left: 36px;\\n\\tborder-radius: var(--border-radius-pill);\\n\\tmax-width: 200px;\\n\\topacity: 1;\\n\\ttext-align: center;\\n}\\n\\n.button,\\n.button-vue,\\n.edit-panels,\\n.statuses ::v-deep .action-item .action-item__menutoggle,\\n.statuses ::v-deep .action-item.action-item--open .action-item__menutoggle {\\n\\tbackground-color: var(--color-main-background-blur);\\n\\t-webkit-backdrop-filter: var(--filter-background-blur);\\n\\tbackdrop-filter: var(--filter-background-blur);\\n\\topacity: 1 !important;\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-background-hover)!important;\\n\\t}\\n\\t&:focus-visible {\\n\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\\n\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t}\\n}\\n\\n.modal__content {\\n\\tpadding: 32px 16px;\\n\\ttext-align: center;\\n\\n\\tol {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tjustify-content: center;\\n\\t\\tlist-style-type: none;\\n\\t\\tpadding-bottom: 16px;\\n\\t}\\n\\tli {\\n\\t\\tlabel {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tpadding: 48px 16px 14px 16px;\\n\\t\\t\\tmargin: 8px;\\n\\t\\t\\twidth: 140px;\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\t\\ttext-align: left;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: 16px;\\n\\t\\t\\t\\twidth: 24px;\\n\\t\\t\\t\\theight: 24px;\\n\\t\\t\\t\\tbackground-size: 24px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Do not invert status icons\\n\\t\\t&:not(.panel-status) label span {\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t}\\n\\n\\t\\tinput[type='checkbox'].checkbox + label:before {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tright: 12px;\\n\\t\\t\\ttop: 16px;\\n\\t\\t}\\n\\n\\t\\tinput:focus + label {\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\th3 {\\n\\t\\tfont-weight: bold;\\n\\n\\t\\t&:not(:first-of-type) {\\n\\t\\t\\tmargin-top: 64px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Adjust design of 'Get more widgets' button\\n\\t.button {\\n\\t\\tdisplay: inline-block;\\n\\t\\tpadding: 10px 16px;\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\tp {\\n\\t\\tmax-width: 650px;\\n\\t\\tmargin: 0 auto;\\n\\n\\t\\ta:hover,\\n\\t\\ta:focus {\\n\\t\\t\\tborder-bottom: 2px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t.credits--end {\\n\\t\\tpadding-bottom: 32px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\ta {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n}\\n\\n.flip-list-move {\\n\\ttransition: transform var(--animation-slow);\\n}\\n\\n.statuses {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tjustify-content: center;\\n\\tflex-wrap: wrap;\\n\\tmargin-bottom: 36px;\\n\\n\\t& > li {\\n\\t\\tmargin: 8px;\\n\\t}\\n}\\n</style>\\n<style>\\nhtml, body {\\n\\tbackground-attachment: fixed;\\n}\\n\\n#body-user #header {\\n\\tposition: fixed;\\n}\\n\\n#content {\\n\\toverflow: auto;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**!\n * Sortable 1.10.2\n * @author\tRubaXa <trash@rubaxa.org>\n * @author\towenm <owen23355@gmail.com>\n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4773;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4773: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], () => (__webpack_require__(88214)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","data","isMobile","this","_isMobile","beforeMount","window","addEventListener","_onResize","beforeDestroy","removeEventListener","methods","document","documentElement","clientWidth","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","r","name","props","required","default","type","String","s","n","t","_self","_c","_setupProxy","staticClass","_v","_s","_e","_t","_","exports","l","mixins","id","validator","trim","checked","Boolean","value","Number","disabled","emits","computed","isFocusable","toggleInput","$refs","label","click","onChange","$emit","radio","e","i","class","ref","focusable","attrs","domProps","on","keydown","a","indexOf","_k","keyCode","key","ctrlKey","shiftKey","altKey","metaKey","preventDefault","apply","arguments","change","for","text","d","components","ArrowRight","computedId","onInput","target","onSubmit","stopPropagation","onClick","isIconUrl","icon","style","backgroundImage","submit","_b","input","$attrs","directives","rawName","expression","size","selection","showDetails","showdetails","color","test","formattedColor","startsWith","o","backgroundColor","NcInputConfirmCancel","NcLoadingIcon","loading","editLabel","editPlaceholder","newItemValue","newItemActive","handleNewItem","$nextTick","newItemInput","focusInput","cancelNewItem","handleNewItemDone","title","placeholder","cancel","confirm","model","callback","fillColor","role","fill","width","height","viewBox","ClickOutside","Cog","open","clickOutsideConfig","closeMenu","clickOutsideOptions","ariaLabel","toggleMenu","C","NcAvatar","NcActions","NcActionButton","targetUrl","avatarUrl","avatarUsername","avatarIsNoUser","overlayIconUrl","mainText","subText","itemMenu","Object","forceMenu","hovered","item","gotMenu","keys","length","$slots","actions","gotOverlayIcon","onLinkClick","closest","mouseover","mouseleave","tag","href","url","user","alt","src","_l","y","NcDashboardWidgetItem","NcEmptyContent","Check","items","Array","showMoreUrl","showMoreLabel","showItemsAndEmptyContent","emptyContentMessage","halfEmptyContentMessage","handlers","displayedItems","maxItemNumber","slice","showHalfEmptyContentArea","halfEmptyContentString","showMore","description","scopedSlots","_u","fn","proxy","_g","_m","tabindex","h","mounted","getElementById","classList","add","destroyed","remove","NcButton","labelTranslated","resourceName","NcResource","providerId","itemId","resourceType","limit","fileInfo","header","primary","appEnabled","OC","appswebroots","related_resources","error","resources","isVisible","subline","hasResourceInfo","isFiles","watch","fetchRelatedResources","created","get","ocs","console","_vue_richtext_widgets","_registerWidget","onDestroy","A","reference","compact","hasCustomWidget","T","richObjectType","noAccess","accessible","descriptionStyle","display","lineClamp","webkitLineClamp","compactLink","openGraphObject","link","substring","renderWidget","observer","ResizeObserver","contentRect","observe","$el","disconnect","D","customWidget","innerHTML","richObject","z","F","rel","thumb","U","G","_vue_richtext_custom_picker_elements","_registerCustomPickerElement","X","provider","isRegistered","renderResult","renderElement","K","domElement","J","Promise","resolve","then","object","_isVue","$on","onCancel","element","detail","Y","ee","re","b","icon_url","R","_vue_richtext_reference_providers","filter","search_providers_ids","debug","ne","replace","RegExp","_vue_richtext_reference_provider_timestamps","sort","order","ie","match","u","push","clearTimeout","setTimeout","URL","ce","le","ae","de","NcSelect","NcHighlight","LinkVariantIcon","selectedProvider","query","multiselectPlaceholder","providerIconAlt","isLink","focus","querySelector","onProviderSelected","onSearch","he","filterable","search","me","fe","NcReferenceWidget","NcTextField","inputValue","abortController","inputPlaceholder","isLinkValid","getElementsByTagName","onClear","abort","updateReference","AbortController","encodeURIComponent","signal","references","catch","ve","nativeOn","keyup","ge","ke","Ce","entry","Pe","rounded","thumbnailUrl","we","Se","Re","DotsHorizontalIcon","NcSearchResult","showEmptyContent","searchPlaceholder","searchQuery","selectedResult","resultsBySearchProvider","searching","searchingMoreOf","noOptionsText","mySearchPlaceholder","searchProviderIds","rawLinkEntry","formattedSearchResults","resourceUrl","isRawLink","forEach","entries","isCustomGroupTitle","map","isPaginated","isMore","isLoading","resetResults","cancelSearchRequests","onSearchInput","updateSearch","onSelectResultSelected","searchMoreOf","searchProviders","searchOneProvider","cursor","allSettled","find","status","reason","code","term","xe","autoscroll","$e","Ne","providerList","standardLinkInput","searchInput","customElement","Ee","NcCustomPickerElement","NcProviderList","NcRawLinkInput","NcSearch","initialProvider","focusOnCreate","MODES","mode","pickerWrapperStyle","onEscapePressed","deselectProvider","cancelProviderSelection","cancelCustomElement","cancelSearch","cancelRawLinkInput","submitLink","Math","floor","Date","now","timestamp","put","oe","Ie","Oe","Ve","NcReferencePicker","NcModal","ArrowLeftIcon","CloseIcon","isInsideViewer","show","backButtonTitle","closeButtonTitle","closeButtonLabel","isProviderSelected","showBackButton","modalSize","includes","H","showModalName","modalName","modal_content","onProviderSelect","onBackClicked","referencePicker","We","close","qe","je","prototype","predicate","TypeError","list","thisArg","call","CustomEvent","CustomEvent$1","event","params","bubbles","cancelable","undefined","evt","createEvent","initCustomEvent","Event","TributeEvents","constructor","tribute","events","bind","boundKeydown","boundKeyup","boundInput","unbind","instance","shouldDeactivate","isActive","hideMenu","commandEvent","callbacks","toLowerCase","inputEvent","menu","contains","li","nodeName","parentNode","Error","selectItemAtIndex","getAttribute","current","externalTrigger","updateSelection","allowSpaces","hasTrailingSpace","autocompleteMode","triggerChar","getKeyCode","isNaN","trigger","triggers","charCodeAt","mentionText","collection","menuShowMinLength","showMenuFor","eventKeyPressed","el","info","range","getTriggerInfo","mentionTriggerChar","selectedPath","mentionSelectedPath","selectedOffset","mentionSelectedOffset","collectionItem","enter","filteredItems","menuSelected","escape","tab","space","spaceSelectsMatch","up","count","selected","setActiveLi","scrollTop","scrollHeight","down","delete","index","lis","querySelectorAll","parseInt","selectClass","liClientRect","getBoundingClientRect","menuClientRect","bottom","scrollDistance","top","getFullHeight","elem","includeMargin","currentStyle","getComputedStyle","parseFloat","marginTop","marginBottom","TributeMenuEvents","menuEvents","menuClickEvent","menuContainerScrollEvent","debounce","windowResizeEvent","positionMenuAtCaret","getDocument","menuContainer","func","wait","immediate","timeout","context","args","callNow","TributeRange","iframe","contentWindow","scrollTo","coordinates","positionMenu","cssText","isContentEditable","getContentEditableCaretPosition","mentionPosition","getTextAreaOrInputUnderlinePosition","left","right","scrollIntoView","menuDimensions","offsetWidth","offsetHeight","menuIsOffScreen","isMenuOffScreen","menuIsOffScreenHorizontally","innerWidth","menuIsOffScreenVertically","innerHeight","menuContainerIsBody","body","selectElement","targetElement","path","offset","childNodes","nextSibling","previousSibling","sel","getWindowSelection","createRange","setStart","setEnd","collapse","removeAllRanges","addRange","replaceTriggerText","requireLeadingSpace","originalEvent","replaceEvent","replaceTextSuffix","endPos","pasteHtml","myField","textSuffix","startPos","selectionStart","selectionEnd","dispatchEvent","html","anchorNode","deleteContents","createElement","node","lastNode","frag","createDocumentFragment","firstChild","appendChild","insertNode","cloneRange","setStartAfter","getSelection","getNodePositionInParent","getContentEditableSelectedPath","ctx","contentEditable","reverse","getRangeAt","startOffset","getTextPrecedingCurrentSelection","selectedElem","workingNodeContent","textContent","selectStartOffset","textComponent","getLastWordInText","wordsArray","split","menuAlreadyActive","isAutocomplete","selectionInfo","effectiveRange","lastWordOfEffectiveRange","mentionSelectedElement","mostRecentTriggerCharPos","config","c","idx","lastIndexWithLeadingSpace","lastIndexOf","currentTriggerSnippet","firstSnippetChar","leadingSpace","regex","str","reversedStr","join","cidx","len","firstChar","triggerIdx","windowWidth","windowHeight","doc","windowLeft","pageXOffset","scrollLeft","clientLeft","windowTop","pageYOffset","clientTop","menuTop","menuRight","menuBottom","menuLeft","ceil","getMenuDimensions","dimensions","position","flipped","isFirefox","mozInnerScreenX","div","whiteSpace","wordWrap","visibility","prop","overflowY","overflow","span","rect","offsetTop","borderTopWidth","fontSize","offsetLeft","borderLeftWidth","parentHeight","scrollStillAvailable","removeChild","selectedNodePosition","clientRect","elemTop","elemBottom","maxY","targetY","TributeSearch","simpleFilter","pattern","array","string","opts","pre","post","compareString","caseSensitive","skip","rendered","score","patternCache","traverse","render","cache","stringIndex","patternIndex","calculateScore","best","temp","pop","indices","arr","reduce","prev","extract","original","Tribute","values","containerClass","itemClass","selectTemplate","menuItemTemplate","lookup","fillAttr","noMatchTemplate","searchOpts","menuItemLimit","defaultSelectTemplate","defaultMenuItemTemplate","warn","_isActive","val","noMatchEvent","matchItem","inputTypes","attach","jQuery","NodeList","HTMLCollection","_attach","hasAttribute","ensureEditable","setAttribute","createMenu","wrapper","ul","className","currentMentionTextSnapshot","tributeMenu","processValues","fragment","_findLiTarget","movementY","showMenuForCollection","collectionIndex","activeElement","placeCaretAtEnd","insertTextAtCursor","insertAtCaret","selectNodeContents","createTextRange","textRange","moveToElementText","select","textNode","createTextNode","textarea","scrollPos","caretPos","front","back","content","replaceText","_append","newValues","concat","append","appendCurrent","detach","_detach","removeAttribute","iconUrl","source","getAvatarUrl","haveStatus","tooltip","autoComplete","Function","Element","multiline","contenteditable","maxlength","emojiAutocomplete","linkAutocomplete","textSmiles","autocompleteOptions","renderComponentHtml","genSelectTemplate","debouncedAutoComplete","emojiOptions","native","short_name","unshift","linkOptions","getLink","localValue","isComposing","isEmptyValue","isFF","navigator","userAgent","isOverMaxlength","countAnsiEscapeCodes","tooltipString","shown","canEdit","listeners","$listeners","paste","parseContent","updateContent","autocompleteTribute","emojiTribute","linkTribute","async","g","se","extend","propsData","$mount","$destroy","$","result","insertText","replaceWith","setCursorAfter","updateValue","setEndAfter","onPaste","clipboardData","files","getData","rangeCount","deleteFromDocument","endOffset","renderContent","onDelete","isCollapsed","commonAncestorContainer","nodeType","setEndBefore","anchorOffset","cloneContents","lastChild","onEnter","onCtrlEnter","onKeyUp","stopImmediatePropagation","compositionstart","compositionend","referenceData","displayedReferences","firstReference","fetch","exec","M","autolink","useMarkdown","children","splice","flat","component","p","tagName","P","NcReferenceList","referenceLimit","markdownCssClasses","ol","strong","em","h1","h2","h3","h4","h5","h6","hr","table","blockquote","renderPlaintext","isArray","renderMarkdown","use","prefix","processSync","saving","indicatorColor","hint","submitTranslated","idSubmit","groups","randId","errorMessage","hasError","filteredValue","displayname","groupsArray","handler","loadGroup","appName","appVersion","sessionStorage","getItem","fromEntries","JSON","parse","setItem","stringify","update","encodeURI","filterGroups","toLocaleLowerCase","multiple","NcPopover","NcUserBubbleDiv","avatarImage","displayName","showUserStatus","location","margin","isPopoverComponent","popoverEmpty","isAvatarUrl","isCustomAvatar","hasUrl","isLinkComponent","styles","lineHeight","borderRadius","avatar","marginLeft","util","onOpenChange","Z","Symbol","toStringTag","NcDashboardWidget","CheckIcon","widget","newButton","buttons","button","moreButton","setupButton","_vm","_ref","subtitle","panels","loadState","firstRun","statusInfo","weather","ApiDashboardWidget","Draggable","Pencil","isAdmin","getCurrentUser","timer","registeredStatus","callbacksStatus","allCallbacksStatus","enabledStatuses","uid","layout","panelId","modal","appStoreUrl","generateUrl","statuses","apiWidgets","apiWidgetItems","loadingItems","greeting","time","getHours","partOfDay","good","morning","generic","withName","afternoon","evening","night","panel","isStatusActive","sortedAllStatuses","sortStatuses","sortedPanels","indexA","indexB","sortedRegisteredStatus","rerenderPanels","app","Vue","fetchApiWidgets","apiWidgetIdsToFetch","isApiWidgetV2","all","fetchApiWidgetItems","reload_interval","setInterval","updateSkipLink","handleScroll","disableFirstrunHint","register","registerStatus","saveLayout","axios","saveStatuses","showModal","closeModal","updateCheckbox","currentValue","getElementsByClassName","updateStatusCheckbox","enableStatus","disableStatus","findIndex","al","bl","scrollY","response","generateOcsUrl","widgetIds","merge","URLSearchParams","widgetItems","toString","assign","item_api_versions","refInFor","$$v","swapThreshold","delay","delayOnTouchOnly","touchStartThreshold","icon_class","iconClass","$event","draggable","__webpack_nonce__","btoa","getRequestToken","directive","VTooltip","OCA","Files","App","fileList","filesClient","getClient","Instance","DashboardApp","Dashboard","___CSS_LOADER_EXPORT___","module","_typeof","obj","iterator","_defineProperty","defineProperty","enumerable","configurable","writable","_extends","hasOwnProperty","_objectSpread","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","off","matches","selector","msMatchesSelector","webkitMatchesSelector","getParentOrHost","host","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","css","defaultView","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","elRect","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","Sortable","ghost","dragged","last","lastElementChild","previousElementSibling","toUpperCase","clone","getRelativeScrollOffset","winScroller","includeSelf","gotSelf","scrollWidth","clientHeight","elemCSS","overflowX","isRectEqual","rect1","rect2","round","throttle","ms","scrollBy","x","Polymer","Zepto","dom","cloneNode","setRect","unsetRect","expando","getTime","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","eventName","sortable","_this","eventCanceled","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","putSortable","extraEventProperties","onName","charAt","substr","initEvent","to","from","pullMode","lastPutMode","allEventProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","clear","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","revertClone","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","some","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","animationCallbackId","animationStates","store","handle","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","captureAnimationState","child","fromRect","thisAnimationDuration","childMatrix","f","addAnimationState","removeAnimationState","indexOfObject","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","max","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","repaint","animated","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","sum","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","root","inputs","_saveInputCheckedState","criteria","_prepareDragStart","dragStartFn","ownerDocument","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","_onTouchMove","_onDragStart","empty","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","insertBefore","_loopId","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","save","handleEvent","dropEffect","_globalDragOver","toArray","set","destroy","utils","is","dst","nextTick","cancelNextTick","detectDirection","_len","_key","create","version","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","lastSwapEl","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","_ref2","swap","prevSwapEl","_ref3","n1","n2","i1","i2","p1","p2","isEqualNode","nulling","swapItem","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","_this2","removeMultiDragElements","dragOver","_ref8","_ref9","clonesInserted","insertMultiDragElements","dragOverCompleted","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","lastIndex","currentIndex","multiDragIndex","nullingGlobal","destroyGlobal","shift","deselect","_this3","oldIndicies","newIndicies","arr2","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","clones","elementsInserted","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverBubble","ogElemScroller","newElem","factory","self","__WEBPACK_EXTERNAL_MODULE_a352__","modules","installedModules","moduleId","m","getter","__esModule","ns","property","LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","toInteger","defined","TO_STRING","that","pos","at","S","unicode","anObject","global","ignoreCase","sticky","$keys","enumBugKeys","O","dP","getKeys","defineProperties","Properties","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","done","strfn","rxfn","arg","isObject","it","cof","ARG","B","tryGet","callee","has","SRC","$toString","TPL","inspectSource","safe","isFunction","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","write","lt","USE_SYMBOL","INCLUDES","searchString","createDesc","toObject","ObjectProto","descriptor","bitmap","MATCH","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","core","SHARED","copyright","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","W","classof","builtinExec","shared","$includes","IObject","valueOf","gOPS","pIE","$assign","k","aLen","getSymbols","isEnum","j","__g","min","def","stat","__e","IE8_DOM_DEFINE","toPrimitive","Attributes","aFunction","UNSCOPABLES","ArrayProto","toLength","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","res","rx","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","symbols","ch","isRegExp","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","forced","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","insertNodeAt","camelize","removeNode","parentElement","fatherNode","refNode","px","random","addToUnscopables","step","iterated","_i","Arguments","arrayIndexOf","names","STARTS_WITH","$startsWith","currentScript","scripts","stack","readyState","setPublicPath_i","_arrayLikeToArray","_unsupportedIterableToArray","minLen","_toConsumableArray","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","emit","evtName","evtData","delegateAndEmit","realList","isTransitionName","getSlot","slot","scopedSlot","eventsListened","eventsToEmit","readonlyProperties","draggingElement","draggableComponent","inheritAttrs","noTransitionOnDrag","move","componentData","transitionMode","noneFunctionalComponentMode","slots","componentOptions","_arrayWithHoles","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","vuedraggable_isTransition","_computeChildrenAndOf","headerOffset","footerOffset","footer","computeChildrenAndOffsets","$scopedSlots","attributes","propName","buildAttribute","componentDataAttrs","getComponentAttributes","getTag","getIsFunctional","optionsAdded","elt","onDragMove","_sortable","rootContainer","computeIndexes","newOptionValue","updateOptions","deep","fnOptions","_vnode","functional","getChildrenNodes","$children","rawNodes","_this4","visibleIndexes","isTransition","elmFromNodes","elm","footerIndex","rawIndexes","ind","_computeIndexes","getUnderlyingVm","htmlElt","vnodes","getUnderlyingPotencialDraggableComponent","vue","__vue__","$options","_componentTag","$parent","emitChanges","_this5","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedContext","futureIndex","onDragEnd","vuedraggable","__webpack_module_cache__","__webpack_require__","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","definition","globalThis","nmd","paths","baseURI","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"dashboard-main.js?v=b26f1e3d05b37679e001","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/dashboard/src/mixins/isMobile.js","webpack://nextcloud/./apps/dashboard/src/components/ApiDashboardWidget.vue?7e36","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-5fa0ac5a.css?cafc","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcActionButtonGroup.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-24f6c355.css?1739","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcActionRadio.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-93ad846c.css?b403","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcActionTextEditable.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppContentDetails.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppContentList.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-fc61f2d8.css?f860","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppNavigationIconBullet.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-93bc89ef.css?ee5f","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppNavigationNewItem.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-34dfc54e.css?3ad0","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppNavigationSettings.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-6416f636.css?9b06","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-e7eadba7.css?79db","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcDashboardWidgetItem.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcDashboardWidget.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-8aa4712e.css?e653","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcGuestContent.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-ab715d82.css?da3a","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcRelatedResourcesPanel.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-6bc8f6b9.mjs","webpack:///nextcloud/node_modules/tributejs/dist/tribute.esm.js","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs","webpack:///nextcloud/node_modules/string-length/index.js","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcRichText-1e8fd02d.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcSavingIndicatorIcon.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-6c47e88a.css?d9ac","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcSettingsInputText.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcSettingsSelectGroup-0d38d76b.css?c6e5","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcSettingsSelectGroup-ae323579.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/index-c221fe05.css?4d04","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcUserBubble.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/index.mjs","webpack:///nextcloud/apps/dashboard/src/components/ApiDashboardWidget.vue","webpack:///nextcloud/apps/dashboard/src/components/ApiDashboardWidget.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/dashboard/src/components/ApiDashboardWidget.vue?858f","webpack:///nextcloud/apps/dashboard/src/DashboardApp.vue","webpack:///nextcloud/apps/dashboard/src/DashboardApp.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/dashboard/src/DashboardApp.vue?d7cf","webpack://nextcloud/./apps/dashboard/src/DashboardApp.vue?9e65","webpack://nextcloud/./apps/dashboard/src/DashboardApp.vue?5685","webpack://nextcloud/./apps/dashboard/src/DashboardApp.vue?1477","webpack:///nextcloud/apps/dashboard/src/main.js","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcSettingsSelectGroup-0d38d76b.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-24f6c355.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-34dfc54e.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-5fa0ac5a.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-6416f636.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-6c47e88a.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-8aa4712e.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-93ad846c.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-93bc89ef.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-ab715d82.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-c221fe05.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-e7eadba7.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/index-fc61f2d8.css","webpack:///nextcloud/apps/dashboard/src/DashboardApp.vue?vue&type=style&index=0&id=9fd44988&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/dashboard/src/DashboardApp.vue?vue&type=style&index=1&id=9fd44988&prod&lang=css","webpack:///nextcloud/node_modules/sortablejs/modular/sortable.esm.js","webpack:///nextcloud/node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/**\n * @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: this._isMobile(),\n\t\t}\n\t},\n\tbeforeMount() {\n\t\twindow.addEventListener('resize', this._onResize)\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this._onResize)\n\t},\n\tmethods: {\n\t\t_onResize() {\n\t\t\t// Update mobile mode\n\t\t\tthis.isMobile = this._isMobile()\n\t\t},\n\t\t_isMobile() {\n\t\t\t// check if content width is under 768px\n\t\t\treturn document.documentElement.clientWidth < 768\n\t\t},\n\t},\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDashboardWidget',{attrs:{\"items\":_vm.items,\"show-more-label\":_vm.showMoreLabel,\"show-more-url\":_vm.showMoreUrl,\"loading\":_vm.loading,\"show-items-and-empty-content\":!!_vm.halfEmptyContentMessage,\"half-empty-content-message\":_vm.halfEmptyContentMessage},scopedSlots:_vm._u([{key:\"default\",fn:function({ item }){return [_c('NcDashboardWidgetItem',{attrs:{\"target-url\":item.link,\"overlay-icon-url\":item.overlayIconUrl ? item.overlayIconUrl : '',\"main-text\":item.title,\"sub-text\":item.subtitle},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [(item.iconUrl)?[_c('NcAvatar',{attrs:{\"size\":44,\"url\":item.iconUrl}})]:_vm._e()]},proxy:true}],null,true)})]}},{key:\"empty-content\",fn:function(){return [(_vm.items.length === 0)?_c('NcEmptyContent',{attrs:{\"description\":_vm.emptyContentMessage},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.emptyContentMessage)?_c('CheckIcon',{attrs:{\"size\":65}}):_vm._e()]},proxy:true},{key:\"action\",fn:function(){return [(_vm.setupButton)?_c('NcButton',{attrs:{\"href\":_vm.setupButton.link}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.setupButton.text)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,4172361897)}):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-5fa0ac5a.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-5fa0ac5a.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-5fa0ac5a.css\";\nimport { defineComponent as e } from \"vue\";\nimport { n as o } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst r = e({\n name: \"NcActionButtonGroup\",\n props: {\n /**\n * Optional text shown below the button group\n */\n name: {\n required: !1,\n default: void 0,\n type: String\n }\n }\n});\nvar s = function() {\n var n = this, t = n._self._c;\n return n._self._setupProxy, t(\"li\", { staticClass: \"nc-button-group-base\" }, [n.name ? t(\"div\", [n._v(\" \" + n._s(n.name) + \" \")]) : n._e(), t(\"ul\", { staticClass: \"nc-button-group-content\" }, [n._t(\"default\")], 2)]);\n}, _ = [], u = /* @__PURE__ */ o(\n r,\n s,\n _,\n !1,\n null,\n null,\n null,\n null\n);\nconst p = u.exports;\nexport {\n p as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-24f6c355.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-24f6c355.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-24f6c355.css\";\nimport { A as n } from \"../chunks/actionGlobal-8c1c28c9.mjs\";\nimport { G as s } from \"../chunks/GenRandomId-cb9ccebe.mjs\";\nimport { n as o } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst l = {\n name: \"NcActionRadio\",\n mixins: [n],\n props: {\n /**\n * id attribute of the radio element\n */\n id: {\n type: String,\n default: () => \"action-\" + s(),\n validator: (t) => t.trim() !== \"\"\n },\n /**\n * checked state of the the radio element\n */\n checked: {\n type: Boolean,\n default: !1\n },\n /**\n * Define if this radio is part of a set.\n * Checking the radio will disable all the\n * others with the same name.\n */\n name: {\n type: String,\n required: !0\n },\n /**\n * value of the radio input\n */\n value: {\n type: [String, Number],\n default: \"\"\n },\n /**\n * disabled state of the radio element\n */\n disabled: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"update:checked\",\n \"change\"\n ],\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n }\n },\n methods: {\n toggleInput(t) {\n this.$refs.label.click();\n },\n onChange(t) {\n this.$emit(\"update:checked\", this.$refs.radio.checked), this.$emit(\"change\", t);\n }\n }\n};\nvar r = function() {\n var e = this, i = e._self._c;\n return i(\"li\", { staticClass: \"action\", class: { \"action--disabled\": e.disabled } }, [i(\"span\", { staticClass: \"action-radio\" }, [i(\"input\", { ref: \"radio\", staticClass: \"radio action-radio__radio\", class: { focusable: e.isFocusable }, attrs: { id: e.id, disabled: e.disabled, name: e.name, type: \"radio\" }, domProps: { checked: e.checked, value: e.value }, on: { keydown: function(a) {\n return !a.type.indexOf(\"key\") && e._k(a.keyCode, \"enter\", 13, a.key, \"Enter\") || a.ctrlKey || a.shiftKey || a.altKey || a.metaKey ? null : (a.preventDefault(), e.toggleInput.apply(null, arguments));\n }, change: e.onChange } }), i(\"label\", { ref: \"label\", staticClass: \"action-radio__label\", attrs: { for: e.id } }, [e._v(e._s(e.text))]), e._e()], 2)]);\n}, d = [], c = /* @__PURE__ */ o(\n l,\n r,\n d,\n !1,\n null,\n \"b5f9046e\",\n null,\n null\n);\nconst m = c.exports;\nexport {\n m as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-93ad846c.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-93ad846c.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-93ad846c.css\";\nimport { A as n } from \"../chunks/actionText-a64be267.mjs\";\nimport { G as i } from \"../chunks/GenRandomId-cb9ccebe.mjs\";\nimport { A as l } from \"../chunks/ArrowRight-74a9fcb2.mjs\";\nimport { n as o } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst r = {\n name: \"NcActionTextEditable\",\n components: {\n ArrowRight: l\n },\n mixins: [n],\n props: {\n /**\n * id attribute of the checkbox element\n */\n id: {\n type: String,\n default: () => \"action-\" + i(),\n validator: (e) => e.trim() !== \"\"\n },\n /**\n * disabled state of the text area\n */\n disabled: {\n type: Boolean,\n default: !1\n },\n /**\n * value attribute of the input field\n */\n value: {\n type: String,\n default: \"\"\n }\n },\n emits: [\n \"input\",\n \"update:value\",\n \"submit\"\n ],\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n computedId() {\n return i();\n }\n },\n methods: {\n onInput(e) {\n this.$emit(\"input\", e), this.$emit(\"update:value\", e.target.value);\n },\n onSubmit(e) {\n if (e.preventDefault(), e.stopPropagation(), !this.disabled)\n this.$emit(\"submit\", e);\n else\n return !1;\n }\n }\n};\nvar d = function() {\n var t = this, a = t._self._c;\n return a(\"li\", { staticClass: \"action\", class: { \"action--disabled\": t.disabled } }, [a(\"span\", { staticClass: \"action-text-editable\", on: { click: t.onClick } }, [t._t(\"icon\", function() {\n return [a(\"span\", { staticClass: \"action-text-editable__icon\", class: [t.isIconUrl ? \"action-text-editable__icon--url\" : t.icon], style: { backgroundImage: t.isIconUrl ? `url(${t.icon})` : null } })];\n }), a(\"form\", { ref: \"form\", staticClass: \"action-text-editable__form\", attrs: { disabled: t.disabled }, on: { submit: function(s) {\n return s.preventDefault(), t.onSubmit.apply(null, arguments);\n } } }, [a(\"input\", { staticClass: \"action-text-editable__submit\", attrs: { id: t.id, type: \"submit\" } }), t.name ? a(\"label\", { staticClass: \"action-text-editable__name\", attrs: { for: t.computedId } }, [t._v(\" \" + t._s(t.name) + \" \")]) : t._e(), a(\"textarea\", t._b({ class: [\"action-text-editable__textarea\", { focusable: t.isFocusable }], attrs: { id: t.computedId, disabled: t.disabled }, domProps: { value: t.value }, on: { input: t.onInput } }, \"textarea\", t.$attrs, !1)), a(\"label\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !t.disabled, expression: \"!disabled\" }], staticClass: \"action-text-editable__label\", attrs: { for: t.id } }, [a(\"ArrowRight\", { attrs: { size: 20 } })], 1)])], 2)]);\n}, c = [], u = /* @__PURE__ */ o(\n r,\n d,\n c,\n !1,\n null,\n \"b0b05af8\",\n null,\n null\n);\nconst x = u.exports;\nexport {\n x as default\n};\n","import { n as e } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst a = {\n name: \"NcAppContentDetails\"\n};\nvar s = function() {\n var n = this, t = n._self._c;\n return t(\"div\", { staticClass: \"app-content-details\" }, [n._t(\"default\")], 2);\n}, l = [], r = /* @__PURE__ */ e(\n a,\n s,\n l,\n !1,\n null,\n null,\n null,\n null\n);\nconst c = r.exports;\nexport {\n c as default\n};\n","import { n as s } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst n = {\n name: \"NcAppContentList\",\n props: {\n selection: {\n type: Boolean,\n default: !1\n },\n showDetails: {\n type: Boolean,\n default: !1\n }\n }\n};\nvar l = function() {\n var e = this, t = e._self._c;\n return t(\"div\", { staticClass: \"app-content-list\", class: { selection: e.selection, showdetails: e.showDetails } }, [e._t(\"default\")], 2);\n}, a = [], o = /* @__PURE__ */ s(\n n,\n l,\n a,\n !1,\n null,\n null,\n null,\n null\n);\nconst r = o.exports;\nexport {\n r as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-fc61f2d8.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-fc61f2d8.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-fc61f2d8.css\";\nimport { n } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst r = {\n name: \"NcAppNavigationIconBullet\",\n props: {\n color: {\n type: String,\n required: !0,\n validator(t) {\n return /^#?([0-9A-F]{3}){1,2}$/i.test(t);\n }\n }\n },\n emits: [\"click\"],\n computed: {\n formattedColor() {\n return this.color.startsWith(\"#\") ? this.color : \"#\" + this.color;\n }\n },\n methods: {\n onClick(t) {\n this.$emit(\"click\", t);\n }\n }\n};\nvar i = function() {\n var o = this, e = o._self._c;\n return e(\"div\", { staticClass: \"app-navigation-entry__icon-bullet\", on: { click: o.onClick } }, [e(\"div\", { style: { backgroundColor: o.formattedColor } })]);\n}, l = [], c = /* @__PURE__ */ n(\n r,\n i,\n l,\n !1,\n null,\n \"91580127\",\n null,\n null\n);\nconst _ = c.exports;\nexport {\n _ as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-93bc89ef.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-93bc89ef.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-93bc89ef.css\";\nimport { N as a } from \"../chunks/NcInputConfirmCancel-906c7816.mjs\";\nimport i from \"./NcLoadingIcon.mjs\";\nimport { n as l } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst o = {\n name: \"NcAppNavigationNewItem\",\n components: {\n NcInputConfirmCancel: a,\n NcLoadingIcon: i\n },\n props: {\n /**\n * The name of the element.\n */\n name: {\n type: String,\n required: !0\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: !1\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"new-item\"],\n data() {\n return {\n newItemValue: \"\",\n newItemActive: !1\n };\n },\n methods: {\n handleNewItem() {\n this.loading || (this.newItemActive = !0, this.$nextTick(() => {\n this.$refs.newItemInput.focusInput();\n }));\n },\n cancelNewItem() {\n this.newItemActive = !1;\n },\n handleNewItemDone() {\n this.$emit(\"new-item\", this.newItemValue), this.newItemValue = \"\", this.newItemActive = !1;\n }\n }\n};\nvar s = function() {\n var e = this, t = e._self._c;\n return t(\"li\", { staticClass: \"app-navigation-entry\", class: {\n \"app-navigation-entry--newItemActive\": e.newItemActive\n } }, [t(\"button\", { staticClass: \"app-navigation-entry-button\", on: { click: e.handleNewItem } }, [t(\"span\", { staticClass: \"app-navigation-entry-icon\", class: { [e.icon]: !e.loading } }, [e.loading ? t(\"NcLoadingIcon\") : e._t(\"icon\")], 2), e.newItemActive ? e._e() : t(\"span\", { staticClass: \"app-navigation-new-item__name\", attrs: { title: e.name } }, [e._v(\" \" + e._s(e.name) + \" \")]), e.newItemActive ? t(\"span\", { staticClass: \"newItemContainer\" }, [t(\"NcInputConfirmCancel\", { ref: \"newItemInput\", attrs: { placeholder: e.editPlaceholder !== \"\" ? e.editPlaceholder : e.name }, on: { cancel: e.cancelNewItem, confirm: e.handleNewItemDone }, model: { value: e.newItemValue, callback: function(n) {\n e.newItemValue = n;\n }, expression: \"newItemValue\" } })], 1) : e._e()])]);\n}, c = [], m = /* @__PURE__ */ l(\n o,\n s,\n c,\n !1,\n null,\n \"8950be04\",\n null,\n null\n);\nconst _ = m.exports;\nexport {\n _ as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-34dfc54e.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-34dfc54e.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-34dfc54e.css\";\nimport { t as i } from \"../chunks/l10n-f692947e.mjs\";\nimport o from \"../Mixins/clickOutsideOptions.mjs\";\nimport \"vue\";\nimport \"@nextcloud/router\";\n/* empty css */import { n as s } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport \"linkify-string\";\nimport \"escape-html\";\nimport \"striptags\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/capabilities\";\nimport { vOnClickOutside as r } from \"@vueuse/components\";\nconst l = {\n name: \"CogIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar c = function() {\n var t = this, e = t._self._c;\n return e(\"span\", t._b({ staticClass: \"material-design-icon cog-icon\", attrs: { \"aria-hidden\": !t.title, \"aria-label\": t.title, role: \"img\" }, on: { click: function(a) {\n return t.$emit(\"click\", a);\n } } }, \"span\", t.$attrs, !1), [e(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: t.fillColor, width: t.size, height: t.size, viewBox: \"0 0 24 24\" } }, [e(\"path\", { attrs: { d: \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\" } }, [t.title ? e(\"title\", [t._v(t._s(t.title))]) : t._e()])])]);\n}, p = [], _ = /* @__PURE__ */ s(\n l,\n c,\n p,\n !1,\n null,\n null,\n null,\n null\n);\nconst u = _.exports;\nconst d = {\n directives: {\n ClickOutside: r\n },\n components: {\n Cog: u\n },\n mixins: [\n o\n ],\n props: {\n name: {\n type: String,\n required: !1,\n default: i(\"Settings\")\n }\n },\n data() {\n return {\n open: !1\n };\n },\n computed: {\n clickOutsideConfig() {\n return [\n this.closeMenu,\n this.clickOutsideOptions\n ];\n },\n ariaLabel() {\n return i(\"Open settings menu\");\n }\n },\n methods: {\n toggleMenu() {\n this.open = !this.open;\n },\n closeMenu() {\n this.open = !1;\n }\n }\n};\nvar m = function() {\n var t = this, e = t._self._c;\n return e(\"div\", { directives: [{ name: \"click-outside\", rawName: \"v-click-outside\", value: t.clickOutsideConfig, expression: \"clickOutsideConfig\" }], class: { open: t.open }, attrs: { id: \"app-settings\" } }, [e(\"div\", { attrs: { id: \"app-settings__header\" } }, [e(\"button\", { staticClass: \"settings-button\", attrs: { type: \"button\", \"aria-expanded\": t.open ? \"true\" : \"false\", \"aria-controls\": \"app-settings__content\", \"aria-label\": t.ariaLabel }, on: { click: t.toggleMenu } }, [e(\"Cog\", { staticClass: \"settings-button__icon\", attrs: { size: 20 } }), e(\"span\", { staticClass: \"settings-button__label\" }, [t._v(t._s(t.name))])], 1)]), e(\"transition\", { attrs: { name: \"slide-up\" } }, [e(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: t.open, expression: \"open\" }], attrs: { id: \"app-settings__content\" } }, [t._t(\"default\")], 2)])], 1);\n}, C = [], g = /* @__PURE__ */ s(\n d,\n m,\n C,\n !1,\n null,\n \"db4cc195\",\n null,\n null\n);\nconst $ = g.exports;\nexport {\n $ as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-6416f636.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-6416f636.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-e7eadba7.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-e7eadba7.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-e7eadba7.css\";\nimport { N as i } from \"../chunks/index-fbf943b3.mjs\";\nimport o from \"./NcActions.mjs\";\nimport l from \"./NcActionButton.mjs\";\nimport { n as u } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst c = {\n name: \"NcDashboardWidgetItem\",\n components: {\n NcAvatar: i,\n NcActions: o,\n NcActionButton: l\n },\n props: {\n /**\n * The item id (optional)\n */\n id: {\n type: [String, Number],\n default: void 0\n },\n /**\n * The item element is a link to this URL (optional)\n */\n targetUrl: {\n type: String,\n default: void 0\n },\n /**\n * Where to get the avatar image. (optional) Used if avatarUsername is not defined.\n */\n avatarUrl: {\n type: String,\n default: void 0\n },\n /**\n * Name to provide to the Avatar. (optional) Used if avatarUrl is not defined.\n */\n avatarUsername: {\n type: String,\n default: void 0\n },\n /**\n * Is the avatarUsername not a user's name? (optional, false by default)\n */\n avatarIsNoUser: {\n type: Boolean,\n default: !1\n },\n /**\n * Small icon to display on the bottom-right corner of the avatar (optional)\n */\n overlayIconUrl: {\n type: String,\n default: void 0\n },\n /**\n * Item main text (mandatory)\n */\n mainText: {\n type: String,\n required: !0\n },\n /**\n * Item subline text (optional)\n */\n subText: {\n type: String,\n default: \"\"\n },\n /**\n * An object containing context menu entries that will be displayed for each items (optional)\n */\n itemMenu: {\n type: Object,\n default: () => ({})\n },\n /**\n * Specify whether the 3 dot menu is forced when only one action is present\n */\n forceMenu: {\n type: Boolean,\n default: !0\n }\n },\n data() {\n return {\n hovered: !1\n };\n },\n computed: {\n item() {\n return {\n id: this.id,\n targetUrl: this.targetUrl,\n avatarUrl: this.avatarUrl,\n avatarUsername: this.avatarUsername,\n overlayIconUrl: this.overlayIconUrl,\n mainText: this.mainText,\n subText: this.subText\n };\n },\n gotMenu() {\n return Object.keys(this.itemMenu).length !== 0 || !!this.$slots.actions;\n },\n gotOverlayIcon() {\n return this.overlayIconUrl && this.overlayIconUrl !== \"\";\n }\n },\n methods: {\n onLinkClick(r) {\n r.target.closest(\".action-item\") && r.preventDefault();\n }\n }\n};\nvar m = function() {\n var t = this, e = t._self._c;\n return e(\"div\", { on: { mouseover: function(a) {\n t.hovered = !0;\n }, mouseleave: function(a) {\n t.hovered = !1;\n } } }, [e(t.targetUrl ? \"a\" : \"div\", { tag: \"component\", class: { \"item-list__entry\": !0, \"item-list__entry--has-actions-menu\": t.gotMenu }, attrs: { href: t.targetUrl || void 0, target: t.targetUrl ? \"_blank\" : void 0 }, on: { click: t.onLinkClick } }, [t._t(\"avatar\", function() {\n return [e(\"NcAvatar\", { staticClass: \"item-avatar\", attrs: { size: 44, url: t.avatarUrl, user: t.avatarUsername, \"is-no-user\": t.avatarIsNoUser, \"show-user-status\": !t.gotOverlayIcon } })];\n }, { avatarUrl: t.avatarUrl, avatarUsername: t.avatarUsername }), t.overlayIconUrl ? e(\"img\", { staticClass: \"item-icon\", attrs: { alt: \"\", src: t.overlayIconUrl } }) : t._e(), e(\"div\", { staticClass: \"item__details\" }, [e(\"h3\", { attrs: { title: t.mainText } }, [t._v(\" \" + t._s(t.mainText) + \" \")]), e(\"span\", { staticClass: \"message\", attrs: { title: t.subText } }, [t._v(\" \" + t._s(t.subText) + \" \")])]), t.gotMenu ? e(\"NcActions\", { attrs: { \"force-menu\": t.forceMenu } }, [t._t(\"actions\", function() {\n return t._l(t.itemMenu, function(a, n) {\n return e(\"NcActionButton\", { key: n, attrs: { icon: a.icon, \"close-after-click\": !0 }, on: { click: function(s) {\n return s.preventDefault(), s.stopPropagation(), t.$emit(n, t.item);\n } } }, [t._v(\" \" + t._s(a.text) + \" \")]);\n });\n })], 2) : t._e()], 2)], 1);\n}, d = [], v = /* @__PURE__ */ u(\n c,\n m,\n d,\n !1,\n null,\n \"00e861ef\",\n null,\n null\n);\nconst y = v.exports;\nexport {\n y as default\n};\n","import \"../assets/index-6416f636.css\";\nimport { N as r } from \"../chunks/index-fbf943b3.mjs\";\nimport o from \"./NcDashboardWidgetItem.mjs\";\nimport a from \"./NcEmptyContent.mjs\";\nimport { C as i } from \"../chunks/Check-2ea0a88a.mjs\";\nimport { t as m } from \"../chunks/l10n-f692947e.mjs\";\nimport { n as l } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst c = {\n name: \"NcDashboardWidget\",\n components: {\n NcAvatar: r,\n NcDashboardWidgetItem: o,\n NcEmptyContent: a,\n Check: i\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 },\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: m(\"More items …\")\n },\n /**\n * A boolean to put the widget in a loading state.\n */\n loading: {\n type: Boolean,\n default: !1\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 },\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: !1\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 n = {};\n for (const t in this.itemMenu)\n n[t] = (e) => {\n this.$emit(t, e);\n };\n return n;\n },\n displayedItems() {\n const n = this.showMoreUrl && this.items.length >= this.maxItemNumber ? this.maxItemNumber - 1 : this.maxItemNumber;\n return this.items.slice(0, n);\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 u = function() {\n var t = this, e = t._self._c;\n return e(\"div\", { staticClass: \"dashboard-widget\" }, [t.showHalfEmptyContentArea ? e(\"NcEmptyContent\", { staticClass: \"half-screen\", attrs: { description: t.halfEmptyContentString }, scopedSlots: t._u([{ key: \"icon\", fn: function() {\n return [t._t(\"halfEmptyContentIcon\", function() {\n return [e(\"Check\")];\n })];\n }, proxy: !0 }], null, !0) }) : t._e(), e(\"ul\", t._l(t.displayedItems, function(s) {\n return e(\"li\", { key: s.id }, [t._t(\"default\", function() {\n return [e(\"NcDashboardWidgetItem\", t._g(t._b({ attrs: { \"item-menu\": t.itemMenu } }, \"NcDashboardWidgetItem\", s, !1), t.handlers))];\n }, { item: s })], 2);\n }), 0), t.loading ? e(\"div\", t._l(7, function(s) {\n return e(\"div\", { key: s, staticClass: \"item-list__entry\" }, [e(\"NcAvatar\", { staticClass: \"item-avatar\", attrs: { size: 44 } }), t._m(0, !0)], 1);\n }), 0) : t.items.length === 0 ? t._t(\"empty-content\", function() {\n return [t.emptyContentMessage ? e(\"NcEmptyContent\", { attrs: { description: t.emptyContentMessage }, scopedSlots: t._u([{ key: \"icon\", fn: function() {\n return [t._t(\"emptyContentIcon\")];\n }, proxy: !0 }], null, !0) }) : t._e()];\n }) : t.showMore ? e(\"a\", { staticClass: \"more\", attrs: { href: t.showMoreUrl, target: \"_blank\", tabindex: \"0\" } }, [t._v(\" \" + t._s(t.showMoreLabel) + \" \")]) : t._e()], 2);\n}, h = [function() {\n var n = this, t = n._self._c;\n return t(\"div\", { staticClass: \"item__details\" }, [t(\"h3\", [n._v(\" \")]), t(\"p\", { staticClass: \"message\" }, [n._v(\"  \")])]);\n}], p = /* @__PURE__ */ l(\n c,\n u,\n h,\n !1,\n null,\n \"1efcbeee\",\n null,\n null\n);\nconst v = p.exports;\nexport {\n v as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-8aa4712e.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-8aa4712e.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-8aa4712e.css\";\nimport { n } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst s = {\n name: \"NcGuestContent\",\n mounted() {\n document.getElementById(\"content\").classList.add(\"nc-guest-content\");\n },\n destroyed() {\n document.getElementById(\"content\").classList.remove(\"nc-guest-content\");\n }\n};\nvar _ = function() {\n var t = this, e = t._self._c;\n return e(\"div\", { attrs: { id: \"guest-content-vue\" } }, [t._t(\"default\")], 2);\n}, c = [], o = /* @__PURE__ */ n(\n s,\n _,\n c,\n !1,\n null,\n \"36ad47ca\",\n null,\n null\n);\nconst r = o.exports;\nexport {\n r as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-ab715d82.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-ab715d82.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-ab715d82.css\";\nimport o from \"@nextcloud/axios\";\nimport { generateOcsUrl as l } from \"@nextcloud/router\";\nimport a from \"./NcButton.mjs\";\nimport { t as s } from \"../chunks/l10n-f692947e.mjs\";\nimport { n } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst u = {\n name: \"NcResource\",\n components: {\n NcButton: a\n },\n props: {\n icon: {\n type: String,\n required: !0\n },\n name: {\n type: String,\n required: !0\n },\n url: {\n type: String,\n required: !0\n }\n },\n data() {\n return {\n labelTranslated: s('Open link to \"{resourceName}\"', { resourceName: this.name })\n };\n },\n methods: {\n t: s\n }\n};\nvar c = function() {\n var e = this, t = e._self._c;\n return t(\"li\", { staticClass: \"resource\" }, [t(\"NcButton\", { staticClass: \"resource__button\", attrs: { \"aria-label\": e.labelTranslated, type: \"tertiary\", href: e.url }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"div\", { staticClass: \"resource__icon\" }, [t(\"img\", { attrs: { src: e.icon } })])];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(e.name) + \" \")])], 1);\n}, d = [], p = /* @__PURE__ */ n(\n u,\n c,\n d,\n !1,\n null,\n \"1a960bef\",\n null,\n null\n);\nconst f = p.exports;\nconst _ = {\n name: \"NcRelatedResourcesPanel\",\n components: {\n NcResource: f\n },\n props: {\n /**\n * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n providerId: {\n type: String,\n default: null\n },\n /**\n * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n */\n itemId: {\n type: [String, Number],\n default: null\n },\n /**\n * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n resourceType: {\n type: String,\n default: null\n },\n /**\n * Set the maximum number of resources to load\n */\n limit: {\n type: Number,\n default: null\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: s(\"Related resources\")\n },\n description: {\n type: String,\n default: s(\"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: !1\n }\n },\n emits: [\n \"has-error\",\n \"has-resources\"\n ],\n data() {\n var r;\n return {\n appEnabled: ((r = OC == null ? void 0 : OC.appswebroots) == null ? void 0 : r.related_resources) !== void 0,\n loading: !1,\n error: null,\n resources: []\n };\n },\n computed: {\n isVisible() {\n var r;\n return this.loading ? !1 : (r = this.error) != null ? r : this.resources.length > 0;\n },\n subline() {\n return this.error ? s(\"Error getting related resources. Please contact your system administrator if you have any questions.\") : this.description;\n },\n hasResourceInfo() {\n return this.providerId !== null && this.itemId !== null || this.fileInfo !== null;\n },\n isFiles() {\n var r;\n return ((r = this.fileInfo) == null ? void 0 : r.id) !== void 0;\n },\n url() {\n let r = null, e = null;\n return this.isFiles ? (r = \"files\", e = this.fileInfo.id) : (r = this.providerId, e = this.itemId), l(\"/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json\", {\n providerId: r,\n itemId: e,\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(r) {\n this.$emit(\"has-error\", !!r);\n },\n resources(r) {\n this.$emit(\"has-resources\", r.length > 0);\n }\n },\n created() {\n this.fetchRelatedResources();\n },\n methods: {\n t: s,\n async fetchRelatedResources() {\n var r;\n if (!(!this.appEnabled || !this.hasResourceInfo)) {\n this.loading = !0, this.error = null, this.resources = [];\n try {\n const e = await o.get(this.url);\n this.resources = (r = e.data.ocs) == null ? void 0 : r.data;\n } catch (e) {\n this.error = e, console.error(e);\n } finally {\n this.loading = !1;\n }\n }\n }\n }\n};\nvar h = function() {\n var e = this, t = e._self._c;\n return e.appEnabled && e.isVisible ? t(\"div\", { staticClass: \"related-resources\" }, [t(\"div\", { staticClass: \"related-resources__header\" }, [t(\"h5\", [e._v(e._s(e.header))]), t(\"p\", [e._v(e._s(e.subline))])]), e._l(e.resources, function(i) {\n return t(\"NcResource\", { key: i.itemId, staticClass: \"related-resources__entry\", attrs: { icon: i.icon, name: i.title, url: i.url } });\n })], 2) : e._e();\n}, m = [], y = /* @__PURE__ */ n(\n _,\n h,\n m,\n !1,\n null,\n \"19300848\",\n null,\n null\n);\nconst S = y.exports;\nexport {\n S as default\n};\n","import \"../assets/referencePickerModal-3a127978.css\";\nimport { n as c } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { t as n } from \"./l10n-f692947e.mjs\";\nimport p from \"@nextcloud/axios\";\nimport { loadState as C } from \"@nextcloud/initial-state\";\nimport { imagePath as L, generateOcsUrl as _ } from \"@nextcloud/router\";\nimport m from \"../Components/NcEmptyContent.mjs\";\nimport { N as P } from \"./index-20a9ace9.mjs\";\nimport w from \"../Components/NcSelect.mjs\";\nimport N from \"../Components/NcLoadingIcon.mjs\";\nimport E from \"../Components/NcTextField.mjs\";\nimport { D as I } from \"./DotsHorizontal-0ee7d901.mjs\";\nimport O from \"../Components/NcButton.mjs\";\nimport B from \"../Components/NcModal.mjs\";\nimport { emit as M } from \"@nextcloud/event-bus\";\nimport { A as V } from \"./ArrowLeft-3779ba88.mjs\";\nimport { C as W } from \"./Close-271f72e2.mjs\";\nimport q from \"vue\";\nwindow._vue_richtext_widgets || (window._vue_richtext_widgets = {});\nconst T = (t) => !!window._vue_richtext_widgets[t], j = (t, e, r = (s) => {\n}) => {\n if (window._vue_richtext_widgets[t]) {\n console.error(\"Widget for id \" + t + \" already registered\");\n return;\n }\n window._vue_richtext_widgets[t] = {\n id: t,\n callback: e,\n onDestroy: r\n };\n}, z = (t, { richObjectType: e, richObject: r, accessible: s }) => {\n if (e !== \"open-graph\") {\n if (!window._vue_richtext_widgets[e]) {\n console.error(\"Widget for rich object type \" + e + \" not registered\");\n return;\n }\n window._vue_richtext_widgets[e].callback(t, { richObjectType: e, richObject: r, accessible: s });\n }\n}, D = (t, e) => {\n t !== \"open-graph\" && window._vue_richtext_widgets[t] && window._vue_richtext_widgets[t].onDestroy(e);\n};\nwindow._registerWidget = j;\nconst A = {\n name: \"NcReferenceWidget\",\n props: {\n reference: {\n type: Object,\n required: !0\n }\n },\n data() {\n return {\n compact: 3\n };\n },\n computed: {\n hasCustomWidget() {\n return T(this.reference.richObjectType);\n },\n noAccess() {\n return this.reference && !this.reference.accessible;\n },\n descriptionStyle() {\n if (this.compact === 0)\n return {\n display: \"none\"\n };\n const t = this.compact < 4 ? this.compact : 3;\n return {\n lineClamp: t,\n webkitLineClamp: t\n };\n },\n compactLink() {\n const t = this.reference.openGraphObject.link;\n return t ? t.startsWith(\"https://\") ? t.substring(8) : t.startsWith(\"http://\") ? t.substring(7) : t : \"\";\n }\n },\n mounted() {\n this.renderWidget(), this.observer = new ResizeObserver((t) => {\n t[0].contentRect.width < 450 ? this.compact = 0 : t[0].contentRect.width < 550 ? this.compact = 1 : t[0].contentRect.width < 650 ? this.compact = 2 : this.compact = 3;\n }), this.observer.observe(this.$el);\n },\n beforeDestroy() {\n this.observer.disconnect(), D(this.reference.richObjectType, this.$el);\n },\n methods: {\n renderWidget() {\n var t;\n this.$refs.customWidget && (this.$refs.customWidget.innerHTML = \"\"), ((t = this == null ? void 0 : this.reference) == null ? void 0 : t.richObjectType) !== \"open-graph\" && this.$nextTick(() => {\n z(this.$refs.customWidget, this.reference);\n });\n }\n }\n};\nvar F = function() {\n var e = this, r = e._self._c;\n return r(\"div\", [e.reference && e.hasCustomWidget ? r(\"div\", { staticClass: \"widget-custom\" }, [r(\"div\", { ref: \"customWidget\" })]) : !e.noAccess && e.reference && e.reference.openGraphObject && !e.hasCustomWidget ? r(\"a\", { staticClass: \"widget-default\", attrs: { href: e.reference.openGraphObject.link, rel: \"noopener noreferrer\", target: \"_blank\" } }, [e.reference.openGraphObject.thumb ? r(\"img\", { staticClass: \"widget-default--image\", attrs: { src: e.reference.openGraphObject.thumb } }) : e._e(), r(\"div\", { staticClass: \"widget-default--details\" }, [r(\"p\", { staticClass: \"widget-default--name\" }, [e._v(e._s(e.reference.openGraphObject.name))]), r(\"p\", { staticClass: \"widget-default--description\", style: e.descriptionStyle }, [e._v(e._s(e.reference.openGraphObject.description))]), r(\"p\", { staticClass: \"widget-default--link\" }, [e._v(e._s(e.compactLink))])])]) : e._e()]);\n}, U = [], Q = /* @__PURE__ */ c(\n A,\n F,\n U,\n !1,\n null,\n \"b1c5a80f\",\n null,\n null\n);\nconst G = Q.exports;\nwindow._vue_richtext_custom_picker_elements || (window._vue_richtext_custom_picker_elements = {});\nclass nt {\n /**\n * @param {HTMLElement} element The HTML element\n * @param {object} object The object\n */\n constructor(e, r) {\n this.element = e, this.object = r;\n }\n}\nconst h = (t) => !!window._vue_richtext_custom_picker_elements[t], H = (t) => {\n var r;\n const e = (r = window._vue_richtext_custom_picker_elements[t]) == null ? void 0 : r.size;\n return [\"small\", \"normal\", \"large\", \"full\"].includes(e) ? e : null;\n}, Z = (t, e, r = (i) => {\n}, s = \"large\") => {\n if (window._vue_richtext_custom_picker_elements[t]) {\n console.error(\"Custom reference picker element for id \" + t + \" already registered\");\n return;\n }\n window._vue_richtext_custom_picker_elements[t] = {\n id: t,\n callback: e,\n onDestroy: r,\n size: s\n };\n}, J = (t, { providerId: e, accessible: r }) => {\n if (!window._vue_richtext_custom_picker_elements[e]) {\n console.error(\"Custom reference picker element for reference provider ID \" + e + \" not registered\");\n return;\n }\n return window._vue_richtext_custom_picker_elements[e].callback(t, { providerId: e, accessible: r });\n}, K = (t, e, r) => {\n window._vue_richtext_custom_picker_elements[t] && window._vue_richtext_custom_picker_elements[t].onDestroy(e, r);\n};\nwindow._registerCustomPickerElement = Z;\nconst X = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: !0\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n isRegistered: h(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n this.isRegistered && this.renderElement();\n },\n beforeDestroy() {\n this.isRegistered && K(this.provider.id, this.$el, this.renderResult);\n },\n methods: {\n renderElement() {\n this.$refs.domElement && (this.$refs.domElement.innerHTML = \"\");\n const t = J(this.$refs.domElement, { providerId: this.provider.id, accessible: !1 });\n Promise.resolve(t).then((e) => {\n var r, s;\n this.renderResult = e, (r = this.renderResult.object) != null && r._isVue && ((s = this.renderResult.object) != null && s.$on) && (this.renderResult.object.$on(\"submit\", this.onSubmit), this.renderResult.object.$on(\"cancel\", this.onCancel)), this.renderResult.element.addEventListener(\"submit\", (i) => {\n this.onSubmit(i.detail);\n }), this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(t) {\n this.$emit(\"submit\", t);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nvar Y = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { ref: \"domElement\" });\n}, ee = [], te = /* @__PURE__ */ c(\n X,\n Y,\n ee,\n !1,\n null,\n \"cf695ff9\",\n null,\n null\n);\nconst re = te.exports, b = \"any-link\", S = {\n id: b,\n title: n(\"Any link\"),\n icon_url: L(\"core\", \"filetypes/link.svg\")\n};\nwindow._vue_richtext_reference_providers || (window._vue_richtext_reference_providers = C(\"core\", \"reference-provider-list\", []));\nwindow._vue_richtext_reference_provider_timestamps || (window._vue_richtext_reference_provider_timestamps = C(\"core\", \"reference-provider-timestamps\", {}));\nfunction se(t) {\n return t === b ? S : R().find((e) => e.id === t);\n}\nfunction R() {\n return window._vue_richtext_reference_providers.filter((t) => {\n const e = !!t.search_providers_ids && t.search_providers_ids.length > 0 || h(t.id);\n return e || console.debug(\"[smart picker]\", t.id, \"reference provider is discoverable but does not have any related search provider or custom picker component registered\"), e;\n });\n}\nfunction ie(t) {\n const e = window._vue_richtext_reference_provider_timestamps;\n return t.sort((r, s) => r.order === s.order ? 0 : r.order > s.order ? 1 : -1).sort((r, s) => {\n const i = e[r.id], o = e[s.id];\n return i === o ? 0 : o === void 0 ? -1 : i === void 0 ? 1 : i > o ? -1 : 1;\n });\n}\nfunction ne(t, e = null) {\n const r = R(), s = t.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\"), i = new RegExp(s, \"i\"), l = ie(r).filter((a) => a.title.match(i)), u = e ? l.slice(0, e) : l;\n return (t === \"\" || u.length === 0) && u.push(S), u;\n}\nfunction oe(t) {\n const e = Math.floor(Date.now() / 1e3), r = {\n timestamp: e\n }, s = _(\"references/provider/{providerId}\", { providerId: t });\n p.put(s, r).then((i) => {\n window._vue_richtext_reference_provider_timestamps[t] = e;\n });\n}\nlet y = 0;\nfunction x(t, e) {\n return function() {\n const r = this, s = arguments;\n clearTimeout(y), y = setTimeout(function() {\n t.apply(r, s);\n }, e || 0);\n };\n}\nfunction f(t) {\n try {\n return !!new URL(t);\n } catch {\n return !1;\n }\n}\nconst ce = {\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 le = function() {\n var e = this, r = e._self._c;\n return r(\"span\", e._b({ staticClass: \"material-design-icon link-variant-icon\", attrs: { \"aria-hidden\": !e.title, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [r(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [r(\"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\" } }, [e.title ? r(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, ae = [], ue = /* @__PURE__ */ c(\n ce,\n le,\n ae,\n !1,\n null,\n null,\n null,\n null\n);\nconst v = ue.exports;\nconst de = {\n name: \"NcProviderList\",\n components: {\n NcSelect: w,\n NcHighlight: P,\n NcEmptyContent: m,\n LinkVariantIcon: v\n },\n emits: [\n \"select-provider\",\n \"submit\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: n(\"Select provider\"),\n providerIconAlt: n(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const t = [];\n return this.query !== \"\" && f(this.query) && t.push({\n id: this.query,\n title: this.query,\n isLink: !0\n }), t.push(...ne(this.query)), t;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n var t, e, r;\n (r = (e = (t = this.$refs[\"provider-select\"]) == null ? void 0 : t.$el) == null ? void 0 : e.querySelector(\"#provider-select-input\")) == null || r.focus();\n }, 300);\n },\n onProviderSelected(t) {\n t !== null && (t.isLink ? this.$emit(\"submit\", t.title) : this.$emit(\"select-provider\", t), this.selectedProvider = null);\n },\n onSearch(t, e) {\n this.query = t;\n }\n }\n};\nvar he = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"provider-list\" }, [r(\"NcSelect\", { ref: \"provider-select\", staticClass: \"provider-list--select\", attrs: { \"input-id\": \"provider-select-input\", label: \"title\", placeholder: e.multiselectPlaceholder, options: e.options, \"append-to-body\": !1, \"clear-search-on-select\": !0, \"clear-search-on-blur\": () => !1, filterable: !1 }, on: { search: e.onSearch, input: e.onProviderSelected }, scopedSlots: e._u([{ key: \"option\", fn: function(s) {\n return [s.isLink ? r(\"div\", { staticClass: \"provider\" }, [r(\"LinkVariantIcon\", { staticClass: \"link-icon\", attrs: { size: 20 } }), r(\"span\", [e._v(e._s(s.title))])], 1) : r(\"div\", { staticClass: \"provider\" }, [r(\"img\", { staticClass: \"provider-icon\", attrs: { src: s.icon_url, alt: e.providerIconAlt } }), r(\"NcHighlight\", { staticClass: \"option-text\", attrs: { search: e.query, text: s.title } })], 1)];\n } }]), model: { value: e.selectedProvider, callback: function(s) {\n e.selectedProvider = s;\n }, expression: \"selectedProvider\" } }), r(\"NcEmptyContent\", { staticClass: \"provider-list--empty-content\", scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [r(\"LinkVariantIcon\")];\n }, proxy: !0 }]) })], 1);\n}, _e = [], pe = /* @__PURE__ */ c(\n de,\n he,\n _e,\n !1,\n null,\n \"9d850ea5\",\n null,\n null\n);\nconst me = pe.exports;\nconst fe = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon: v,\n NcEmptyContent: m,\n NcLoadingIcon: N,\n NcReferenceWidget: G,\n NcTextField: E\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: !0\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: !1,\n reference: null,\n abortController: null,\n inputPlaceholder: n(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return f(this.inputValue);\n }\n },\n methods: {\n focus() {\n var t;\n (t = this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]) == null || t.focus();\n },\n onSubmit(t) {\n const e = t.target.value;\n this.isLinkValid && this.$emit(\"submit\", e);\n },\n onClear() {\n this.inputValue = \"\", this.reference = null;\n },\n onInput() {\n this.reference = null, this.abortController && this.abortController.abort(), this.isLinkValid && x(() => {\n this.updateReference();\n }, 500)();\n },\n updateReference() {\n this.loading = !0, this.abortController = new AbortController(), p.get(_(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((t) => {\n this.reference = t.data.ocs.data.references[this.inputValue];\n }).catch((t) => {\n console.error(t);\n }).then(() => {\n this.loading = !1;\n });\n }\n }\n};\nvar ve = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"raw-link\" }, [r(\"div\", { staticClass: \"input-wrapper\" }, [r(\"NcTextField\", { ref: \"url-input\", attrs: { value: e.inputValue, \"show-trailing-button\": e.inputValue !== \"\", label: e.inputPlaceholder }, on: { \"update:value\": [function(s) {\n e.inputValue = s;\n }, e.onInput], \"trailing-button-click\": e.onClear }, nativeOn: { keyup: function(s) {\n return !s.type.indexOf(\"key\") && e._k(s.keyCode, \"enter\", 13, s.key, \"Enter\") ? null : e.onSubmit.apply(null, arguments);\n } } }, [e.loading ? r(\"NcLoadingIcon\", { attrs: { size: 16 } }) : r(\"LinkVariantIcon\", { attrs: { size: 16 } })], 1)], 1), e.reference !== null ? r(\"NcReferenceWidget\", { staticClass: \"reference-widget\", attrs: { reference: e.reference } }) : r(\"NcEmptyContent\", { staticClass: \"raw-link--empty-content\", scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [e.provider.icon_url ? r(\"img\", { staticClass: \"provider-icon\", attrs: { src: e.provider.icon_url } }) : r(\"LinkVariantIcon\")];\n }, proxy: !0 }]) })], 1);\n}, ge = [], ye = /* @__PURE__ */ c(\n fe,\n ve,\n ge,\n !1,\n null,\n \"d0ba247a\",\n null,\n null\n);\nconst ke = ye.exports;\nconst Ce = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight: P\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: !0\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: !0\n }\n }\n};\nvar Pe = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"result\" }, [e.entry.icon ? r(\"div\", { staticClass: \"result--icon-class\", class: { [e.entry.icon]: !0, rounded: e.entry.rounded } }) : r(\"img\", { staticClass: \"result--image\", class: { rounded: e.entry.rounded }, attrs: { src: e.entry.thumbnailUrl } }), r(\"div\", { staticClass: \"result--content\" }, [r(\"span\", { staticClass: \"result--content--name\" }, [r(\"NcHighlight\", { attrs: { search: e.query, text: e.entry.title } })], 1), r(\"span\", { staticClass: \"result--content--subline\" }, [r(\"NcHighlight\", { attrs: { search: e.query, text: e.entry.subline } })], 1)])]);\n}, we = [], be = /* @__PURE__ */ c(\n Ce,\n Pe,\n we,\n !1,\n null,\n \"7a394a58\",\n null,\n null\n);\nconst Se = be.exports;\nconst k = 5, Re = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon: v,\n DotsHorizontalIcon: I,\n NcEmptyContent: m,\n NcSelect: w,\n NcSearchResult: Se\n },\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: !0\n },\n showEmptyContent: {\n type: Boolean,\n default: !0\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: !1,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: n(\"Start typing to search\"),\n providerIconAlt: n(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || n(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\")\n return [];\n const t = [];\n return f(this.searchQuery) && t.push(this.rawLinkEntry), t.push(...this.formattedSearchResults), t;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: !0\n };\n },\n formattedSearchResults() {\n const t = [];\n return this.searchProviderIds.forEach((e) => {\n if (this.resultsBySearchProvider[e].entries.length > 0) {\n (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[e].entries.length > 1) && t.push({\n id: \"groupTitle-\" + e,\n name: this.resultsBySearchProvider[e].name,\n isCustomGroupTitle: !0,\n providerId: e\n });\n const r = this.resultsBySearchProvider[e].entries.map((s, i) => ({\n id: \"provider-\" + e + \"-entry-\" + i,\n ...s\n }));\n t.push(...r), this.resultsBySearchProvider[e].isPaginated && t.push({\n id: \"moreOf-\" + e,\n name: this.resultsBySearchProvider[e].name,\n isMore: !0,\n providerId: e,\n isLoading: this.searchingMoreOf === e\n });\n }\n }), t;\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeDestroy() {\n this.cancelSearchRequests();\n },\n methods: {\n t: n,\n resetResults() {\n const t = {};\n this.searchProviderIds.forEach((e) => {\n t[e] = {\n entries: []\n };\n }), this.resultsBySearchProvider = t;\n },\n focus() {\n setTimeout(() => {\n var t, e, r;\n (r = (e = (t = this.$refs[\"search-select\"]) == null ? void 0 : t.$el) == null ? void 0 : e.querySelector(\"#search-select-input\")) == null || r.focus();\n }, 300);\n },\n cancelSearchRequests() {\n this.abortController && this.abortController.abort();\n },\n onSearchInput(t, e) {\n this.searchQuery = t, x(() => {\n this.updateSearch();\n }, 500)();\n },\n onSelectResultSelected(t) {\n t !== null && (t.resourceUrl ? (this.cancelSearchRequests(), this.$emit(\"submit\", t.resourceUrl)) : t.isMore && this.searchMoreOf(t.providerId).then(() => {\n this.selectedResult = null;\n }));\n },\n searchMoreOf(t) {\n return this.searchingMoreOf = t, this.cancelSearchRequests(), this.searchProviders(t);\n },\n updateSearch() {\n if (this.cancelSearchRequests(), this.resetResults(), this.searchQuery === \"\") {\n this.searching = !1;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(t = null) {\n var r, s;\n this.abortController = new AbortController(), this.searching = !0;\n const e = t === null ? [...this.searchProviderIds].map((i) => this.searchOneProvider(i)) : [this.searchOneProvider(t, (s = (r = this.resultsBySearchProvider[t]) == null ? void 0 : r.cursor) != null ? s : null)];\n return Promise.allSettled(e).then((i) => {\n !!i.find((l) => l.status === \"rejected\" && (l.reason.name === \"CanceledError\" || l.reason.code === \"ERR_CANCELED\")) || (this.searching = !1, this.searchingMoreOf = null);\n });\n },\n searchOneProvider(t, e = null) {\n const r = e === null ? _(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId: t, term: this.searchQuery, limit: k }) : _(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId: t, term: this.searchQuery, limit: k, cursor: e });\n return p.get(r, {\n signal: this.abortController.signal\n }).then((s) => {\n const i = s.data.ocs.data;\n this.resultsBySearchProvider[t].name = i.name, this.resultsBySearchProvider[t].cursor = i.cursor, this.resultsBySearchProvider[t].isPaginated = i.isPaginated, this.resultsBySearchProvider[t].entries.push(...i.entries);\n });\n }\n }\n};\nvar xe = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"smart-picker-search\", class: { \"with-empty-content\": e.showEmptyContent } }, [r(\"NcSelect\", { ref: \"search-select\", staticClass: \"smart-picker-search--select\", attrs: { \"input-id\": \"search-select-input\", label: \"name\", placeholder: e.mySearchPlaceholder, options: e.options, \"append-to-body\": !1, \"close-on-select\": !1, \"clear-search-on-select\": !1, \"clear-search-on-blur\": () => !1, \"reset-focus-on-options-change\": !1, filterable: !1, autoscroll: !0, \"reset-on-options-change\": !1, loading: e.searching }, on: { search: e.onSearchInput, input: e.onSelectResultSelected }, scopedSlots: e._u([{ key: \"option\", fn: function(s) {\n return [s.isRawLink ? r(\"div\", { staticClass: \"custom-option\" }, [r(\"LinkVariantIcon\", { staticClass: \"option-simple-icon\", attrs: { size: 20 } }), r(\"span\", { staticClass: \"option-text\" }, [e._v(\" \" + e._s(e.t(\"Raw link {options}\", { options: s.resourceUrl })) + \" \")])], 1) : s.resourceUrl ? r(\"NcSearchResult\", { staticClass: \"search-result\", attrs: { entry: s, query: e.searchQuery } }) : s.isCustomGroupTitle ? r(\"span\", { staticClass: \"custom-option group-name\" }, [e.provider.icon_url ? r(\"img\", { staticClass: \"provider-icon group-name-icon\", attrs: { src: e.provider.icon_url } }) : e._e(), r(\"span\", { staticClass: \"option-text\" }, [r(\"strong\", [e._v(e._s(s.name))])])]) : s.isMore ? r(\"span\", { class: { \"custom-option\": !0 } }, [s.isLoading ? r(\"span\", { staticClass: \"option-simple-icon icon-loading-small\" }) : r(\"DotsHorizontalIcon\", { staticClass: \"option-simple-icon\", attrs: { size: 20 } }), r(\"span\", { staticClass: \"option-text\" }, [e._v(\" \" + e._s(e.t('Load more \"{options}\"', { options: s.name })) + \" \")])], 1) : e._e()];\n } }, { key: \"no-options\", fn: function() {\n return [e._v(\" \" + e._s(e.noOptionsText) + \" \")];\n }, proxy: !0 }]), model: { value: e.selectedResult, callback: function(s) {\n e.selectedResult = s;\n }, expression: \"selectedResult\" } }), e.showEmptyContent ? r(\"NcEmptyContent\", { staticClass: \"smart-picker-search--empty-content\", scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [e.provider.icon_url ? r(\"img\", { staticClass: \"provider-icon\", attrs: { alt: e.providerIconAlt, src: e.provider.icon_url } }) : r(\"LinkVariantIcon\")];\n }, proxy: !0 }], null, !1, 2922132592) }) : e._e()], 1);\n}, $e = [], Le = /* @__PURE__ */ c(\n Re,\n xe,\n $e,\n !1,\n null,\n \"97d196f0\",\n null,\n null\n);\nconst Ne = Le.exports;\nconst d = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n}, Ee = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement: re,\n NcProviderList: me,\n NcRawLinkInput: ke,\n NcSearch: Ne\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: !0\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: d,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? d.providerList : h(this.selectedProvider.id) ? d.customElement : this.selectedProvider.search_providers_ids ? d.searchInput : d.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n this.focusOnCreate && (this.initialProvider ? setTimeout(() => {\n var t;\n (t = this.$refs[\"url-input\"]) == null || t.focus();\n }, 300) : this.$nextTick(() => {\n var t;\n (t = this.$refs[\"provider-list\"]) == null || t.focus();\n }));\n },\n methods: {\n onEscapePressed() {\n this.selectedProvider !== null ? this.deselectProvider() : this.cancelProviderSelection();\n },\n onProviderSelected(t) {\n this.selectedProvider = t, this.$emit(\"provider-selected\", t), this.$nextTick(() => {\n var e;\n (e = this.$refs[\"url-input\"]) == null || e.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n var t;\n this.$emit(\"cancel-search\", (t = this.selectedProvider) == null ? void 0 : t.title), this.deselectProvider();\n },\n cancelRawLinkInput() {\n var t;\n this.$emit(\"cancel-raw-link\", (t = this.selectedProvider) == null ? void 0 : t.title), this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(t) {\n this.selectedProvider !== null && oe(this.selectedProvider.id), this.$emit(\"submit\", t), this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null, this.$emit(\"provider-selected\", null), setTimeout(() => {\n var t;\n (t = this.$refs[\"provider-list\"]) == null || t.focus();\n }, 300);\n }\n }\n};\nvar Ie = function() {\n var e = this, r = e._self._c;\n return r(\"div\", { staticClass: \"reference-picker\", style: e.pickerWrapperStyle, attrs: { tabindex: \"-1\" }, on: { keydown: function(s) {\n return !s.type.indexOf(\"key\") && e._k(s.keyCode, \"esc\", 27, s.key, [\"Esc\", \"Escape\"]) ? null : (s.stopPropagation(), s.preventDefault(), e.onEscapePressed.apply(null, arguments));\n } } }, [e.mode === e.MODES.providerList ? r(\"NcProviderList\", { ref: \"provider-list\", on: { \"select-provider\": e.onProviderSelected, submit: e.submitLink, cancel: e.cancelProviderSelection } }) : e.mode === e.MODES.standardLinkInput ? r(\"NcRawLinkInput\", { ref: \"url-input\", attrs: { provider: e.selectedProvider }, on: { submit: e.submitLink, cancel: e.cancelRawLinkInput } }) : e.mode === e.MODES.searchInput ? r(\"NcSearch\", { ref: \"url-input\", attrs: { provider: e.selectedProvider }, on: { cancel: e.cancelSearch, submit: e.submitLink } }) : e.mode === e.MODES.customElement ? r(\"div\", { staticClass: \"custom-element-wrapper\" }, [r(\"NcCustomPickerElement\", { attrs: { provider: e.selectedProvider }, on: { submit: e.submitLink, cancel: e.cancelCustomElement } })], 1) : e._e()], 1);\n}, Oe = [], Be = /* @__PURE__ */ c(\n Ee,\n Ie,\n Oe,\n !1,\n null,\n \"aa77d0d3\",\n null,\n null\n);\nconst Me = Be.exports;\nconst Ve = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker: Me,\n NcModal: B,\n NcButton: O,\n ArrowLeftIcon: V,\n CloseIcon: W\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: !0\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: !1\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n show: !0,\n selectedProvider: this.initialProvider,\n backButtonTitle: n(\"Back to provider selection\"),\n closeButtonTitle: n(\"Close\"),\n closeButtonLabel: n(\"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 var t;\n return this.isProviderSelected && h(this.selectedProvider.id) ? (t = H(this.selectedProvider.id)) != null ? t : \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !h(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : n(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const t = this.$refs.modal_content;\n M(\"viewer:trapElements:changed\", t);\n }\n },\n methods: {\n onCancel() {\n this.show = !1, this.$emit(\"cancel\");\n },\n onSubmit(t) {\n this.show = !1, this.$emit(\"submit\", t);\n },\n onProviderSelect(t) {\n this.selectedProvider = t, t === null && this.initialProvider !== null && this.onCancel();\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nvar We = function() {\n var e = this, r = e._self._c;\n return e.show ? r(\"NcModal\", { staticClass: \"reference-picker-modal\", attrs: { size: e.modalSize, \"can-close\": !1 }, on: { close: e.onCancel } }, [r(\"div\", { ref: \"modal_content\", staticClass: \"reference-picker-modal--content\" }, [e.showBackButton ? r(\"NcButton\", { staticClass: \"back-button\", attrs: { \"aria-label\": e.backButtonTitle, title: e.backButtonTitle }, on: { click: e.onBackClicked }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [r(\"ArrowLeftIcon\")];\n }, proxy: !0 }], null, !1, 3001860362) }) : e._e(), r(\"NcButton\", { staticClass: \"close-button\", attrs: { \"aria-label\": e.closeButtonLabel, title: e.closeButtonTitle, type: \"tertiary\" }, on: { click: e.onCancel }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [r(\"CloseIcon\")];\n }, proxy: !0 }], null, !1, 2491825086) }), e.showModalName ? r(\"h2\", [e._v(\" \" + e._s(e.modalName) + \" \")]) : e._e(), r(\"NcReferencePicker\", { ref: \"referencePicker\", attrs: { \"initial-provider\": e.initialProvider, \"focus-on-create\": e.focusOnCreate }, on: { \"provider-selected\": e.onProviderSelect, submit: e.onSubmit, cancel: e.onCancel } })], 1)]) : e._e();\n}, qe = [], Te = /* @__PURE__ */ c(\n Ve,\n We,\n qe,\n !1,\n null,\n \"3f1a4ac7\",\n null,\n null\n);\nconst je = Te.exports;\nasync function ot(t = null, e = void 0) {\n return await new Promise((r, s) => {\n var g;\n const i = \"referencePickerModal\", o = document.createElement(\"div\");\n o.id = i, document.body.append(o);\n const l = t === null ? null : (g = se(t)) != null ? g : null, u = q.extend(je), a = new u({\n propsData: {\n initialProvider: l,\n isInsideViewer: e\n }\n }).$mount(o);\n a.$on(\"cancel\", () => {\n a.$destroy(), s(new Error(\"User cancellation\"));\n }), a.$on(\"submit\", ($) => {\n a.$destroy(), r($);\n });\n });\n}\nexport {\n G as N,\n Me as a,\n je as b,\n Ne as c,\n z as d,\n nt as e,\n Z as f,\n J as g,\n h,\n T as i,\n ot as j,\n b as k,\n se as l,\n R as m,\n ne as n,\n j as r,\n ie as s\n};\n","if (!Array.prototype.find) {\n Array.prototype.find = function(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined')\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function')\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value\n }\n }\n return undefined\n };\n}\n\nif (window && typeof window.CustomEvent !== \"function\") {\n function CustomEvent$1(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt\n }\n\n if (typeof window.Event !== 'undefined') {\n CustomEvent$1.prototype = window.Event.prototype;\n }\n\n window.CustomEvent = CustomEvent$1;\n}\n\nclass TributeEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.events = this;\n }\n\n static keys() {\n return [\n {\n key: 9,\n value: \"TAB\"\n },\n {\n key: 8,\n value: \"DELETE\"\n },\n {\n key: 13,\n value: \"ENTER\"\n },\n {\n key: 27,\n value: \"ESCAPE\"\n },\n {\n key: 32,\n value: \"SPACE\"\n },\n {\n key: 38,\n value: \"UP\"\n },\n {\n key: 40,\n value: \"DOWN\"\n }\n ];\n }\n\n bind(element) {\n element.boundKeydown = this.keydown.bind(element, this);\n element.boundKeyup = this.keyup.bind(element, this);\n element.boundInput = this.input.bind(element, this);\n\n element.addEventListener(\"keydown\", element.boundKeydown, false);\n element.addEventListener(\"keyup\", element.boundKeyup, false);\n element.addEventListener(\"input\", element.boundInput, false);\n }\n\n unbind(element) {\n element.removeEventListener(\"keydown\", element.boundKeydown, false);\n element.removeEventListener(\"keyup\", element.boundKeyup, false);\n element.removeEventListener(\"input\", element.boundInput, false);\n\n delete element.boundKeydown;\n delete element.boundKeyup;\n delete element.boundInput;\n }\n\n keydown(instance, event) {\n if (instance.shouldDeactivate(event)) {\n instance.tribute.isActive = false;\n instance.tribute.hideMenu();\n }\n\n let element = this;\n instance.commandEvent = false;\n\n TributeEvents.keys().forEach(o => {\n if (o.key === event.keyCode) {\n instance.commandEvent = true;\n instance.callbacks()[o.value.toLowerCase()](event, element);\n }\n });\n }\n\n input(instance, event) {\n instance.inputEvent = true;\n instance.keyup.call(this, instance, event);\n }\n\n click(instance, event) {\n let tribute = instance.tribute;\n if (tribute.menu && tribute.menu.contains(event.target)) {\n let li = event.target;\n event.preventDefault();\n event.stopPropagation();\n while (li.nodeName.toLowerCase() !== \"li\") {\n li = li.parentNode;\n if (!li || li === tribute.menu) {\n throw new Error(\"cannot find the <li> container for the click\");\n }\n }\n tribute.selectItemAtIndex(li.getAttribute(\"data-index\"), event);\n tribute.hideMenu();\n\n // TODO: should fire with externalTrigger and target is outside of menu\n } else if (tribute.current.element && !tribute.current.externalTrigger) {\n tribute.current.externalTrigger = false;\n setTimeout(() => tribute.hideMenu());\n }\n }\n\n keyup(instance, event) {\n if (instance.inputEvent) {\n instance.inputEvent = false;\n }\n instance.updateSelection(this);\n\n if (event.keyCode === 27) return;\n\n if (!instance.tribute.allowSpaces && instance.tribute.hasTrailingSpace) {\n instance.tribute.hasTrailingSpace = false;\n instance.commandEvent = true;\n instance.callbacks()[\"space\"](event, this);\n return;\n }\n\n if (!instance.tribute.isActive) {\n if (instance.tribute.autocompleteMode) {\n instance.callbacks().triggerChar(event, this, \"\");\n } else {\n let keyCode = instance.getKeyCode(instance, this, event);\n\n if (isNaN(keyCode) || !keyCode) return;\n\n let trigger = instance.tribute.triggers().find(trigger => {\n return trigger.charCodeAt(0) === keyCode;\n });\n\n if (typeof trigger !== \"undefined\") {\n instance.callbacks().triggerChar(event, this, trigger);\n }\n }\n }\n\n if (\n instance.tribute.current.mentionText.length <\n instance.tribute.current.collection.menuShowMinLength\n ) {\n return;\n }\n\n if (\n ((instance.tribute.current.trigger ||\n instance.tribute.autocompleteMode) &&\n instance.commandEvent === false) ||\n (instance.tribute.isActive && event.keyCode === 8)\n ) {\n instance.tribute.showMenuFor(this, true);\n }\n }\n\n shouldDeactivate(event) {\n if (!this.tribute.isActive) return false;\n\n if (this.tribute.current.mentionText.length === 0) {\n let eventKeyPressed = false;\n TributeEvents.keys().forEach(o => {\n if (event.keyCode === o.key) eventKeyPressed = true;\n });\n\n return !eventKeyPressed;\n }\n\n return false;\n }\n\n getKeyCode(instance, el, event) {\n let tribute = instance.tribute;\n let info = tribute.range.getTriggerInfo(\n false,\n tribute.hasTrailingSpace,\n true,\n tribute.allowSpaces,\n tribute.autocompleteMode\n );\n\n if (info) {\n return info.mentionTriggerChar.charCodeAt(0);\n } else {\n return false;\n }\n }\n\n updateSelection(el) {\n this.tribute.current.element = el;\n let info = this.tribute.range.getTriggerInfo(\n false,\n this.tribute.hasTrailingSpace,\n true,\n this.tribute.allowSpaces,\n this.tribute.autocompleteMode\n );\n\n if (info) {\n this.tribute.current.selectedPath = info.mentionSelectedPath;\n this.tribute.current.mentionText = info.mentionText;\n this.tribute.current.selectedOffset = info.mentionSelectedOffset;\n }\n }\n\n callbacks() {\n return {\n triggerChar: (e, el, trigger) => {\n let tribute = this.tribute;\n tribute.current.trigger = trigger;\n\n let collectionItem = tribute.collection.find(item => {\n return item.trigger === trigger;\n });\n\n tribute.current.collection = collectionItem;\n\n if (\n tribute.current.mentionText.length >=\n tribute.current.collection.menuShowMinLength &&\n tribute.inputEvent\n ) {\n tribute.showMenuFor(el, true);\n }\n },\n enter: (e, el) => {\n // choose selection\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.selectItemAtIndex(this.tribute.menuSelected, e);\n this.tribute.hideMenu();\n }, 0);\n }\n },\n escape: (e, el) => {\n if (this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n this.tribute.isActive = false;\n this.tribute.hideMenu();\n }\n },\n tab: (e, el) => {\n // choose first match\n this.callbacks().enter(e, el);\n },\n space: (e, el) => {\n if (this.tribute.isActive) {\n if (this.tribute.spaceSelectsMatch) {\n this.callbacks().enter(e, el);\n } else if (!this.tribute.allowSpaces) {\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.hideMenu();\n this.tribute.isActive = false;\n }, 0);\n }\n }\n },\n up: (e, el) => {\n // navigate up ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length,\n selected = this.tribute.menuSelected;\n\n if (count > selected && selected > 0) {\n this.tribute.menuSelected--;\n this.setActiveLi();\n } else if (selected === 0) {\n this.tribute.menuSelected = count - 1;\n this.setActiveLi();\n this.tribute.menu.scrollTop = this.tribute.menu.scrollHeight;\n }\n }\n },\n down: (e, el) => {\n // navigate down ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length - 1,\n selected = this.tribute.menuSelected;\n\n if (count > selected) {\n this.tribute.menuSelected++;\n this.setActiveLi();\n } else if (count === selected) {\n this.tribute.menuSelected = 0;\n this.setActiveLi();\n this.tribute.menu.scrollTop = 0;\n }\n }\n },\n delete: (e, el) => {\n if (\n this.tribute.isActive &&\n this.tribute.current.mentionText.length < 1\n ) {\n this.tribute.hideMenu();\n } else if (this.tribute.isActive) {\n this.tribute.showMenuFor(el);\n }\n }\n };\n }\n\n setActiveLi(index) {\n let lis = this.tribute.menu.querySelectorAll(\"li\"),\n length = lis.length >>> 0;\n\n if (index) this.tribute.menuSelected = parseInt(index);\n\n for (let i = 0; i < length; i++) {\n let li = lis[i];\n if (i === this.tribute.menuSelected) {\n li.classList.add(this.tribute.current.collection.selectClass);\n\n let liClientRect = li.getBoundingClientRect();\n let menuClientRect = this.tribute.menu.getBoundingClientRect();\n\n if (liClientRect.bottom > menuClientRect.bottom) {\n let scrollDistance = liClientRect.bottom - menuClientRect.bottom;\n this.tribute.menu.scrollTop += scrollDistance;\n } else if (liClientRect.top < menuClientRect.top) {\n let scrollDistance = menuClientRect.top - liClientRect.top;\n this.tribute.menu.scrollTop -= scrollDistance;\n }\n } else {\n li.classList.remove(this.tribute.current.collection.selectClass);\n }\n }\n }\n\n getFullHeight(elem, includeMargin) {\n let height = elem.getBoundingClientRect().height;\n\n if (includeMargin) {\n let style = elem.currentStyle || window.getComputedStyle(elem);\n return (\n height + parseFloat(style.marginTop) + parseFloat(style.marginBottom)\n );\n }\n\n return height;\n }\n}\n\nclass TributeMenuEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.menuEvents = this;\n this.menu = this.tribute.menu;\n }\n\n bind(menu) {\n this.menuClickEvent = this.tribute.events.click.bind(null, this);\n this.menuContainerScrollEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.showMenuFor(this.tribute.current.element, false);\n }\n },\n 300,\n false\n );\n this.windowResizeEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.range.positionMenuAtCaret(true);\n }\n },\n 300,\n false\n );\n\n // fixes IE11 issues with mousedown\n this.tribute.range\n .getDocument()\n .addEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .addEventListener(\"mousedown\", this.menuClickEvent, false);\n window.addEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.addEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.addEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n unbind(menu) {\n this.tribute.range\n .getDocument()\n .removeEventListener(\"mousedown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .removeEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n window.removeEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.removeEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.removeEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n debounce(func, wait, immediate) {\n var timeout;\n return () => {\n var context = this,\n args = arguments;\n var later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n}\n\n// Thanks to https://github.com/jeff-collins/ment.io\n\nclass TributeRange {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.range = this;\n }\n\n getDocument() {\n let iframe;\n if (this.tribute.current.collection) {\n iframe = this.tribute.current.collection.iframe;\n }\n\n if (!iframe) {\n return document\n }\n\n return iframe.contentWindow.document\n }\n\n positionMenuAtCaret(scrollTo) {\n let context = this.tribute.current,\n coordinates;\n\n let info = this.getTriggerInfo(false, this.tribute.hasTrailingSpace, true, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (typeof info !== 'undefined') {\n\n if(!this.tribute.positionMenu){\n this.tribute.menu.style.cssText = `display: block;`;\n return\n }\n\n if (!this.isContentEditable(context.element)) {\n coordinates = this.getTextAreaOrInputUnderlinePosition(this.tribute.current.element,\n info.mentionPosition);\n }\n else {\n coordinates = this.getContentEditableCaretPosition(info.mentionPosition);\n }\n\n this.tribute.menu.style.cssText = `top: ${coordinates.top}px;\n left: ${coordinates.left}px;\n right: ${coordinates.right}px;\n bottom: ${coordinates.bottom}px;\n position: absolute;\n display: block;`;\n\n if (coordinates.left === 'auto') {\n this.tribute.menu.style.left = 'auto';\n }\n\n if (coordinates.top === 'auto') {\n this.tribute.menu.style.top = 'auto';\n }\n\n if (scrollTo) this.scrollIntoView();\n\n window.setTimeout(() => {\n let menuDimensions = {\n width: this.tribute.menu.offsetWidth,\n height: this.tribute.menu.offsetHeight\n };\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n let menuIsOffScreenHorizontally = window.innerWidth > menuDimensions.width && (menuIsOffScreen.left || menuIsOffScreen.right);\n let menuIsOffScreenVertically = window.innerHeight > menuDimensions.height && (menuIsOffScreen.top || menuIsOffScreen.bottom);\n if (menuIsOffScreenHorizontally || menuIsOffScreenVertically) {\n this.tribute.menu.style.cssText = 'display: none';\n this.positionMenuAtCaret(scrollTo);\n }\n }, 0);\n\n } else {\n this.tribute.menu.style.cssText = 'display: none';\n }\n }\n\n get menuContainerIsBody() {\n return this.tribute.menuContainer === document.body || !this.tribute.menuContainer;\n }\n\n\n selectElement(targetElement, path, offset) {\n let range;\n let elem = targetElement;\n\n if (path) {\n for (var i = 0; i < path.length; i++) {\n elem = elem.childNodes[path[i]];\n if (elem === undefined) {\n return\n }\n while (elem.length < offset) {\n offset -= elem.length;\n elem = elem.nextSibling;\n }\n if (elem.childNodes.length === 0 && !elem.length) {\n elem = elem.previousSibling;\n }\n }\n }\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(elem, offset);\n range.setEnd(elem, offset);\n range.collapse(true);\n\n try {\n sel.removeAllRanges();\n } catch (error) {}\n\n sel.addRange(range);\n targetElement.focus();\n }\n\n replaceTriggerText(text, requireLeadingSpace, hasTrailingSpace, originalEvent, item) {\n let info = this.getTriggerInfo(true, hasTrailingSpace, requireLeadingSpace, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (info !== undefined) {\n let context = this.tribute.current;\n let replaceEvent = new CustomEvent('tribute-replaced', {\n detail: {\n item: item,\n instance: context,\n context: info,\n event: originalEvent,\n }\n });\n\n if (!this.isContentEditable(context.element)) {\n let myField = this.tribute.current.element;\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : ' ';\n text += textSuffix;\n let startPos = info.mentionPosition;\n let endPos = info.mentionPosition + info.mentionText.length + textSuffix.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length - 1;\n }\n myField.value = myField.value.substring(0, startPos) + text +\n myField.value.substring(endPos, myField.value.length);\n myField.selectionStart = startPos + text.length;\n myField.selectionEnd = startPos + text.length;\n } else {\n // add a space to the end of the pasted text\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : '\\xA0';\n text += textSuffix;\n let endPos = info.mentionPosition + info.mentionText.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length;\n }\n this.pasteHtml(text, info.mentionPosition, endPos);\n }\n\n context.element.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n context.element.dispatchEvent(replaceEvent);\n }\n }\n\n pasteHtml(html, startPos, endPos) {\n let range, sel;\n sel = this.getWindowSelection();\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, startPos);\n range.setEnd(sel.anchorNode, endPos);\n range.deleteContents();\n\n let el = this.getDocument().createElement('div');\n el.innerHTML = html;\n let frag = this.getDocument().createDocumentFragment(),\n node, lastNode;\n while ((node = el.firstChild)) {\n lastNode = frag.appendChild(node);\n }\n range.insertNode(frag);\n\n // Preserve the selection\n if (lastNode) {\n range = range.cloneRange();\n range.setStartAfter(lastNode);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n\n getWindowSelection() {\n if (this.tribute.collection.iframe) {\n return this.tribute.collection.iframe.contentWindow.getSelection()\n }\n\n return window.getSelection()\n }\n\n getNodePositionInParent(element) {\n if (element.parentNode === null) {\n return 0\n }\n\n for (var i = 0; i < element.parentNode.childNodes.length; i++) {\n let node = element.parentNode.childNodes[i];\n\n if (node === element) {\n return i\n }\n }\n }\n\n getContentEditableSelectedPath(ctx) {\n let sel = this.getWindowSelection();\n let selected = sel.anchorNode;\n let path = [];\n let offset;\n\n if (selected != null) {\n let i;\n let ce = selected.contentEditable;\n while (selected !== null && ce !== 'true') {\n i = this.getNodePositionInParent(selected);\n path.push(i);\n selected = selected.parentNode;\n if (selected !== null) {\n ce = selected.contentEditable;\n }\n }\n path.reverse();\n\n // getRangeAt may not exist, need alternative\n offset = sel.getRangeAt(0).startOffset;\n\n return {\n selected: selected,\n path: path,\n offset: offset\n }\n }\n }\n\n getTextPrecedingCurrentSelection() {\n let context = this.tribute.current,\n text = '';\n\n if (!this.isContentEditable(context.element)) {\n let textComponent = this.tribute.current.element;\n if (textComponent) {\n let startPos = textComponent.selectionStart;\n if (textComponent.value && startPos >= 0) {\n text = textComponent.value.substring(0, startPos);\n }\n }\n\n } else {\n let selectedElem = this.getWindowSelection().anchorNode;\n\n if (selectedElem != null) {\n let workingNodeContent = selectedElem.textContent;\n let selectStartOffset = this.getWindowSelection().getRangeAt(0).startOffset;\n\n if (workingNodeContent && selectStartOffset >= 0) {\n text = workingNodeContent.substring(0, selectStartOffset);\n }\n }\n }\n\n return text\n }\n\n getLastWordInText(text) {\n text = text.replace(/\\u00A0/g, ' '); // https://stackoverflow.com/questions/29850407/how-do-i-replace-unicode-character-u00a0-with-a-space-in-javascript\n let wordsArray = text.split(/\\s+/);\n let worldsCount = wordsArray.length - 1;\n return wordsArray[worldsCount].trim()\n }\n\n getTriggerInfo(menuAlreadyActive, hasTrailingSpace, requireLeadingSpace, allowSpaces, isAutocomplete) {\n let ctx = this.tribute.current;\n let selected, path, offset;\n\n if (!this.isContentEditable(ctx.element)) {\n selected = this.tribute.current.element;\n } else {\n let selectionInfo = this.getContentEditableSelectedPath(ctx);\n\n if (selectionInfo) {\n selected = selectionInfo.selected;\n path = selectionInfo.path;\n offset = selectionInfo.offset;\n }\n }\n\n let effectiveRange = this.getTextPrecedingCurrentSelection();\n let lastWordOfEffectiveRange = this.getLastWordInText(effectiveRange);\n\n if (isAutocomplete) {\n return {\n mentionPosition: effectiveRange.length - lastWordOfEffectiveRange.length,\n mentionText: lastWordOfEffectiveRange,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset\n }\n }\n\n if (effectiveRange !== undefined && effectiveRange !== null) {\n let mostRecentTriggerCharPos = -1;\n let triggerChar;\n\n this.tribute.collection.forEach(config => {\n let c = config.trigger;\n let idx = config.requireLeadingSpace ?\n this.lastIndexWithLeadingSpace(effectiveRange, c) :\n effectiveRange.lastIndexOf(c);\n\n if (idx > mostRecentTriggerCharPos) {\n mostRecentTriggerCharPos = idx;\n triggerChar = c;\n requireLeadingSpace = config.requireLeadingSpace;\n }\n });\n\n if (mostRecentTriggerCharPos >= 0 &&\n (\n mostRecentTriggerCharPos === 0 ||\n !requireLeadingSpace ||\n /[\\xA0\\s]/g.test(\n effectiveRange.substring(\n mostRecentTriggerCharPos - 1,\n mostRecentTriggerCharPos)\n )\n )\n ) {\n let currentTriggerSnippet = effectiveRange.substring(mostRecentTriggerCharPos + triggerChar.length,\n effectiveRange.length);\n\n triggerChar = effectiveRange.substring(mostRecentTriggerCharPos, mostRecentTriggerCharPos + triggerChar.length);\n let firstSnippetChar = currentTriggerSnippet.substring(0, 1);\n let leadingSpace = currentTriggerSnippet.length > 0 &&\n (\n firstSnippetChar === ' ' ||\n firstSnippetChar === '\\xA0'\n );\n if (hasTrailingSpace) {\n currentTriggerSnippet = currentTriggerSnippet.trim();\n }\n\n let regex = allowSpaces ? /[^\\S ]/g : /[\\xA0\\s]/g;\n\n this.tribute.hasTrailingSpace = regex.test(currentTriggerSnippet);\n\n if (!leadingSpace && (menuAlreadyActive || !(regex.test(currentTriggerSnippet)))) {\n return {\n mentionPosition: mostRecentTriggerCharPos,\n mentionText: currentTriggerSnippet,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset,\n mentionTriggerChar: triggerChar\n }\n }\n }\n }\n }\n\n lastIndexWithLeadingSpace (str, trigger) {\n let reversedStr = str.split('').reverse().join('');\n let index = -1;\n\n for (let cidx = 0, len = str.length; cidx < len; cidx++) {\n let firstChar = cidx === str.length - 1;\n let leadingSpace = /\\s/.test(reversedStr[cidx + 1]);\n\n let match = true;\n for (let triggerIdx = trigger.length - 1; triggerIdx >= 0; triggerIdx--) {\n if (trigger[triggerIdx] !== reversedStr[cidx-triggerIdx]) {\n match = false;\n break\n }\n }\n\n if (match && (firstChar || leadingSpace)) {\n index = str.length - 1 - cidx;\n break\n }\n }\n\n return index\n }\n\n isContentEditable(element) {\n return element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA'\n }\n\n isMenuOffScreen(coordinates, menuDimensions) {\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let menuTop = typeof coordinates.top === 'number' ? coordinates.top : windowTop + windowHeight - coordinates.bottom - menuDimensions.height;\n let menuRight = typeof coordinates.right === 'number' ? coordinates.right : coordinates.left + menuDimensions.width;\n let menuBottom = typeof coordinates.bottom === 'number' ? coordinates.bottom : coordinates.top + menuDimensions.height;\n let menuLeft = typeof coordinates.left === 'number' ? coordinates.left : windowLeft + windowWidth - coordinates.right - menuDimensions.width;\n\n return {\n top: menuTop < Math.floor(windowTop),\n right: menuRight > Math.ceil(windowLeft + windowWidth),\n bottom: menuBottom > Math.ceil(windowTop + windowHeight),\n left: menuLeft < Math.floor(windowLeft)\n }\n }\n\n getMenuDimensions() {\n // Width of the menu depends of its contents and position\n // We must check what its width would be without any obstruction\n // This way, we can achieve good positioning for flipping the menu\n let dimensions = {\n width: null,\n height: null\n };\n\n this.tribute.menu.style.cssText = `top: 0px;\n left: 0px;\n position: fixed;\n display: block;\n visibility; hidden;`;\n dimensions.width = this.tribute.menu.offsetWidth;\n dimensions.height = this.tribute.menu.offsetHeight;\n\n this.tribute.menu.style.cssText = `display: none;`;\n\n return dimensions\n }\n\n getTextAreaOrInputUnderlinePosition(element, position, flipped) {\n let properties = ['direction', 'boxSizing', 'width', 'height', 'overflowX',\n 'overflowY', 'borderTopWidth', 'borderRightWidth',\n 'borderBottomWidth', 'borderLeftWidth', 'paddingTop',\n 'paddingRight', 'paddingBottom', 'paddingLeft',\n 'fontStyle', 'fontVariant', 'fontWeight', 'fontStretch',\n 'fontSize', 'fontSizeAdjust', 'lineHeight', 'fontFamily',\n 'textAlign', 'textTransform', 'textIndent',\n 'textDecoration', 'letterSpacing', 'wordSpacing'\n ];\n\n let isFirefox = (window.mozInnerScreenX !== null);\n\n let div = this.getDocument().createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n this.getDocument().body.appendChild(div);\n\n let style = div.style;\n let computed = window.getComputedStyle ? getComputedStyle(element) : element.currentStyle;\n\n style.whiteSpace = 'pre-wrap';\n if (element.nodeName !== 'INPUT') {\n style.wordWrap = 'break-word';\n }\n\n // position off-screen\n style.position = 'absolute';\n style.visibility = 'hidden';\n\n // transfer the element's properties to the div\n properties.forEach(prop => {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n style.width = `${(parseInt(computed.width) - 2)}px`;\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = 'scroll';\n } else {\n style.overflow = 'hidden';\n }\n\n div.textContent = element.value.substring(0, position);\n\n if (element.nodeName === 'INPUT') {\n div.textContent = div.textContent.replace(/\\s/g, ' ');\n }\n\n let span = this.getDocument().createElement('span');\n span.textContent = element.value.substring(position) || '.';\n div.appendChild(span);\n\n let rect = element.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let top = 0;\n let left = 0;\n if (this.menuContainerIsBody) {\n top = rect.top;\n left = rect.left;\n }\n\n let coordinates = {\n top: top + windowTop + span.offsetTop + parseInt(computed.borderTopWidth) + parseInt(computed.fontSize) - element.scrollTop,\n left: left + windowLeft + span.offsetLeft + parseInt(computed.borderLeftWidth)\n };\n\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.right = windowWidth - coordinates.left;\n coordinates.left = 'auto';\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top - span.offsetTop);\n coordinates.top = 'auto';\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n this.getDocument().body.removeChild(div);\n return coordinates\n }\n\n getContentEditableCaretPosition(selectedNodePosition) {\n let range;\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, selectedNodePosition);\n range.setEnd(sel.anchorNode, selectedNodePosition);\n\n range.collapse(false);\n\n let rect = range.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let left = rect.left;\n let top = rect.top;\n\n let coordinates = {\n left: left + windowLeft,\n top: top + rect.height + windowTop\n };\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.left = 'auto';\n coordinates.right = windowWidth - rect.left - windowLeft;\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.top = 'auto';\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top);\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n if (!this.menuContainerIsBody) {\n coordinates.left = coordinates.left ? coordinates.left - this.tribute.menuContainer.offsetLeft : coordinates.left;\n coordinates.top = coordinates.top ? coordinates.top - this.tribute.menuContainer.offsetTop : coordinates.top;\n }\n\n return coordinates\n }\n\n scrollIntoView(elem) {\n let reasonableBuffer = 20,\n clientRect;\n let maxScrollDisplacement = 100;\n let e = this.menu;\n\n if (typeof e === 'undefined') return;\n\n while (clientRect === undefined || clientRect.height === 0) {\n clientRect = e.getBoundingClientRect();\n\n if (clientRect.height === 0) {\n e = e.childNodes[0];\n if (e === undefined || !e.getBoundingClientRect) {\n return\n }\n }\n }\n\n let elemTop = clientRect.top;\n let elemBottom = elemTop + clientRect.height;\n\n if (elemTop < 0) {\n window.scrollTo(0, window.pageYOffset + clientRect.top - reasonableBuffer);\n } else if (elemBottom > window.innerHeight) {\n let maxY = window.pageYOffset + clientRect.top - reasonableBuffer;\n\n if (maxY - window.pageYOffset > maxScrollDisplacement) {\n maxY = window.pageYOffset + maxScrollDisplacement;\n }\n\n let targetY = window.pageYOffset - (window.innerHeight - elemBottom);\n\n if (targetY > maxY) {\n targetY = maxY;\n }\n\n window.scrollTo(0, targetY);\n }\n }\n}\n\n// Thanks to https://github.com/mattyork/fuzzy\nclass TributeSearch {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.search = this;\n }\n\n simpleFilter(pattern, array) {\n return array.filter(string => {\n return this.test(pattern, string)\n })\n }\n\n test(pattern, string) {\n return this.match(pattern, string) !== null\n }\n\n match(pattern, string, opts) {\n opts = opts || {};\n let len = string.length,\n pre = opts.pre || '',\n post = opts.post || '',\n compareString = opts.caseSensitive && string || string.toLowerCase();\n\n if (opts.skip) {\n return {rendered: string, score: 0}\n }\n\n pattern = opts.caseSensitive && pattern || pattern.toLowerCase();\n\n let patternCache = this.traverse(compareString, pattern, 0, 0, []);\n if (!patternCache) {\n return null\n }\n return {\n rendered: this.render(string, patternCache.cache, pre, post),\n score: patternCache.score\n }\n }\n\n traverse(string, pattern, stringIndex, patternIndex, patternCache) {\n // if the pattern search at end\n if (pattern.length === patternIndex) {\n\n // calculate score and copy the cache containing the indices where it's found\n return {\n score: this.calculateScore(patternCache),\n cache: patternCache.slice()\n }\n }\n\n // if string at end or remaining pattern > remaining string\n if (string.length === stringIndex || pattern.length - patternIndex > string.length - stringIndex) {\n return undefined\n }\n\n let c = pattern[patternIndex];\n let index = string.indexOf(c, stringIndex);\n let best, temp;\n\n while (index > -1) {\n patternCache.push(index);\n temp = this.traverse(string, pattern, index + 1, patternIndex + 1, patternCache);\n patternCache.pop();\n\n // if downstream traversal failed, return best answer so far\n if (!temp) {\n return best\n }\n\n if (!best || best.score < temp.score) {\n best = temp;\n }\n\n index = string.indexOf(c, index + 1);\n }\n\n return best\n }\n\n calculateScore(patternCache) {\n let score = 0;\n let temp = 1;\n\n patternCache.forEach((index, i) => {\n if (i > 0) {\n if (patternCache[i - 1] + 1 === index) {\n temp += temp + 1;\n }\n else {\n temp = 1;\n }\n }\n\n score += temp;\n });\n\n return score\n }\n\n render(string, indices, pre, post) {\n var rendered = string.substring(0, indices[0]);\n\n indices.forEach((index, i) => {\n rendered += pre + string[index] + post +\n string.substring(index + 1, (indices[i + 1]) ? indices[i + 1] : string.length);\n });\n\n return rendered\n }\n\n filter(pattern, arr, opts) {\n opts = opts || {};\n return arr\n .reduce((prev, element, idx, arr) => {\n let str = element;\n\n if (opts.extract) {\n str = opts.extract(element);\n\n if (!str) { // take care of undefineds / nulls / etc.\n str = '';\n }\n }\n\n let rendered = this.match(pattern, str, opts);\n\n if (rendered != null) {\n prev[prev.length] = {\n string: rendered.rendered,\n score: rendered.score,\n index: idx,\n original: element\n };\n }\n\n return prev\n }, [])\n\n .sort((a, b) => {\n let compare = b.score - a.score;\n if (compare) return compare\n return a.index - b.index\n })\n }\n}\n\nclass Tribute {\n constructor({\n values = null,\n iframe = null,\n selectClass = \"highlight\",\n containerClass = \"tribute-container\",\n itemClass = \"\",\n trigger = \"@\",\n autocompleteMode = false,\n selectTemplate = null,\n menuItemTemplate = null,\n lookup = \"key\",\n fillAttr = \"value\",\n collection = null,\n menuContainer = null,\n noMatchTemplate = null,\n requireLeadingSpace = true,\n allowSpaces = false,\n replaceTextSuffix = null,\n positionMenu = true,\n spaceSelectsMatch = false,\n searchOpts = {},\n menuItemLimit = null,\n menuShowMinLength = 0\n }) {\n this.autocompleteMode = autocompleteMode;\n this.menuSelected = 0;\n this.current = {};\n this.inputEvent = false;\n this.isActive = false;\n this.menuContainer = menuContainer;\n this.allowSpaces = allowSpaces;\n this.replaceTextSuffix = replaceTextSuffix;\n this.positionMenu = positionMenu;\n this.hasTrailingSpace = false;\n this.spaceSelectsMatch = spaceSelectsMatch;\n\n if (this.autocompleteMode) {\n trigger = \"\";\n allowSpaces = false;\n }\n\n if (values) {\n this.collection = [\n {\n // symbol that starts the lookup\n trigger: trigger,\n\n // is it wrapped in an iframe\n iframe: iframe,\n\n // class applied to selected item\n selectClass: selectClass,\n\n // class applied to the Container\n containerClass: containerClass,\n\n // class applied to each item\n itemClass: itemClass,\n\n // function called on select that retuns the content to insert\n selectTemplate: (\n selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n\n // function called that returns content for an item\n menuItemTemplate: (\n menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"<li>No Match Found!</li>\";\n }.bind(this)\n );\n })(noMatchTemplate),\n\n // column to search against in the object\n lookup: lookup,\n\n // column that contains the content to insert by default\n fillAttr: fillAttr,\n\n // array of objects or a function returning an array of objects\n values: values,\n\n requireLeadingSpace: requireLeadingSpace,\n\n searchOpts: searchOpts,\n\n menuItemLimit: menuItemLimit,\n\n menuShowMinLength: menuShowMinLength\n }\n ];\n } else if (collection) {\n if (this.autocompleteMode)\n console.warn(\n \"Tribute in autocomplete mode does not work for collections\"\n );\n this.collection = collection.map(item => {\n return {\n trigger: item.trigger || trigger,\n iframe: item.iframe || iframe,\n selectClass: item.selectClass || selectClass,\n containerClass: item.containerClass || containerClass,\n itemClass: item.itemClass || itemClass,\n selectTemplate: (\n item.selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n menuItemTemplate: (\n item.menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"<li>No Match Found!</li>\";\n }.bind(this)\n );\n })(noMatchTemplate),\n lookup: item.lookup || lookup,\n fillAttr: item.fillAttr || fillAttr,\n values: item.values,\n requireLeadingSpace: item.requireLeadingSpace,\n searchOpts: item.searchOpts || searchOpts,\n menuItemLimit: item.menuItemLimit || menuItemLimit,\n menuShowMinLength: item.menuShowMinLength || menuShowMinLength\n };\n });\n } else {\n throw new Error(\"[Tribute] No collection specified.\");\n }\n\n new TributeRange(this);\n new TributeEvents(this);\n new TributeMenuEvents(this);\n new TributeSearch(this);\n }\n\n get isActive() {\n return this._isActive;\n }\n\n set isActive(val) {\n if (this._isActive != val) {\n this._isActive = val;\n if (this.current.element) {\n let noMatchEvent = new CustomEvent(`tribute-active-${val}`);\n this.current.element.dispatchEvent(noMatchEvent);\n }\n }\n }\n\n static defaultSelectTemplate(item) {\n if (typeof item === \"undefined\")\n return `${this.current.collection.trigger}${this.current.mentionText}`;\n if (this.range.isContentEditable(this.current.element)) {\n return (\n '<span class=\"tribute-mention\">' +\n (this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]) +\n \"</span>\"\n );\n }\n\n return (\n this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]\n );\n }\n\n static defaultMenuItemTemplate(matchItem) {\n return matchItem.string;\n }\n\n static inputTypes() {\n return [\"TEXTAREA\", \"INPUT\"];\n }\n\n triggers() {\n return this.collection.map(config => {\n return config.trigger;\n });\n }\n\n attach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._attach(el[i]);\n }\n } else {\n this._attach(el);\n }\n }\n\n _attach(el) {\n if (el.hasAttribute(\"data-tribute\")) {\n console.warn(\"Tribute was already bound to \" + el.nodeName);\n }\n\n this.ensureEditable(el);\n this.events.bind(el);\n el.setAttribute(\"data-tribute\", true);\n }\n\n ensureEditable(element) {\n if (Tribute.inputTypes().indexOf(element.nodeName) === -1) {\n if (element.contentEditable) {\n element.contentEditable = true;\n } else {\n throw new Error(\"[Tribute] Cannot bind to \" + element.nodeName);\n }\n }\n }\n\n createMenu(containerClass) {\n let wrapper = this.range.getDocument().createElement(\"div\"),\n ul = this.range.getDocument().createElement(\"ul\");\n wrapper.className = containerClass;\n wrapper.appendChild(ul);\n\n if (this.menuContainer) {\n return this.menuContainer.appendChild(wrapper);\n }\n\n return this.range.getDocument().body.appendChild(wrapper);\n }\n\n showMenuFor(element, scrollTo) {\n // Only proceed if menu isn't already shown for the current element & mentionText\n if (\n this.isActive &&\n this.current.element === element &&\n this.current.mentionText === this.currentMentionTextSnapshot\n ) {\n return;\n }\n this.currentMentionTextSnapshot = this.current.mentionText;\n\n // create the menu if it doesn't exist.\n if (!this.menu) {\n this.menu = this.createMenu(this.current.collection.containerClass);\n element.tributeMenu = this.menu;\n this.menuEvents.bind(this.menu);\n }\n\n this.isActive = true;\n this.menuSelected = 0;\n\n if (!this.current.mentionText) {\n this.current.mentionText = \"\";\n }\n\n const processValues = values => {\n // Tribute may not be active any more by the time the value callback returns\n if (!this.isActive) {\n return;\n }\n\n let items = this.search.filter(this.current.mentionText, values, {\n pre: this.current.collection.searchOpts.pre || \"<span>\",\n post: this.current.collection.searchOpts.post || \"</span>\",\n skip: this.current.collection.searchOpts.skip,\n extract: el => {\n if (typeof this.current.collection.lookup === \"string\") {\n return el[this.current.collection.lookup];\n } else if (typeof this.current.collection.lookup === \"function\") {\n return this.current.collection.lookup(el, this.current.mentionText);\n } else {\n throw new Error(\n \"Invalid lookup attribute, lookup must be string or function.\"\n );\n }\n }\n });\n\n if (this.current.collection.menuItemLimit) {\n items = items.slice(0, this.current.collection.menuItemLimit);\n }\n\n this.current.filteredItems = items;\n\n let ul = this.menu.querySelector(\"ul\");\n\n this.range.positionMenuAtCaret(scrollTo);\n\n if (!items.length) {\n let noMatchEvent = new CustomEvent(\"tribute-no-match\", {\n detail: this.menu\n });\n this.current.element.dispatchEvent(noMatchEvent);\n if (\n (typeof this.current.collection.noMatchTemplate === \"function\" &&\n !this.current.collection.noMatchTemplate()) ||\n !this.current.collection.noMatchTemplate\n ) {\n this.hideMenu();\n } else {\n typeof this.current.collection.noMatchTemplate === \"function\"\n ? (ul.innerHTML = this.current.collection.noMatchTemplate())\n : (ul.innerHTML = this.current.collection.noMatchTemplate);\n }\n\n return;\n }\n\n ul.innerHTML = \"\";\n let fragment = this.range.getDocument().createDocumentFragment();\n\n items.forEach((item, index) => {\n let li = this.range.getDocument().createElement(\"li\");\n li.setAttribute(\"data-index\", index);\n li.className = this.current.collection.itemClass;\n li.addEventListener(\"mousemove\", e => {\n let [li, index] = this._findLiTarget(e.target);\n if (e.movementY !== 0) {\n this.events.setActiveLi(index);\n }\n });\n if (this.menuSelected === index) {\n li.classList.add(this.current.collection.selectClass);\n }\n li.innerHTML = this.current.collection.menuItemTemplate(item);\n fragment.appendChild(li);\n });\n ul.appendChild(fragment);\n };\n\n if (typeof this.current.collection.values === \"function\") {\n this.current.collection.values(this.current.mentionText, processValues);\n } else {\n processValues(this.current.collection.values);\n }\n }\n\n _findLiTarget(el) {\n if (!el) return [];\n const index = el.getAttribute(\"data-index\");\n return !index ? this._findLiTarget(el.parentNode) : [el, index];\n }\n\n showMenuForCollection(element, collectionIndex) {\n if (element !== document.activeElement) {\n this.placeCaretAtEnd(element);\n }\n\n this.current.collection = this.collection[collectionIndex || 0];\n this.current.externalTrigger = true;\n this.current.element = element;\n\n if (element.isContentEditable)\n this.insertTextAtCursor(this.current.collection.trigger);\n else this.insertAtCaret(element, this.current.collection.trigger);\n\n this.showMenuFor(element);\n }\n\n // TODO: make sure this works for inputs/textareas\n placeCaretAtEnd(el) {\n el.focus();\n if (\n typeof window.getSelection != \"undefined\" &&\n typeof document.createRange != \"undefined\"\n ) {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.body.createTextRange != \"undefined\") {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n }\n\n // for contenteditable\n insertTextAtCursor(text) {\n var sel, range;\n sel = window.getSelection();\n range = sel.getRangeAt(0);\n range.deleteContents();\n var textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.selectNodeContents(textNode);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n // for regular inputs\n insertAtCaret(textarea, text) {\n var scrollPos = textarea.scrollTop;\n var caretPos = textarea.selectionStart;\n\n var front = textarea.value.substring(0, caretPos);\n var back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length\n );\n textarea.value = front + text + back;\n caretPos = caretPos + text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n }\n\n hideMenu() {\n if (this.menu) {\n this.menu.style.cssText = \"display: none;\";\n this.isActive = false;\n this.menuSelected = 0;\n this.current = {};\n }\n }\n\n selectItemAtIndex(index, originalEvent) {\n index = parseInt(index);\n if (typeof index !== \"number\" || isNaN(index)) return;\n let item = this.current.filteredItems[index];\n let content = this.current.collection.selectTemplate(item);\n if (content !== null) this.replaceText(content, originalEvent, item);\n }\n\n replaceText(content, originalEvent, item) {\n this.range.replaceTriggerText(content, true, true, originalEvent, item);\n }\n\n _append(collection, newValues, replace) {\n if (typeof collection.values === \"function\") {\n throw new Error(\"Unable to append to values, as it is a function.\");\n } else if (!replace) {\n collection.values = collection.values.concat(newValues);\n } else {\n collection.values = newValues;\n }\n }\n\n append(collectionIndex, newValues, replace) {\n let index = parseInt(collectionIndex);\n if (typeof index !== \"number\")\n throw new Error(\"please provide an index for the collection to update.\");\n\n let collection = this.collection[index];\n\n this._append(collection, newValues, replace);\n }\n\n appendCurrent(newValues, replace) {\n if (this.isActive) {\n this._append(this.current.collection, newValues, replace);\n } else {\n throw new Error(\n \"No active state. Please use append instead and pass an index.\"\n );\n }\n }\n\n detach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._detach(el[i]);\n }\n } else {\n this._detach(el);\n }\n }\n\n _detach(el) {\n this.events.unbind(el);\n if (el.tributeMenu) {\n this.menuEvents.unbind(el.tributeMenu);\n }\n\n setTimeout(() => {\n el.removeAttribute(\"data-tribute\");\n this.isActive = false;\n if (el.tributeMenu) {\n el.tributeMenu.remove();\n }\n });\n }\n}\n\n/**\n * Tribute.js\n * Native ES6 JavaScript @mention Plugin\n **/\n\nexport default Tribute;\n","import \"../assets/index-d9ae9479.css\";\nimport { r as c } from \"../chunks/index-5f2a5f57.mjs\";\nimport { N as rt } from \"../chunks/index-5f2a5f57.mjs\";\nimport { generateUrl as p } from \"@nextcloud/router\";\nimport { n as u } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { t as o } from \"../chunks/l10n-f692947e.mjs\";\nimport \"../Directives/Tooltip.mjs\";\nimport { emojiAddRecent as m, emojiSearch as d } from \"../Functions/emoji.mjs\";\nimport { n as h, j as f } from \"../chunks/referencePickerModal-6bc8f6b9.mjs\";\nimport \"@nextcloud/axios\";\nimport \"unist-util-visit\";\nimport \"unist-builder\";\nimport \"unified\";\nimport \"remark-parse\";\nimport \"remark-breaks\";\nimport \"remark-rehype\";\nimport \"rehype-react\";\nimport \"rehype-external-links\";\nimport \"./NcEmptyContent.mjs\";\nimport \"./NcSelect.mjs\";\nimport \"./NcLoadingIcon.mjs\";\nimport \"./NcTextField.mjs\";\nimport \"./NcButton.mjs\";\nimport \"./NcModal.mjs\";\nimport \"@nextcloud/event-bus\";\nimport l from \"tributejs/dist/tribute.esm.js\";\nimport _ from \"debounce\";\nimport g from \"string-length\";\nimport { VTooltip as b } from \"floating-vue\";\nconst y = {\n name: \"NcAutoCompleteResult\",\n props: {\n title: {\n type: String,\n required: !0\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: !0\n },\n iconUrl: {\n type: String,\n default: null\n },\n source: {\n type: String,\n required: !0\n },\n status: {\n type: [Object, Array],\n default: () => ({})\n }\n },\n computed: {\n avatarUrl() {\n return this.iconUrl ? this.iconUrl : this.id && this.source === \"users\" ? this.getAvatarUrl(this.id, 44) : null;\n },\n haveStatus() {\n var e, t, n;\n return ((e = this.status) == null ? void 0 : e.icon) || ((t = this.status) == null ? void 0 : t.status) && ((n = this.status) == null ? void 0 : n.status) !== \"offline\";\n }\n },\n methods: {\n getAvatarUrl(e, t) {\n return p(\"/avatar/{user}/{size}\", {\n user: e,\n size: t\n });\n }\n }\n};\nvar C = function() {\n var t = this, n = t._self._c;\n return n(\"div\", { staticClass: \"autocomplete-result\" }, [n(\"div\", { staticClass: \"autocomplete-result__icon\", class: [t.icon, `autocomplete-result__icon--${t.avatarUrl ? \"with-avatar\" : \"\"}`], style: t.avatarUrl ? { backgroundImage: `url(${t.avatarUrl})` } : null }, [t.haveStatus ? n(\"div\", { staticClass: \"autocomplete-result__status\", class: [`autocomplete-result__status--${t.status && t.status.icon ? \"icon\" : t.status.status}`] }, [t._v(\" \" + t._s(t.status && t.status.icon || \"\") + \" \")]) : t._e()]), n(\"span\", { staticClass: \"autocomplete-result__content\" }, [n(\"span\", { staticClass: \"autocomplete-result__title\", attrs: { title: t.title } }, [t._v(\" \" + t._s(t.title) + \" \")]), t.subline ? n(\"span\", { staticClass: \"autocomplete-result__subline\" }, [t._v(\" \" + t._s(t.subline) + \" \")]) : t._e()])]);\n}, v = [], k = /* @__PURE__ */ u(\n y,\n C,\n v,\n !1,\n null,\n \"25cf09d8\",\n null,\n null\n);\nconst x = k.exports;\nconst T = {\n name: \"NcRichContenteditable\",\n directives: {\n tooltip: b\n },\n mixins: [c],\n props: {\n value: {\n type: String,\n default: \"\",\n required: !0\n },\n placeholder: {\n type: String,\n default: o(\"Write a message …\")\n },\n autoComplete: {\n type: Function,\n default: () => []\n },\n menuContainer: {\n type: Element,\n default: () => document.body\n },\n /**\n * Make the contenteditable looks like a textarea or not.\n * Default looks like a single-line input.\n * This also handle the default enter/shift+enter behaviour.\n * if multiline, enter = newline; otherwise enter = submit\n * shift+enter always add a new line. ctrl+enter always submits\n */\n multiline: {\n type: Boolean,\n default: !1\n },\n /**\n * Is the content editable ?\n */\n contenteditable: {\n type: Boolean,\n default: !0\n },\n /**\n * Disable the editing and show specific disabled design\n */\n disabled: {\n type: Boolean,\n default: !1\n },\n /**\n * Max allowed length\n */\n maxlength: {\n type: Number,\n default: null\n },\n /**\n * Enable or disable emoji autocompletion\n */\n emojiAutocomplete: {\n type: Boolean,\n default: !0\n },\n /**\n * Enable or disable link autocompletion\n */\n linkAutocomplete: {\n type: Boolean,\n default: !0\n }\n },\n emits: [\n \"submit\",\n \"paste\",\n \"update:value\",\n \"smart-picker-submit\"\n ],\n data() {\n return {\n textSmiles: [],\n tribute: null,\n autocompleteOptions: {\n // Allow spaces in the middle of mentions\n allowSpaces: !0,\n fillAttr: \"id\",\n // Search against id and title (display name)\n lookup: (e) => `${e.id} ${e.title}`,\n // Where to inject the menu popup\n menuContainer: this.menuContainer,\n // Popup mention autocompletion templates\n menuItemTemplate: (e) => this.renderComponentHtml(e.original, x),\n // Hide if no results\n noMatchTemplate: () => '<span class=\"hidden\"></span>',\n // Inner display of mentions\n selectTemplate: (e) => {\n var t;\n return this.genSelectTemplate((t = e == null ? void 0 : e.original) == null ? void 0 : t.id);\n },\n // Autocompletion results\n values: this.debouncedAutoComplete\n },\n emojiOptions: {\n trigger: \":\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (e, t) => t,\n // Where to inject the menu popup\n menuContainer: this.menuContainer,\n // Popup mention autocompletion templates\n menuItemTemplate: (e) => this.textSmiles.includes(e.original) ? e.original : `<span class=\"tribute-container-emoji__item__emoji\">${e.original.native}</span> :${e.original.short_name}`,\n // Hide if no results\n noMatchTemplate: () => o(\"No emoji found\"),\n // Display raw emoji along with its name\n selectTemplate: (e) => this.textSmiles.includes(e.original) ? e.original : (m(e.original), e.original.native),\n // Pass the search results as values\n values: (e, t) => {\n const n = d(e);\n this.textSmiles.includes(\":\" + e) && n.unshift(\":\" + e), t(n);\n },\n // Class added to the menu container\n containerClass: \"tribute-container-emoji\",\n // Class added to each list item\n itemClass: \"tribute-container-emoji__item\"\n },\n linkOptions: {\n trigger: \"/\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (e, t) => t,\n // Where to inject the menu popup\n menuContainer: this.menuContainer,\n // Popup mention autocompletion templates\n menuItemTemplate: (e) => `<img class=\"tribute-container-link__item__icon\" src=\"${e.original.icon_url}\"> <span class=\"tribute-container-link__item__title\">${e.original.title}</span>`,\n // Hide if no results\n noMatchTemplate: () => o(\"No link provider found\"),\n selectTemplate: this.getLink,\n // Pass the search results as values\n values: (e, t) => t(h(e)),\n // Class added to the menu container\n containerClass: \"tribute-container-link\",\n // Class added to each list item\n itemClass: \"tribute-container-link__item\"\n },\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.value,\n // Is in text composition session in IME\n isComposing: !1\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 && this.localValue.trim() === \"\";\n },\n /**\n * Is this Firefox? 🙄\n *\n * @return {boolean}\n */\n isFF() {\n return !!navigator.userAgent.match(/firefox/i);\n },\n /**\n * Is the current value over maxlength?\n *\n * @return {boolean}\n */\n isOverMaxlength() {\n return this.isEmptyValue || !this.maxlength ? !1 : g(this.localValue) > this.maxlength;\n },\n /**\n * Tooltip to show if characters count is over limit\n *\n * @return {string}\n */\n tooltipString() {\n return this.isOverMaxlength ? {\n content: o(\"Message limit of {count} characters reached\", { count: this.maxlength }),\n shown: !0,\n trigger: \"manual\"\n } : null;\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 e = { ...this.$listeners };\n return delete e.paste, e;\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 value() {\n const e = this.$refs.contenteditable.innerHTML;\n this.value.trim() !== this.parseContent(e).trim() && this.updateContent(this.value);\n }\n },\n mounted() {\n const e = [\"d\", \"D\", \"p\", \"P\", \"s\", \"S\", \"x\", \"X\", \")\", \"(\", \"|\", \"/\"];\n this.textSmiles = [], e.forEach((t) => {\n this.textSmiles.push(\":\" + t), this.textSmiles.push(\":-\" + t);\n }), this.autocompleteTribute = new l(this.autocompleteOptions), this.autocompleteTribute.attach(this.$el), this.emojiAutocomplete && (this.emojiTribute = new l(this.emojiOptions), this.emojiTribute.attach(this.$el)), this.linkAutocomplete && (this.linkTribute = new l(this.linkOptions), this.linkTribute.attach(this.$el)), this.updateContent(this.value), this.$refs.contenteditable.contentEditable = this.canEdit;\n },\n beforeDestroy() {\n this.autocompleteTribute && this.autocompleteTribute.detach(this.$el), this.emojiTribute && this.emojiTribute.detach(this.$el), this.linkTribute && this.linkTribute.detach(this.$el);\n },\n methods: {\n /**\n * Focus the richContenteditable\n *\n * @public\n */\n focus() {\n this.$refs.contenteditable.focus();\n },\n getLink(e) {\n return f(e.original.id).then((t) => {\n const n = document.getElementById(\"tmp-smart-picker-result-node\"), i = {\n result: t,\n insertText: !0\n };\n if (this.$emit(\"smart-picker-submit\", i), i.insertText) {\n const s = document.createTextNode(t);\n n.replaceWith(s), this.setCursorAfter(s), this.updateValue(this.$refs.contenteditable.innerHTML);\n } else\n n.remove();\n }).catch((t) => {\n console.debug(\"Smart picker promise rejected:\", t);\n const n = document.getElementById(\"tmp-smart-picker-result-node\");\n this.setCursorAfter(n), n.remove();\n }), '<span id=\"tmp-smart-picker-result-node\"></span>';\n },\n setCursorAfter(e) {\n const t = document.createRange();\n t.setEndAfter(e), t.collapse();\n const n = window.getSelection();\n n.removeAllRanges(), n.addRange(t);\n },\n /**\n * Re-emit the input event to the parent\n *\n * @param {Event} event the input event\n */\n onInput(e) {\n this.updateValue(e.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(e) {\n if (!this.canEdit)\n return;\n e.preventDefault();\n const t = e.clipboardData;\n if (this.$emit(\"paste\", e), t.files.length !== 0 || !Object.values(t.items).find((a) => a == null ? void 0 : a.type.startsWith(\"text\")))\n return;\n const n = t.getData(\"text\"), i = window.getSelection();\n if (!i.rangeCount) {\n this.updateValue(n);\n return;\n }\n const s = i.getRangeAt(0);\n i.deleteFromDocument(), s.insertNode(document.createTextNode(n));\n const r = document.createRange();\n r.setStart(e.target, s.endOffset), r.collapse(!0), i.removeAllRanges(), i.addRange(r), 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(e) {\n const t = this.parseContent(e);\n this.localValue = t, this.$emit(\"update:value\", t);\n },\n /**\n * Update content and local value\n *\n * @param {string} value the message value\n */\n updateContent(e) {\n const t = this.renderContent(e);\n this.$refs.contenteditable.innerHTML = t, this.localValue = e;\n },\n /**\n * Because FF have a decade old bug preventing contenteditable=false\n * to properly be deleted on backspace, we have to hack 👀\n * https://stackoverflow.com/a/59383394/3885878\n * https://stackoverflow.com/a/30574622\n *\n * @param {Event} event the delete keydown event\n */\n onDelete(e) {\n if (!this.isFF || !window.getSelection || !this.canEdit)\n return;\n const t = window.getSelection(), n = e.target;\n if (!t.isCollapsed || !t.rangeCount)\n return;\n const i = t.getRangeAt(t.rangeCount - 1);\n if (i.commonAncestorContainer.nodeType === 3 && i.startOffset > 0)\n return;\n const s = document.createRange();\n if (t.anchorNode !== n)\n s.selectNodeContents(n), s.setEndBefore(t.anchorNode);\n else if (t.anchorOffset > 0)\n s.setEnd(n, t.anchorOffset);\n else\n return;\n s.setStart(n, s.endOffset - 1);\n const r = s.cloneContents().lastChild;\n r && r.contentEditable === \"false\" && (s.deleteContents(), e.preventDefault());\n },\n /**\n * Enter key pressed. Submits if not multiline\n *\n * @param {Event} event the keydown event\n */\n onEnter(e) {\n this.multiline || this.isOverMaxlength || this.autocompleteTribute.isActive || this.emojiTribute.isActive || this.linkTribute.isActive || this.isComposing || (e.preventDefault(), e.stopPropagation(), this.$emit(\"submit\", e));\n },\n /**\n * Ctrl + Enter key pressed is used to submit\n *\n * @param {Event} event the keydown event\n */\n onCtrlEnter(e) {\n this.isOverMaxlength || this.$emit(\"submit\", e);\n },\n /**\n * Debounce the autocomplete function\n */\n debouncedAutoComplete: _(async function(e, t) {\n this.autoComplete(e, t);\n }, 100),\n onKeyUp(e) {\n e.stopImmediatePropagation();\n }\n }\n};\nvar S = function() {\n var t = this, n = t._self._c;\n return n(\"div\", t._g({ directives: [{ name: \"tooltip\", rawName: \"v-tooltip\", value: t.tooltipString, expression: \"tooltipString\" }], ref: \"contenteditable\", staticClass: \"rich-contenteditable__input\", class: {\n \"rich-contenteditable__input--empty\": t.isEmptyValue,\n \"rich-contenteditable__input--multiline\": t.multiline,\n \"rich-contenteditable__input--overflow\": t.isOverMaxlength,\n \"rich-contenteditable__input--disabled\": t.disabled\n }, attrs: { contenteditable: t.canEdit, placeholder: t.placeholder, \"aria-placeholder\": t.placeholder, \"aria-multiline\": \"true\", role: \"textbox\" }, on: { input: t.onInput, compositionstart: function(i) {\n t.isComposing = !0;\n }, compositionend: function(i) {\n t.isComposing = !1;\n }, keydown: [function(i) {\n return !i.type.indexOf(\"key\") && t._k(i.keyCode, \"delete\", [8, 46], i.key, [\"Backspace\", \"Delete\", \"Del\"]) ? null : t.onDelete.apply(null, arguments);\n }, function(i) {\n return !i.type.indexOf(\"key\") && t._k(i.keyCode, \"enter\", 13, i.key, \"Enter\") || i.ctrlKey || i.shiftKey || i.altKey || i.metaKey ? null : t.onEnter.apply(null, arguments);\n }, function(i) {\n return !i.type.indexOf(\"key\") && t._k(i.keyCode, \"enter\", 13, i.key, \"Enter\") || !i.ctrlKey || i.shiftKey || i.altKey || i.metaKey ? null : (i.stopPropagation(), i.preventDefault(), t.onCtrlEnter.apply(null, arguments));\n }], paste: t.onPaste, \"!keyup\": function(i) {\n return i.stopPropagation(), i.preventDefault(), t.onKeyUp.apply(null, arguments);\n } } }, t.listeners));\n}, A = [], E = /* @__PURE__ */ u(\n T,\n S,\n A,\n !1,\n null,\n \"599f92d5\",\n null,\n null\n);\nconst it = E.exports;\nexport {\n x as NcAutoCompleteResult,\n rt as NcMentionBubble,\n it as default\n};\n","import stripAnsi from 'strip-ansi';\nimport charRegex from 'char-regex';\n\nexport default function stringLength(string, {countAnsiEscapeCodes = false} = {}) {\n\tif (string === '') {\n\t\treturn 0;\n\t}\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string === '') {\n\t\treturn 0;\n\t}\n\n\treturn string.match(charRegex()).length;\n}\n","import { N as b } from \"./referencePickerModal-6bc8f6b9.mjs\";\nimport h from \"@nextcloud/axios\";\nimport { generateOcsUrl as d } from \"@nextcloud/router\";\nimport { n as g } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { visit as _, SKIP as v } from \"unist-util-visit\";\nimport { u as l } from \"unist-builder\";\nimport { unified as y } from \"unified\";\nimport w from \"remark-parse\";\nimport R from \"remark-breaks\";\nimport N from \"remark-rehype\";\nimport A from \"rehype-react\";\nimport L from \"rehype-external-links\";\nconst m = /(\\s|^)(https?:\\/\\/)((?:[-A-Z0-9+_]+\\.)+[-A-Z]+(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig, x = /(\\s|\\(|^)((https?:\\/\\/)((?:[-A-Z0-9+_]+\\.)+[-A-Z0-9]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\\s|\\)|$)/ig, $ = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget: b\n },\n props: {\n text: {\n type: String,\n default: \"\"\n },\n referenceData: {\n type: Object,\n default: null\n },\n limit: {\n type: Number,\n default: 1\n }\n },\n data() {\n return {\n references: null,\n loading: !0\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences;\n },\n values() {\n return this.referenceData ? this.referenceData : this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n var e;\n return (e = this.values[0]) != null ? e : null;\n },\n displayedReferences() {\n return this.values.slice(0, this.limit);\n }\n },\n watch: {\n text: \"fetch\"\n },\n mounted() {\n this.fetch();\n },\n methods: {\n fetch() {\n if (this.loading = !0, this.referenceData) {\n this.loading = !1;\n return;\n }\n if (!new RegExp(m).exec(this.text)) {\n this.loading = !1;\n return;\n }\n this.resolve().then((e) => {\n this.references = e.data.ocs.data.references, this.loading = !1;\n }).catch((e) => {\n console.error(\"Failed to extract references\", e), this.loading = !1;\n });\n },\n resolve() {\n const e = new RegExp(m).exec(this.text.trim());\n return this.limit === 1 && e ? h.get(d(\"references/resolve\", 2) + `?reference=${encodeURIComponent(e[0])}`) : h.post(d(\"references/extract\", 2), {\n text: this.text,\n resolve: !0,\n limit: this.limit\n });\n }\n }\n};\nvar j = function() {\n var s = this, t = s._self._c;\n return s.isVisible ? t(\"div\", { staticClass: \"widgets--list\", class: { \"icon-loading\": s.loading } }, s._l(s.displayedReferences, function(r) {\n var i;\n return t(\"div\", { key: (i = r == null ? void 0 : r.openGraphObject) == null ? void 0 : i.id }, [t(\"NcReferenceWidget\", { attrs: { reference: r } })], 1);\n }), 0) : s._e();\n}, T = [], O = /* @__PURE__ */ g(\n $,\n j,\n T,\n !1,\n null,\n \"bd1fbb02\",\n null,\n null\n);\nconst f = O.exports, C = {\n name: \"NcLink\",\n props: {\n href: {\n type: String,\n required: !0\n }\n },\n render(e) {\n return e(\"a\", {\n attrs: {\n href: this.href,\n rel: \"noopener noreferrer\",\n target: \"_blank\",\n class: \"rich-text--external-link\"\n }\n }, [this.href.trim()]);\n }\n}, M = function({ autolink: e, useMarkdown: s }) {\n return function(t) {\n !s || !e || _(t, (r) => r.type === \"text\", (r, i, n) => {\n let c = k(r.value);\n return c = c.map((a) => typeof a == \"string\" ? l(\"text\", a) : l(\"link\", {\n url: a.props.href\n }, [l(\"text\", a.props.href)])).filter((a) => a), n.children.splice(i, 1, ...c.flat()), [v, i + c.flat().length];\n });\n };\n}, k = (e) => {\n let s = x.exec(e);\n const t = [];\n let r = 0;\n for (; s !== null; ) {\n let n = s[2], c, a = e.substring(r, s.index + s[1].length);\n n[0] === \" \" && (a += n[0], n = n.substring(1).trim());\n const o = n[n.length - 1];\n (o === \".\" || o === \",\" || o === \";\" || s[0][0] === \"(\" && o === \")\") && (n = n.substring(0, n.length - 1), c = o), t.push(a), t.push({ component: C, props: { href: n } }), c && t.push(c), r = s.index + s[0].length, s = x.exec(e);\n }\n t.push(e.substring(r));\n const i = t.map((n) => typeof n == \"string\" ? n : n.props.href).join(\"\");\n return e === i ? t : (console.error(\"Failed to reassemble the chunked text: \" + e), e);\n}, D = function() {\n return function(e) {\n _(e, (t) => t.type === \"text\", s);\n function s(t, r, i) {\n const n = t.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((c, a, o) => {\n const p = c.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!p)\n return l(\"text\", c);\n const [, u] = p;\n return l(\"element\", {\n tagName: `#${u}`\n });\n });\n i.children.splice(r, 1, ...n);\n }\n };\n}, E = ({ h: e, context: s }, t) => (s.autolink && (t = k(t)), Array.isArray(t) ? t.map((r) => {\n if (typeof r == \"string\")\n return r;\n const { component: i, props: n } = r, c = i.name === \"NcLink\" ? void 0 : \"rich-text--component\";\n return e(i, {\n props: n,\n class: c\n });\n}) : t), P = {\n name: \"NcRichText\",\n components: {\n NcReferenceList: f\n },\n props: {\n text: {\n type: String,\n default: \"\"\n },\n arguments: {\n type: Object,\n default: () => ({})\n },\n referenceLimit: {\n type: Number,\n default: 0\n },\n /** Provide data upfront to avoid extra http request */\n references: {\n type: Object,\n default: null\n },\n markdownCssClasses: {\n type: Object,\n default: () => ({\n a: \"rich-text--external-link\",\n ol: \"rich-text--ordered-list\",\n ul: \"rich-text--un-ordered-list\",\n li: \"rich-text--list-item\",\n strong: \"rich-text--strong\",\n em: \"rich-text--italic\",\n h1: \"rich-text--heading rich-text--heading-1\",\n h2: \"rich-text--heading rich-text--heading-2\",\n h3: \"rich-text--heading rich-text--heading-3\",\n h4: \"rich-text--heading rich-text--heading-4\",\n h5: \"rich-text--heading rich-text--heading-5\",\n h6: \"rich-text--heading rich-text--heading-6\",\n hr: \"rich-text--hr\",\n table: \"rich-text--table\",\n pre: \"rich-text--pre\",\n code: \"rich-text--code\",\n blockquote: \"rich-text--blockquote\"\n })\n },\n useMarkdown: {\n type: Boolean,\n default: !1\n },\n autolink: {\n type: Boolean,\n default: !0\n }\n },\n methods: {\n renderPlaintext(e) {\n const s = this, t = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map(function(r, i, n) {\n const c = r.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!c)\n return E({ h: e, context: s }, r);\n const a = c[1], o = s.arguments[a];\n if (typeof o == \"object\") {\n const { component: p, props: u } = o;\n return e(p, {\n props: u,\n class: \"rich-text--component\"\n });\n }\n return o ? e(\"span\", { class: \"rich-text--fallback\" }, o) : r;\n });\n return e(\"div\", { class: \"rich-text--wrapper\" }, [\n e(\"div\", {}, t.flat()),\n this.referenceLimit > 0 ? e(\"div\", { class: \"rich-text--reference-widget\" }, [\n e(f, { props: { text: this.text, referenceData: this.references } })\n ]) : null\n ]);\n },\n renderMarkdown(e) {\n const s = y().use(w).use(M, {\n autolink: this.autolink,\n useMarkdown: this.useMarkdown\n }).use(R).use(N, {\n handlers: {\n component(t, r) {\n return t(r, r.component, { value: r.value });\n }\n }\n }).use(D).use(L, {\n target: \"_blank\",\n rel: [\"noopener noreferrer\"]\n }).use(A, {\n createElement: (t, r, i) => {\n if (i = i == null ? void 0 : i.map(\n (c) => typeof c == \"string\" ? c.replace(/</gmi, \"<\") : c\n ), !t.startsWith(\"#\"))\n return e(t, r, i);\n const n = this.arguments[t.slice(1)];\n return n ? n.component ? e(\n n.component,\n {\n attrs: r,\n props: n.props,\n class: \"rich-text--component\"\n },\n i\n ) : e(\"span\", r, [n]) : e(\"span\", { attrs: r, class: \"rich-text--fallback\" }, [`{${t.slice(1)}}`]);\n },\n prefix: !1\n }).processSync(\n this.text.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n ).result;\n return e(\"div\", { class: \"rich-text--wrapper rich-text--wrapper-markdown\" }, [\n s,\n this.referenceLimit > 0 ? e(\"div\", { class: \"rich-text--reference-widget\" }, [\n e(f, { props: { text: this.text, referenceData: this.references } })\n ]) : null\n ]);\n }\n },\n render(e) {\n return this.useMarkdown ? this.renderMarkdown(e) : this.renderPlaintext(e);\n }\n}, U = null, Z = null;\nvar z = /* @__PURE__ */ g(\n P,\n U,\n Z,\n !1,\n null,\n \"5f33f45b\",\n null,\n null\n);\nconst X = z.exports;\nexport {\n X as N,\n f as a\n};\n","import { defineComponent as a } from \"vue\";\nimport { n } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst i = a({\n name: \"NcSavingIndicatorIcon\",\n props: {\n /**\n * Specify the size of the saving icon.\n */\n size: {\n type: Number,\n default: 20\n },\n /**\n * Specify what is saved.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * Set to true when saving is in progress.\n */\n saving: {\n type: Boolean,\n default: !1,\n required: !1\n },\n /**\n * Set to true if an error occured while saving.\n */\n error: {\n type: Boolean,\n default: !1,\n required: !1\n }\n },\n emits: [\"click\"],\n computed: {\n indicatorColor() {\n return this.error ? \"var(--color-error)\" : this.saving ? \"var(--color-primary-element)\" : \"none\";\n }\n }\n});\nvar o = function() {\n var e = this, r = e._self._c;\n return e._self._setupProxy, r(\"span\", { staticClass: \"material-design-icon\", attrs: { \"aria-label\": e.name, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, [r(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [r(\"path\", { attrs: { fill: e.indicatorColor, d: \"m19 15a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4z\" } }), r(\"path\", { attrs: { fill: \"currentColor\", d: \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" } }, [e.name ? r(\"title\", [e._v(e._s(e.name))]) : e._e()])])]);\n}, l = [], s = /* @__PURE__ */ n(\n i,\n o,\n l,\n !1,\n null,\n null,\n null,\n null\n);\nconst d = s.exports;\nexport {\n d as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-6c47e88a.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-6c47e88a.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-6c47e88a.css\";\nimport { t as a } from \"../chunks/l10n-f692947e.mjs\";\nimport { G as s } from \"../chunks/GenRandomId-cb9ccebe.mjs\";\nimport { n as u } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst r = {\n name: \"NcSettingsInputText\",\n props: {\n /**\n * label of the select group element\n */\n label: {\n type: String,\n required: !0\n },\n /**\n * hint of the select group input\n */\n hint: {\n type: String,\n default: \"\"\n },\n /**\n * value of the select group input\n */\n value: {\n type: String,\n default: \"\"\n },\n /**\n * disabled state of the settings select group input\n */\n disabled: {\n type: Boolean,\n default: !1\n },\n /**\n * id attribute of the select group element\n */\n id: {\n type: String,\n default: () => \"settings-input-text-\" + s(),\n validator: (e) => e.trim() !== \"\"\n }\n },\n emits: [\n \"update:value\",\n \"input\",\n \"submit\",\n \"change\"\n ],\n data() {\n return {\n submitTranslated: a(\"Submit\")\n };\n },\n computed: {\n /**\n * @return {string}\n */\n idSubmit() {\n return this.id + \"-submit\";\n }\n },\n methods: {\n onInput(e) {\n this.$emit(\"input\", e), this.$emit(\"update:value\", e.target.value);\n },\n onSubmit(e) {\n this.disabled || this.$emit(\"submit\", e);\n },\n onChange(e) {\n this.$emit(\"change\", e);\n }\n }\n};\nvar l = function() {\n var t = this, i = t._self._c;\n return i(\"form\", { ref: \"form\", attrs: { disabled: t.disabled }, on: { submit: function(n) {\n return n.preventDefault(), n.stopPropagation(), t.onSubmit.apply(null, arguments);\n } } }, [i(\"div\", { staticClass: \"input-wrapper\" }, [i(\"label\", { staticClass: \"action-input__label\", attrs: { for: t.id } }, [t._v(t._s(t.label))]), i(\"input\", { attrs: { id: t.id, type: \"text\", disabled: t.disabled }, domProps: { value: t.value }, on: { input: t.onInput, change: t.onChange } }), i(\"input\", { staticClass: \"action-input__submit\", attrs: { id: t.idSubmit, type: \"submit\" }, domProps: { value: t.submitTranslated } }), t.hint ? i(\"p\", { staticClass: \"hint\" }, [t._v(\" \" + t._s(t.hint) + \" \")]) : t._e()])]);\n}, o = [], p = /* @__PURE__ */ u(\n r,\n l,\n o,\n !1,\n null,\n \"5b140fb6\",\n null,\n null\n);\nconst c = p.exports;\nexport {\n c as default\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcSettingsSelectGroup-0d38d76b.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcSettingsSelectGroup-0d38d76b.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/NcSettingsSelectGroup-0d38d76b.css\";\nimport a from \"../Components/NcSelect.mjs\";\nimport { t as i } from \"./l10n-f692947e.mjs\";\nimport { l } from \"./l10n-9fc9974f.mjs\";\nimport { G as o } from \"./GenRandomId-cb9ccebe.mjs\";\nimport n from \"@nextcloud/axios\";\nimport { generateOcsUrl as u } from \"@nextcloud/router\";\nimport { debounce as p } from \"debounce\";\nimport { n as c } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst d = {\n name: \"NcSettingsSelectGroup\",\n components: {\n NcSelect: a\n },\n mixins: [l],\n props: {\n /**\n * The text of the label element of the select group input\n */\n label: {\n type: String,\n required: !0\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-\" + o(),\n validator: (r) => r.trim() !== \"\"\n },\n /**\n * value of the select group input\n * A list of group IDs can be provided\n */\n value: {\n type: Array,\n default: () => []\n },\n /**\n * disabled state of the settings select group input\n */\n disabled: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"input\",\n \"error\"\n ],\n data() {\n return {\n /** Temporary store to cache groups */\n groups: {},\n randId: o(),\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.value.filter((r) => r !== \"\" && typeof r == \"string\");\n },\n /**\n * value property converted to an array of group objects used as input for the NcSelect\n */\n inputValue() {\n return this.filteredValue.map(\n (r) => typeof this.groups[r] > \"u\" ? {\n id: r,\n displayname: r\n } : this.groups[r]\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((r) => !this.value.includes(r.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 r = Object.keys(this.groups);\n this.filteredValue.filter((t) => !r.includes(t)).forEach((t) => {\n this.loadGroup(t);\n });\n },\n // Run the watch handler also when the component is initially mounted\n immediate: !0\n }\n },\n /**\n * Load groups matching the empty query to reduce API calls\n */\n async mounted() {\n const r = `${appName}:${appVersion}/initialGroups`;\n let e = window.sessionStorage.getItem(r);\n e ? (e = Object.fromEntries(JSON.parse(e).map((t) => [t.id, t])), this.groups = { ...this.groups, ...e }) : (await this.loadGroup(\"\"), window.sessionStorage.setItem(r, JSON.stringify(Object.values(this.groups))));\n },\n methods: {\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(r) {\n const e = r.map((t) => t.id);\n this.$emit(\"input\", e);\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(r) {\n try {\n r = typeof r == \"string\" ? encodeURI(r) : \"\";\n const e = await n.get(u(`cloud/groups/details?search=${r}&limit=10`, 2));\n if (this.errorMessage !== \"\" && window.setTimeout(() => {\n this.errorMessage = \"\";\n }, 5e3), Object.keys(e.data.ocs.data.groups).length > 0) {\n const t = Object.fromEntries(e.data.ocs.data.groups.map((s) => [s.id, s]));\n return this.groups = { ...this.groups, ...t }, !0;\n }\n } catch (e) {\n this.$emit(\"error\", e), this.errorMessage = i(\"Unable to search the group\");\n }\n return !1;\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(r, e, t) {\n return `${e || \"\"} ${r.id}`.toLocaleLowerCase().indexOf(t.toLocaleLowerCase()) > -1;\n },\n /**\n * Debounce the group search (reduce API calls)\n */\n onSearch: p(function(r) {\n this.loadGroup(r);\n }, 200)\n }\n};\nvar m = function() {\n var e = this, t = e._self._c;\n return t(\"div\", [e.label ? t(\"label\", { staticClass: \"hidden-visually\", attrs: { for: e.id } }, [e._v(e._s(e.label))]) : e._e(), t(\"NcSelect\", { attrs: { value: e.inputValue, options: e.groupsArray, placeholder: e.placeholder || e.label, \"filter-by\": e.filterGroups, \"input-id\": e.id, limit: 5, label: \"displayname\", multiple: !0, \"close-on-select\": !1, disabled: e.disabled }, on: { input: e.update, search: e.onSearch } }), t(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: e.hasError, expression: \"hasError\" }], staticClass: \"select-group-error\" }, [e._v(\" \" + e._s(e.errorMessage) + \" \")])], 1);\n}, f = [], h = /* @__PURE__ */ c(\n d,\n m,\n f,\n !1,\n null,\n \"5a35ccce\",\n null,\n null\n);\nconst O = h.exports;\nexport {\n O as N\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-c221fe05.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-c221fe05.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"../assets/index-c221fe05.css\";\nimport { n as s } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { N as a } from \"../chunks/index-fbf943b3.mjs\";\nimport n from \"./NcPopover.mjs\";\nimport i from \"vue\";\nconst o = {\n name: \"NcUserBubbleDiv\"\n};\nvar l = function() {\n var e = this, r = e._self._c;\n return r(\"div\", [e._t(\"trigger\")], 2);\n}, u = [], p = /* @__PURE__ */ s(\n o,\n l,\n u,\n !1,\n null,\n null,\n null,\n null\n);\nconst c = p.exports;\nconst m = {\n name: \"NcUserBubble\",\n components: {\n NcAvatar: a,\n NcPopover: n,\n NcUserBubbleDiv: c\n },\n props: {\n /**\n * Override generated avatar, can be an url or an icon class\n */\n avatarImage: {\n type: String,\n default: void 0\n },\n /**\n * Provide the user id if this is a user\n */\n user: {\n type: String,\n default: void 0\n },\n /**\n * Displayed label\n */\n displayName: {\n type: String,\n default: void 0\n },\n /**\n * Whether or not to display the user-status\n */\n showUserStatus: {\n type: Boolean,\n default: !1\n },\n /**\n * Define the whole bubble as a link\n */\n url: {\n type: String,\n default: void 0,\n validator: (t) => {\n var e;\n try {\n return t = new URL(t, (e = t == null ? void 0 : t.startsWith) != null && e.call(t, \"/\") ? window.location.href : void 0), !0;\n } catch {\n return !1;\n }\n }\n },\n /**\n * Default popover state. Requires the UserBubble\n * to have some content to render inside the popover\n */\n open: {\n type: Boolean,\n default: !1\n },\n /**\n * Use the primary colour\n */\n primary: {\n type: Boolean,\n default: !1\n },\n /**\n * This is the height of the component\n */\n size: {\n type: Number,\n default: 20\n },\n /**\n * This is the margin of the avatar (size - margin = avatar size)\n */\n margin: {\n type: Number,\n default: 2\n }\n },\n emits: [\n \"click\",\n \"update:open\"\n ],\n computed: {\n /**\n * If userbubble is empty, let's NOT\n * use the Popover component\n * We need a component instead of a simple div here,\n * because otherwise the trigger template will not be shown.\n *\n * @return {string} 'Popover' or 'UserBubbleDiv'\n */\n isPopoverComponent() {\n return this.popoverEmpty ? \"NcUserBubbleDiv\" : \"NcPopover\";\n },\n /**\n * Is the provided avatar url valid or not\n *\n * @return {boolean}\n */\n isAvatarUrl() {\n if (!this.avatarImage)\n return !1;\n try {\n return !!new URL(this.avatarImage);\n } catch {\n return !1;\n }\n },\n /**\n * Do we have a custom avatar or not\n *\n * @return {boolean}\n */\n isCustomAvatar() {\n return !!this.avatarImage;\n },\n hasUrl() {\n return this.url && this.url.trim() !== \"\";\n },\n isLinkComponent() {\n return this.hasUrl ? \"a\" : \"div\";\n },\n popoverEmpty() {\n return !(\"default\" in this.$slots);\n },\n styles() {\n return {\n content: {\n height: this.size + \"px\",\n lineHeight: this.size + \"px\",\n borderRadius: this.size / 2 + \"px\"\n },\n avatar: {\n marginLeft: this.margin + \"px\"\n }\n };\n }\n },\n mounted() {\n !this.displayName && !this.user && i.util.warn(\"[NcUserBubble] At least `displayName` or `user` property should be set.\");\n },\n methods: {\n onOpenChange(t) {\n this.$emit(\"update:open\", t);\n },\n /**\n * Catch and forward click event to parent\n *\n * @param {Event} event the click event\n */\n onClick(t) {\n this.$emit(\"click\", t);\n }\n }\n};\nvar d = function() {\n var e = this, r = e._self._c;\n return r(e.isPopoverComponent, { tag: \"component\", staticClass: \"user-bubble__wrapper\", attrs: { trigger: \"hover focus\", shown: e.open }, on: { \"update:open\": e.onOpenChange }, scopedSlots: e._u([{ key: \"trigger\", fn: function() {\n return [r(e.isLinkComponent, { tag: \"component\", staticClass: \"user-bubble__content\", class: { \"user-bubble__content--primary\": e.primary }, style: e.styles.content, attrs: { href: e.hasUrl ? e.url : null }, on: { click: e.onClick } }, [r(\"NcAvatar\", { staticClass: \"user-bubble__avatar\", style: e.styles.avatar, attrs: { url: e.isCustomAvatar && e.isAvatarUrl ? e.avatarImage : void 0, \"icon-class\": e.isCustomAvatar && !e.isAvatarUrl ? e.avatarImage : void 0, user: e.user, \"display-name\": e.displayName, size: e.size - e.margin * 2, \"disable-tooltip\": !0, \"disable-menu\": !0, \"show-user-status\": e.showUserStatus } }), r(\"span\", { staticClass: \"user-bubble__name\" }, [e._v(\" \" + e._s(e.displayName || e.user) + \" \")]), e.$slots.name ? r(\"span\", { staticClass: \"user-bubble__secondary\" }, [e._t(\"name\")], 2) : e._e()], 1)];\n }, proxy: !0 }], null, !0) }, [e._t(\"default\")], 2);\n}, _ = [], f = /* @__PURE__ */ s(\n m,\n d,\n _,\n !1,\n null,\n \"55ab76f1\",\n null,\n null\n);\nconst N = f.exports;\nexport {\n N as default\n};\n","import i from \"./Components/NcActionButton.mjs\";\nimport m from \"./Components/NcActionButtonGroup.mjs\";\nimport e from \"./Components/NcActionCaption.mjs\";\nimport p from \"./Components/NcActionCheckbox.mjs\";\nimport c from \"./Components/NcActionInput.mjs\";\nimport f from \"./Components/NcActionLink.mjs\";\nimport n from \"./Components/NcActionRadio.mjs\";\nimport N from \"./Components/NcActionRouter.mjs\";\nimport a from \"./Components/NcActions.mjs\";\nimport s from \"./Components/NcActionSeparator.mjs\";\nimport l from \"./Components/NcActionText.mjs\";\nimport u from \"./Components/NcActionTextEditable.mjs\";\nimport d from \"./Components/NcAppContent.mjs\";\nimport A from \"./Components/NcAppContentDetails.mjs\";\nimport g from \"./Components/NcAppContentList.mjs\";\nimport b from \"./Components/NcAppNavigation.mjs\";\nimport S from \"./Components/NcAppNavigationCaption.mjs\";\nimport v from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport T from \"./Components/NcAppNavigationItem.mjs\";\nimport x from \"./Components/NcAppNavigationNew.mjs\";\nimport C from \"./Components/NcAppNavigationNewItem.mjs\";\nimport k from \"./Components/NcAppNavigationSettings.mjs\";\nimport h from \"./Components/NcAppNavigationSpacer.mjs\";\nimport I from \"./Components/NcAppSettingsDialog.mjs\";\nimport y from \"./Components/NcAppSettingsSection.mjs\";\nimport P from \"./Components/NcAppSidebar.mjs\";\nimport B from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as D } from \"./chunks/index-fbf943b3.mjs\";\nimport { u as tt } from \"./chunks/index-fbf943b3.mjs\";\nimport j from \"./Components/NcBreadcrumb.mjs\";\nimport R from \"./Components/NcBreadcrumbs.mjs\";\nimport O from \"./Components/NcButton.mjs\";\nimport _ from \"./Components/NcCheckboxRadioSwitch.mjs\";\nimport E from \"./Components/NcColorPicker.mjs\";\nimport L from \"./Components/NcContent.mjs\";\nimport M from \"./Components/NcCounterBubble.mjs\";\nimport w from \"./Components/NcDashboardWidget.mjs\";\nimport F from \"./Components/NcDashboardWidgetItem.mjs\";\nimport z from \"./Components/NcDateTime.mjs\";\nimport G from \"./Components/NcDateTimePicker.mjs\";\nimport W from \"./Components/NcDateTimePickerNative.mjs\";\nimport H from \"./Components/NcDialog.mjs\";\nimport V from \"./Components/NcDialogButton.mjs\";\nimport U from \"./Components/NcEmojiPicker.mjs\";\nimport $ from \"./Components/NcEmptyContent.mjs\";\nimport q from \"./Components/NcGuestContent.mjs\";\nimport J from \"./Components/NcHeaderMenu.mjs\";\nimport { N as K } from \"./chunks/index-20a9ace9.mjs\";\nimport Q from \"./Components/NcIconSvgWrapper.mjs\";\nimport X from \"./Components/NcListItem.mjs\";\nimport Y from \"./Components/NcListItemIcon.mjs\";\nimport Z from \"./Components/NcLoadingIcon.mjs\";\nimport oo from \"./Components/NcModal.mjs\";\nimport ro from \"./Components/NcNoteCard.mjs\";\nimport to from \"./Components/NcPasswordField.mjs\";\nimport io from \"./Components/NcPopover.mjs\";\nimport mo from \"./Components/NcProgressBar.mjs\";\nimport eo from \"./Components/NcRelatedResourcesPanel.mjs\";\nimport { N as po } from \"./chunks/index-5f2a5f57.mjs\";\nimport { r as mt } from \"./chunks/index-5f2a5f57.mjs\";\nimport co, { NcAutoCompleteResult as fo } from \"./Components/NcRichContenteditable.mjs\";\nimport { N as no } from \"./chunks/NcRichText-1e8fd02d.mjs\";\nimport \"./chunks/referencePickerModal-6bc8f6b9.mjs\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport No from \"./Components/NcSelect.mjs\";\nimport \"./chunks/l10n-f692947e.mjs\";\nimport ao from \"./Components/NcTextField.mjs\";\nimport \"@nextcloud/event-bus\";\nimport \"vue\";\nimport so from \"./Components/NcSavingIndicatorIcon.mjs\";\nimport lo from \"./Components/NcSelectTags.mjs\";\nimport uo from \"./Components/NcSettingsInputText.mjs\";\nimport Ao from \"./Components/NcSettingsSection.mjs\";\nimport { N as go } from \"./chunks/NcSettingsSelectGroup-ae323579.mjs\";\nimport bo from \"./Components/NcTimezonePicker.mjs\";\nimport So from \"./Components/NcUserBubble.mjs\";\nimport vo from \"./Components/NcTextArea.mjs\";\nimport { emojiAddRecent as pt, emojiSearch as ct } from \"./Functions/emoji.mjs\";\nimport { default as nt } from \"./Functions/usernameToColor.mjs\";\nimport { directive as To } from \"./Directives/Focus.mjs\";\nimport { directive as xo } from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as at } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as lt } from \"./Mixins/isFullscreen.mjs\";\nimport { default as dt } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip as Co } from \"floating-vue\";\nimport { VTooltip as gt } from \"floating-vue\";\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst ko = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton: i,\n NcActionButtonGroup: m,\n NcActionCaption: e,\n NcActionCheckbox: p,\n NcActionInput: c,\n NcActionLink: f,\n NcActionRadio: n,\n NcActionRouter: N,\n NcActionSeparator: s,\n NcActionText: l,\n NcActionTextEditable: u,\n NcActions: a,\n NcAppContent: d,\n NcAppContentDetails: A,\n NcAppContentList: g,\n NcAppNavigation: b,\n NcAppNavigationCaption: S,\n NcAppNavigationIconBullet: v,\n NcAppNavigationItem: T,\n NcAppNavigationNew: x,\n NcAppNavigationNewItem: C,\n NcAppNavigationSettings: k,\n NcAppNavigationSpacer: h,\n NcAppSettingsDialog: I,\n NcAppSettingsSection: y,\n NcAppSidebar: P,\n NcAppSidebarTab: B,\n NcAutoCompleteResult: fo,\n NcAvatar: D,\n NcBreadcrumb: j,\n NcBreadcrumbs: R,\n NcButton: O,\n NcCheckboxRadioSwitch: _,\n NcColorPicker: E,\n NcContent: L,\n NcCounterBubble: M,\n NcDashboardWidget: w,\n NcDashboardWidgetItem: F,\n NcDateTime: z,\n NcDateTimePicker: G,\n NcDateTimePickerNative: W,\n NcDialog: H,\n NcDialogButton: V,\n NcEmojiPicker: U,\n NcEmptyContent: $,\n NcGuestContent: q,\n NcHeaderMenu: J,\n NcHighlight: K,\n NcIconSvgWrapper: Q,\n NcListItem: X,\n NcListItemIcon: Y,\n NcLoadingIcon: Z,\n NcMentionBubble: po,\n NcModal: oo,\n NcNoteCard: ro,\n NcPasswordField: to,\n NcPopover: io,\n NcProgressBar: mo,\n NcRelatedResourcesPanel: eo,\n NcRichContenteditable: co,\n NcRichText: no,\n NcSavingIndicatorIcon: so,\n NcSelect: No,\n NcSelectTags: lo,\n NcSettingsInputText: uo,\n NcSettingsSection: Ao,\n NcSettingsSelectGroup: go,\n NcTextArea: vo,\n NcTextField: ao,\n NcTimezonePicker: bo,\n NcUserBubble: So\n}, Symbol.toStringTag, { value: \"Module\" }));\n/**\n * @copyright 2022 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst Yr = (o) => o.type === \"click\" || o.type === \"keydown\" && o.key === \"Enter\";\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst ho = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: To,\n Linkify: xo,\n Tooltip: Co\n}, Symbol.toStringTag, { value: \"Module\" })), Zr = {\n install(o) {\n Object.entries(ko).forEach(([t, r]) => {\n o.component(r.name || t, r);\n }), Object.entries(ho).forEach(([t, r]) => {\n o.directive(t, r);\n });\n }\n};\nexport {\n To as Focus,\n xo as Linkify,\n i as NcActionButton,\n m as NcActionButtonGroup,\n e as NcActionCaption,\n p as NcActionCheckbox,\n c as NcActionInput,\n f as NcActionLink,\n n as NcActionRadio,\n N as NcActionRouter,\n s as NcActionSeparator,\n l as NcActionText,\n u as NcActionTextEditable,\n a as NcActions,\n d as NcAppContent,\n A as NcAppContentDetails,\n g as NcAppContentList,\n b as NcAppNavigation,\n S as NcAppNavigationCaption,\n v as NcAppNavigationIconBullet,\n T as NcAppNavigationItem,\n x as NcAppNavigationNew,\n C as NcAppNavigationNewItem,\n k as NcAppNavigationSettings,\n h as NcAppNavigationSpacer,\n I as NcAppSettingsDialog,\n y as NcAppSettingsSection,\n P as NcAppSidebar,\n B as NcAppSidebarTab,\n fo as NcAutoCompleteResult,\n D as NcAvatar,\n j as NcBreadcrumb,\n R as NcBreadcrumbs,\n O as NcButton,\n _ as NcCheckboxRadioSwitch,\n E as NcColorPicker,\n L as NcContent,\n M as NcCounterBubble,\n w as NcDashboardWidget,\n F as NcDashboardWidgetItem,\n z as NcDateTime,\n G as NcDateTimePicker,\n W as NcDateTimePickerNative,\n H as NcDialog,\n V as NcDialogButton,\n U as NcEmojiPicker,\n $ as NcEmptyContent,\n q as NcGuestContent,\n J as NcHeaderMenu,\n K as NcHighlight,\n Q as NcIconSvgWrapper,\n X as NcListItem,\n Y as NcListItemIcon,\n Z as NcLoadingIcon,\n po as NcMentionBubble,\n oo as NcModal,\n ro as NcNoteCard,\n to as NcPasswordField,\n io as NcPopover,\n mo as NcProgressBar,\n eo as NcRelatedResourcesPanel,\n co as NcRichContenteditable,\n no as NcRichText,\n so as NcSavingIndicatorIcon,\n No as NcSelect,\n lo as NcSelectTags,\n uo as NcSettingsInputText,\n Ao as NcSettingsSection,\n go as NcSettingsSelectGroup,\n vo as NcTextArea,\n ao as NcTextField,\n bo as NcTimezonePicker,\n So as NcUserBubble,\n Zr as NextcloudVuePlugin,\n gt as Tooltip,\n at as clickOutsideOptions,\n pt as emojiAddRecent,\n ct as emojiSearch,\n Yr as isA11yActivation,\n lt as isFullscreen,\n dt as isMobile,\n mt as richEditor,\n tt as userStatus,\n nt as usernameToColor\n};\n","<!--\n - @copyright Copyright (c) 2023 Richard Steinmetz <richard@steinmetz.cloud>\n -\n - @author Richard Steinmetz <richard@steinmetz.cloud>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU General Public License as published by\n - the Free Software Foundation, either version 3 of the License, or\n - (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU General Public License for more details.\n -\n - You should have received a copy of the GNU General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<NcDashboardWidget :items=\"items\"\n\t\t:show-more-label=\"showMoreLabel\"\n\t\t:show-more-url=\"showMoreUrl\"\n\t\t:loading=\"loading\"\n\t\t:show-items-and-empty-content=\"!!halfEmptyContentMessage\"\n\t\t:half-empty-content-message=\"halfEmptyContentMessage\">\n\t\t<template #default=\"{ item }\">\n\t\t\t<NcDashboardWidgetItem :target-url=\"item.link\"\n\t\t\t\t:overlay-icon-url=\"item.overlayIconUrl ? item.overlayIconUrl : ''\"\n\t\t\t\t:main-text=\"item.title\"\n\t\t\t\t:sub-text=\"item.subtitle\">\n\t\t\t\t<template #avatar>\n\t\t\t\t\t<template v-if=\"item.iconUrl\">\n\t\t\t\t\t\t<NcAvatar :size=\"44\" :url=\"item.iconUrl\" />\n\t\t\t\t\t</template>\n\t\t\t\t</template>\n\t\t\t</NcDashboardWidgetItem>\n\t\t</template>\n\t\t<template #empty-content>\n\t\t\t<NcEmptyContent v-if=\"items.length === 0\"\n\t\t\t\t:description=\"emptyContentMessage\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckIcon v-if=\"emptyContentMessage\" :size=\"65\" />\n\t\t\t\t</template>\n\t\t\t\t<template #action>\n\t\t\t\t\t<NcButton v-if=\"setupButton\" :href=\"setupButton.link\">\n\t\t\t\t\t\t{{ setupButton.text }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</template>\n\t</NcDashboardWidget>\n</template>\n\n<script>\nimport {\n\tNcAvatar,\n\tNcDashboardWidget,\n\tNcDashboardWidgetItem,\n\tNcEmptyContent,\n\tNcButton,\n} from '@nextcloud/vue'\nimport CheckIcon from 'vue-material-design-icons/Check.vue'\n\nexport default {\n\tname: 'ApiDashboardWidget',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcDashboardWidget,\n\t\tNcDashboardWidgetItem,\n\t\tNcEmptyContent,\n\t\tNcButton,\n\t\tCheckIcon,\n\t},\n\tprops: {\n\t\twidget: {\n\t\t\ttype: [Object, undefined],\n\t\t\tdefault: undefined,\n\t\t},\n\t\tdata: {\n\t\t\ttype: [Object, undefined],\n\t\t\tdefault: undefined,\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\t/** @return {object[]} */\n\t\titems() {\n\t\t\treturn this.data?.items ?? []\n\t\t},\n\n\t\t/** @return {string} */\n\t\temptyContentMessage() {\n\t\t\treturn this.data?.emptyContentMessage ?? ''\n\t\t},\n\n\t\t/** @return {string} */\n\t\thalfEmptyContentMessage() {\n\t\t\treturn this.data?.halfEmptyContentMessage ?? ''\n\t\t},\n\n\t\t/** @return {object|undefined} */\n\t\tnewButton() {\n\t\t\t// TODO: Render new button in the template\n\t\t\t// I couldn't find a widget that makes use of the button. Furthermore, there is no convenient\n\t\t\t// way to render such a button using the official widget component.\n\t\t\treturn this.widget?.buttons?.find(button => button.type === 'new')\n\t\t},\n\n\t\t/** @return {object|undefined} */\n\t\tmoreButton() {\n\t\t\treturn this.widget?.buttons?.find(button => button.type === 'more')\n\t\t},\n\n\t\t/** @return {object|undefined} */\n\t\tsetupButton() {\n\t\t\treturn this.widget?.buttons?.find(button => button.type === 'setup')\n\t\t},\n\n\t\t/** @return {string|undefined} */\n\t\tshowMoreLabel() {\n\t\t\treturn this.moreButton?.text\n\t\t},\n\n\t\t/** @return {string|undefined} */\n\t\tshowMoreUrl() {\n\t\t\treturn this.moreButton?.link\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ApiDashboardWidget.vue?vue&type=template&id=d91c9686&scoped=true\"\nimport script from \"./ApiDashboardWidget.vue?vue&type=script&lang=js\"\nexport * from \"./ApiDashboardWidget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d91c9686\",\n null\n \n)\n\nexport default component.exports","<template>\n\t<div id=\"app-dashboard\">\n\t\t<h2>{{ greeting.text }}</h2>\n\t\t<ul class=\"statuses\">\n\t\t\t<li v-for=\"status in sortedRegisteredStatus\"\n\t\t\t\t:id=\"'status-' + status\"\n\t\t\t\t:key=\"status\">\n\t\t\t\t<div :ref=\"'status-' + status\" />\n\t\t\t</li>\n\t\t</ul>\n\n\t\t<Draggable v-model=\"layout\"\n\t\t\tclass=\"panels\"\n\t\t\tv-bind=\"{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3}\"\n\t\t\thandle=\".panel--header\"\n\t\t\t@end=\"saveLayout\">\n\t\t\t<template v-for=\"panelId in layout\">\n\t\t\t\t<div v-if=\"isApiWidgetV2(panels[panelId].id)\"\n\t\t\t\t\t:key=\"`${panels[panelId].id}-v2`\"\n\t\t\t\t\tclass=\"panel\">\n\t\t\t\t\t<div class=\"panel--header\">\n\t\t\t\t\t\t<h2>\n\t\t\t\t\t\t\t<span :aria-labelledby=\"`panel-${panels[panelId].id}--header--icon--description`\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t:class=\"apiWidgets[panels[panelId].id].icon_class\"\n\t\t\t\t\t\t\t\trole=\"img\" />\n\t\t\t\t\t\t\t{{ apiWidgets[panels[panelId].id].title }}\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t<span :id=\"`panel-${panels[panelId].id}--header--icon--description`\" class=\"hidden-visually\">\n\t\t\t\t\t\t\t{{ t('dashboard', '\"{title} icon\"', { title: apiWidgets[panels[panelId].id].title }) }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"panel--content\">\n\t\t\t\t\t\t<ApiDashboardWidget :widget=\"apiWidgets[panels[panelId].id]\"\n\t\t\t\t\t\t\t:data=\"apiWidgetItems[panels[panelId].id]\"\n\t\t\t\t\t\t\t:loading=\"loadingItems\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div v-else :key=\"panels[panelId].id\" class=\"panel\">\n\t\t\t\t\t<div class=\"panel--header\">\n\t\t\t\t\t\t<h2>\n\t\t\t\t\t\t\t<span :aria-labelledby=\"`panel-${panels[panelId].id}--header--icon--description`\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t:class=\"panels[panelId].iconClass\"\n\t\t\t\t\t\t\t\trole=\"img\" />\n\t\t\t\t\t\t\t{{ panels[panelId].title }}\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t<span :id=\"`panel-${panels[panelId].id}--header--icon--description`\" class=\"hidden-visually\"> {{ t('dashboard', '\"{title} icon\"', { title: panels[panelId].title }) }} </span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"panel--content\" :class=\"{ loading: !panels[panelId].mounted }\">\n\t\t\t\t\t\t<div :ref=\"panels[panelId].id\" :data-id=\"panels[panelId].id\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</Draggable>\n\n\t\t<div class=\"footer\">\n\t\t\t<NcButton @click=\"showModal\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('dashboard', 'Customize') }}\n\t\t\t</NcButton>\n\t\t</div>\n\n\t\t<NcModal v-if=\"modal\" size=\"large\" @close=\"closeModal\">\n\t\t\t<div class=\"modal__content\">\n\t\t\t\t<h3>{{ t('dashboard', 'Edit widgets') }}</h3>\n\t\t\t\t<ol class=\"panels\">\n\t\t\t\t\t<li v-for=\"status in sortedAllStatuses\" :key=\"status\" :class=\"'panel-' + status\">\n\t\t\t\t\t\t<input :id=\"'status-checkbox-' + status\"\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tclass=\"checkbox\"\n\t\t\t\t\t\t\t:checked=\"isStatusActive(status)\"\n\t\t\t\t\t\t\t@input=\"updateStatusCheckbox(status, $event.target.checked)\">\n\t\t\t\t\t\t<label :for=\"'status-checkbox-' + status\">\n\t\t\t\t\t\t\t<span :class=\"statusInfo[status].icon\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{{ statusInfo[status].text }}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</li>\n\t\t\t\t</ol>\n\t\t\t\t<Draggable v-model=\"layout\"\n\t\t\t\t\tclass=\"panels\"\n\t\t\t\t\ttag=\"ol\"\n\t\t\t\t\tv-bind=\"{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3}\"\n\t\t\t\t\thandle=\".draggable\"\n\t\t\t\t\t@end=\"saveLayout\">\n\t\t\t\t\t<li v-for=\"panel in sortedPanels\" :key=\"panel.id\" :class=\"'panel-' + panel.id\">\n\t\t\t\t\t\t<input :id=\"'panel-checkbox-' + panel.id\"\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tclass=\"checkbox\"\n\t\t\t\t\t\t\t:checked=\"isActive(panel)\"\n\t\t\t\t\t\t\t@input=\"updateCheckbox(panel, $event.target.checked)\">\n\t\t\t\t\t\t<label :for=\"'panel-checkbox-' + panel.id\" :class=\"{ draggable: isActive(panel) }\">\n\t\t\t\t\t\t\t<span :class=\"panel.iconClass\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{{ panel.title }}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</li>\n\t\t\t\t</Draggable>\n\n\t\t\t\t<a v-if=\"isAdmin\" :href=\"appStoreUrl\" class=\"button\">{{ t('dashboard', 'Get more widgets from the App Store') }}</a>\n\n\t\t\t\t<div v-if=\"statuses.weather && isStatusActive('weather')\">\n\t\t\t\t\t<h3>{{ t('dashboard', 'Weather service') }}</h3>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{{ t('dashboard', 'For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.') }}\n\t\t\t\t\t</p>\n\t\t\t\t\t<p class=\"credits--end\">\n\t\t\t\t\t\t<a href=\"https://api.met.no/doc/TermsOfService\" target=\"_blank\" rel=\"noopener\">{{ t('dashboard', 'Weather data from Met.no') }}</a>,\n\t\t\t\t\t\t<a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\" target=\"_blank\" rel=\"noopener\">{{ t('dashboard', 'geocoding with Nominatim') }}</a>,\n\t\t\t\t\t\t<a href=\"https://www.opentopodata.org/#public-api\" target=\"_blank\" rel=\"noopener\">{{ t('dashboard', 'elevation data from OpenTopoData') }}</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</NcModal>\n\t</div>\n</template>\n\n<script>\nimport { generateUrl, generateOcsUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport axios from '@nextcloud/axios'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport Draggable from 'vuedraggable'\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\nimport Pencil from 'vue-material-design-icons/Pencil.vue'\nimport Vue from 'vue'\n\nimport isMobile from './mixins/isMobile.js'\nimport ApiDashboardWidget from './components/ApiDashboardWidget.vue'\n\nconst panels = loadState('dashboard', 'panels')\nconst firstRun = loadState('dashboard', 'firstRun')\n\nconst statusInfo = {\n\tweather: {\n\t\ttext: t('dashboard', 'Weather'),\n\t\ticon: 'icon-weather-status',\n\t},\n\tstatus: {\n\t\ttext: t('dashboard', 'Status'),\n\t\ticon: 'icon-user-status-online',\n\t},\n}\n\nexport default {\n\tname: 'DashboardApp',\n\tcomponents: {\n\t\tApiDashboardWidget,\n\t\tNcButton,\n\t\tDraggable,\n\t\tNcModal,\n\t\tPencil,\n\t},\n\tmixins: [\n\t\tisMobile,\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tisAdmin: getCurrentUser().isAdmin,\n\t\t\ttimer: new Date(),\n\t\t\tregisteredStatus: [],\n\t\t\tcallbacks: {},\n\t\t\tcallbacksStatus: {},\n\t\t\tallCallbacksStatus: {},\n\t\t\tstatusInfo,\n\t\t\tenabledStatuses: loadState('dashboard', 'statuses'),\n\t\t\tpanels,\n\t\t\tfirstRun,\n\t\t\tdisplayName: getCurrentUser()?.displayName,\n\t\t\tuid: getCurrentUser()?.uid,\n\t\t\tlayout: loadState('dashboard', 'layout').filter((panelId) => panels[panelId]),\n\t\t\tmodal: false,\n\t\t\tappStoreUrl: generateUrl('/settings/apps/dashboard'),\n\t\t\tstatuses: {},\n\t\t\tapiWidgets: [],\n\t\t\tapiWidgetItems: {},\n\t\t\tloadingItems: true,\n\t\t}\n\t},\n\tcomputed: {\n\t\tgreeting() {\n\t\t\tconst time = this.timer.getHours()\n\n\t\t\t// Determine part of the day\n\t\t\tlet partOfDay\n\t\t\tif (time >= 22 || time < 5) {\n\t\t\t\tpartOfDay = 'night'\n\t\t\t} else if (time >= 18) {\n\t\t\t\tpartOfDay = 'evening'\n\t\t\t} else if (time >= 12) {\n\t\t\t\tpartOfDay = 'afternoon'\n\t\t\t} else {\n\t\t\t\tpartOfDay = 'morning'\n\t\t\t}\n\n\t\t\t// Define the greetings\n\t\t\tconst good = {\n\t\t\t\tmorning: {\n\t\t\t\t\tgeneric: t('dashboard', 'Good morning'),\n\t\t\t\t\twithName: t('dashboard', 'Good morning, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t\tafternoon: {\n\t\t\t\t\tgeneric: t('dashboard', 'Good afternoon'),\n\t\t\t\t\twithName: t('dashboard', 'Good afternoon, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t\tevening: {\n\t\t\t\t\tgeneric: t('dashboard', 'Good evening'),\n\t\t\t\t\twithName: t('dashboard', 'Good evening, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t\tnight: {\n\t\t\t\t\t// Don't use \"Good night\" as it's not a greeting\n\t\t\t\t\tgeneric: t('dashboard', 'Hello'),\n\t\t\t\t\twithName: t('dashboard', 'Hello, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t}\n\n\t\t\t// Figure out which greeting to show\n\t\t\tconst shouldShowName = this.displayName && this.uid !== this.displayName\n\t\t\treturn { text: shouldShowName ? good[partOfDay].withName : good[partOfDay].generic }\n\t\t},\n\n\t\tisActive() {\n\t\t\treturn (panel) => this.layout.indexOf(panel.id) > -1\n\t\t},\n\t\tisStatusActive() {\n\t\t\treturn (status) => !(status in this.enabledStatuses) || this.enabledStatuses[status]\n\t\t},\n\n\t\tsortedAllStatuses() {\n\t\t\treturn Object.keys(this.allCallbacksStatus).slice().sort(this.sortStatuses)\n\t\t},\n\t\tsortedPanels() {\n\t\t\treturn Object.values(this.panels).sort((a, b) => {\n\t\t\t\tconst indexA = this.layout.indexOf(a.id)\n\t\t\t\tconst indexB = this.layout.indexOf(b.id)\n\t\t\t\tif (indexA === -1 || indexB === -1) {\n\t\t\t\t\treturn indexB - indexA || a.id - b.id\n\t\t\t\t}\n\t\t\t\treturn indexA - indexB || a.id - b.id\n\t\t\t})\n\t\t},\n\t\tsortedRegisteredStatus() {\n\t\t\treturn this.registeredStatus.slice().sort(this.sortStatuses)\n\t\t},\n\t},\n\n\twatch: {\n\t\tcallbacks() {\n\t\t\tthis.rerenderPanels()\n\t\t},\n\t\tcallbacksStatus() {\n\t\t\tfor (const app in this.callbacksStatus) {\n\t\t\t\tconst element = this.$refs['status-' + app]\n\t\t\t\tif (this.statuses[app] && this.statuses[app].mounted) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\tthis.callbacksStatus[app](element[0])\n\t\t\t\t\tVue.set(this.statuses, app, { mounted: true })\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('Failed to register panel in the frontend as no backend data was provided for ' + app)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\n\tasync created() {\n\t\tawait this.fetchApiWidgets()\n\n\t\tconst apiWidgetIdsToFetch = Object\n\t\t\t.values(this.apiWidgets)\n\t\t\t.filter(widget => this.isApiWidgetV2(widget.id))\n\t\t\t.map(widget => widget.id)\n\t\tawait Promise.all(apiWidgetIdsToFetch.map(id => this.fetchApiWidgetItems([id], true)))\n\n\t\tfor (const widget of Object.values(this.apiWidgets)) {\n\t\t\tif (widget.reload_interval > 0) {\n\t\t\t\tsetInterval(async () => {\n\t\t\t\t\tawait this.fetchApiWidgetItems([widget.id], true)\n\t\t\t\t}, widget.reload_interval * 1000)\n\t\t\t}\n\t\t}\n\t},\n\tmounted() {\n\t\tthis.updateSkipLink()\n\t\twindow.addEventListener('scroll', this.handleScroll)\n\n\t\tsetInterval(() => {\n\t\t\tthis.timer = new Date()\n\t\t}, 30000)\n\n\t\tif (this.firstRun) {\n\t\t\twindow.addEventListener('scroll', this.disableFirstrunHint)\n\t\t}\n\t},\n\tdestroyed() {\n\t\twindow.removeEventListener('scroll', this.handleScroll)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Method to register panels that will be called by the integrating apps\n\t\t *\n\t\t * @param {string} app The unique app id for the widget\n\t\t * @param {Function} callback The callback function to register a panel which gets the DOM element passed as parameter\n\t\t */\n\t\tregister(app, callback) {\n\t\t\tVue.set(this.callbacks, app, callback)\n\t\t},\n\t\tregisterStatus(app, callback) {\n\t\t\t// always save callbacks in case user enables the status later\n\t\t\tVue.set(this.allCallbacksStatus, app, callback)\n\t\t\t// register only if status is enabled or missing from config\n\t\t\tif (this.isStatusActive(app)) {\n\t\t\t\tthis.registeredStatus.push(app)\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tVue.set(this.callbacksStatus, app, callback)\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\trerenderPanels() {\n\t\t\tfor (const app in this.callbacks) {\n\t\t\t\t// TODO: Properly rerender v2 widgets\n\t\t\t\tif (this.isApiWidgetV2(this.panels[app].id)) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst element = this.$refs[app]\n\t\t\t\tif (this.layout.indexOf(app) === -1) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (this.panels[app] && this.panels[app].mounted) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\tthis.callbacks[app](element[0], {\n\t\t\t\t\t\twidget: this.panels[app],\n\t\t\t\t\t})\n\t\t\t\t\tVue.set(this.panels[app], 'mounted', true)\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('Failed to register panel in the frontend as no backend data was provided for ' + app)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsaveLayout() {\n\t\t\taxios.post(generateUrl('/apps/dashboard/layout'), {\n\t\t\t\tlayout: this.layout.join(','),\n\t\t\t})\n\t\t},\n\t\tsaveStatuses() {\n\t\t\taxios.post(generateUrl('/apps/dashboard/statuses'), {\n\t\t\t\tstatuses: JSON.stringify(this.enabledStatuses),\n\t\t\t})\n\t\t},\n\t\tshowModal() {\n\t\t\tthis.modal = true\n\t\t\tthis.firstRun = false\n\t\t},\n\t\tcloseModal() {\n\t\t\tthis.modal = false\n\t\t},\n\t\tupdateCheckbox(panel, currentValue) {\n\t\t\tconst index = this.layout.indexOf(panel.id)\n\t\t\tif (!currentValue && index > -1) {\n\t\t\t\tthis.layout.splice(index, 1)\n\n\t\t\t} else {\n\t\t\t\tthis.layout.push(panel.id)\n\t\t\t}\n\t\t\tVue.set(this.panels[panel.id], 'mounted', false)\n\t\t\tthis.saveLayout()\n\t\t\tthis.$nextTick(() => this.rerenderPanels())\n\t\t},\n\t\tdisableFirstrunHint() {\n\t\t\twindow.removeEventListener('scroll', this.disableFirstrunHint)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.firstRun = false\n\t\t\t}, 1000)\n\t\t},\n\t\tupdateSkipLink() {\n\t\t\t// Make sure \"Skip to main content\" link points to the app content\n\t\t\tdocument.getElementsByClassName('skip-navigation')[0].setAttribute('href', '#app-dashboard')\n\t\t},\n\t\tupdateStatusCheckbox(app, checked) {\n\t\t\tif (checked) {\n\t\t\t\tthis.enableStatus(app)\n\t\t\t} else {\n\t\t\t\tthis.disableStatus(app)\n\t\t\t}\n\t\t},\n\t\tenableStatus(app) {\n\t\t\tthis.enabledStatuses[app] = true\n\t\t\tthis.registerStatus(app, this.allCallbacksStatus[app])\n\t\t\tthis.saveStatuses()\n\t\t},\n\t\tdisableStatus(app) {\n\t\t\tthis.enabledStatuses[app] = false\n\t\t\tconst i = this.registeredStatus.findIndex((s) => s === app)\n\t\t\tif (i !== -1) {\n\t\t\t\tthis.registeredStatus.splice(i, 1)\n\t\t\t\tVue.set(this.statuses, app, { mounted: false })\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tVue.delete(this.callbacksStatus, app)\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis.saveStatuses()\n\t\t},\n\t\tsortStatuses(a, b) {\n\t\t\tconst al = a.toLowerCase()\n\t\t\tconst bl = b.toLowerCase()\n\t\t\treturn al > bl\n\t\t\t\t? 1\n\t\t\t\t: al < bl\n\t\t\t\t\t? -1\n\t\t\t\t\t: 0\n\t\t},\n\t\thandleScroll() {\n\t\t\tif (window.scrollY > 70) {\n\t\t\t\tdocument.body.classList.add('dashboard--scrolled')\n\t\t\t} else {\n\t\t\t\tdocument.body.classList.remove('dashboard--scrolled')\n\t\t\t}\n\t\t},\n\t\tasync fetchApiWidgets() {\n\t\t\tconst response = await axios.get(generateOcsUrl('/apps/dashboard/api/v1/widgets'))\n\t\t\tthis.apiWidgets = response.data.ocs.data\n\t\t},\n\t\tasync fetchApiWidgetItems(widgetIds, merge = false) {\n\t\t\ttry {\n\t\t\t\tconst url = generateOcsUrl('/apps/dashboard/api/v2/widget-items')\n\t\t\t\tconst params = new URLSearchParams(widgetIds.map(id => ['widgets[]', id]))\n\t\t\t\tconst response = await axios.get(`${url}?${params.toString()}`)\n\t\t\t\tconst widgetItems = response.data.ocs.data\n\t\t\t\tif (merge) {\n\t\t\t\t\tthis.apiWidgetItems = Object.assign({}, this.apiWidgetItems, widgetItems)\n\t\t\t\t} else {\n\t\t\t\t\tthis.apiWidgetItems = widgetItems\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loadingItems = false\n\t\t\t}\n\t\t},\n\t\tisApiWidgetV2(id) {\n\t\t\tfor (const widget of Object.values(this.apiWidgets)) {\n\t\t\t\tif (widget.id === id && widget.item_api_versions.includes(2)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n#app-dashboard {\n\twidth: 100%;\n\tmin-height: 100%;\n\tbackground-size: cover;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\tbackground-attachment: fixed;\n\n\t> h2 {\n\t\tcolor: var(--color-primary-element-text);\n\t\ttext-align: center;\n\t\tfont-size: 32px;\n\t\tline-height: 130%;\n\t\tpadding: 1rem 0;\n\t}\n}\n\n.panels {\n\twidth: auto;\n\tmargin: auto;\n\tmax-width: 1800px;\n\tdisplay: flex;\n\tjustify-content: center;\n\tflex-direction: row;\n\talign-items: flex-start;\n\tflex-wrap: wrap;\n}\n\n.panel, .panels > div {\n\twidth: 320px;\n\tmax-width: 100%;\n\tmargin: 16px;\n\talign-self: stretch;\n\tbackground-color: var(--color-main-background-blur);\n\t-webkit-backdrop-filter: var(--filter-background-blur);\n\tbackdrop-filter: var(--filter-background-blur);\n\tborder-radius: var(--border-radius-rounded);\n\n\t#body-user.theme--highcontrast & {\n\t\tborder: 2px solid var(--color-border);\n\t}\n\n\t&.sortable-ghost {\n\t\t opacity: 0.1;\n\t}\n\n\t& > .panel--header {\n\t\tdisplay: flex;\n\t\tz-index: 1;\n\t\ttop: 50px;\n\t\tpadding: 16px;\n\t\tcursor: grab;\n\n\t\t&, ::v-deep * {\n\t\t\t-webkit-touch-callout: none;\n\t\t\t-webkit-user-select: none;\n\t\t\t-khtml-user-select: none;\n\t\t\t-moz-user-select: none;\n\t\t\t-ms-user-select: none;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tcursor: grabbing;\n\t\t}\n\n\t\ta {\n\t\t\tflex-grow: 1;\n\t\t}\n\n\t\t> h2 {\n\t\t\tdisplay: block;\n\t\t\talign-items: center;\n\t\t\tflex-grow: 1;\n\t\t\tmargin: 0;\n\t\t\tfont-size: 20px;\n\t\t\tline-height: 24px;\n\t\t\tfont-weight: bold;\n\t\t\tpadding: 16px 8px;\n\t\t\theight: 56px;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcursor: grab;\n\t\t\tspan {\n\t\t\t\tbackground-size: 32px;\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t\tmargin-right: 16px;\n\t\t\t\tbackground-position: center;\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: -6px;\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .panel--content {\n\t\tmargin: 0 16px 16px 16px;\n\t\theight: 424px;\n\t\t// We specifically do not want scrollbars inside widgets\n\t\toverflow: visible;\n\t}\n\n\t// No need to extend height of widgets if only one column is shown\n\t@media only screen and (max-width: 709px) {\n\t\t& > .panel--content {\n\t\t\theight: auto;\n\t\t}\n\t}\n}\n\n.footer {\n\tdisplay: flex;\n\tjustify-content: center;\n\ttransition: bottom var(--animation-slow) ease-in-out;\n\tpadding: 1rem 0;\n}\n\n.edit-panels {\n\tdisplay: inline-block;\n\tmargin:auto;\n\tbackground-position: 16px center;\n\tpadding: 12px 16px;\n\tpadding-left: 36px;\n\tborder-radius: var(--border-radius-pill);\n\tmax-width: 200px;\n\topacity: 1;\n\ttext-align: center;\n}\n\n.button,\n.button-vue,\n.edit-panels,\n.statuses ::v-deep .action-item .action-item__menutoggle,\n.statuses ::v-deep .action-item.action-item--open .action-item__menutoggle {\n\tbackground-color: var(--color-main-background-blur);\n\t-webkit-backdrop-filter: var(--filter-background-blur);\n\tbackdrop-filter: var(--filter-background-blur);\n\topacity: 1 !important;\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbackground-color: var(--color-background-hover)!important;\n\t}\n\t&:focus-visible {\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\n\t\toutline: 2px solid var(--color-main-text) !important;\n\t}\n}\n\n.modal__content {\n\tpadding: 32px 16px;\n\ttext-align: center;\n\n\tol {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tjustify-content: center;\n\t\tlist-style-type: none;\n\t\tpadding-bottom: 16px;\n\t}\n\tli {\n\t\tlabel {\n\t\t\tposition: relative;\n\t\t\tdisplay: block;\n\t\t\tpadding: 48px 16px 14px 16px;\n\t\t\tmargin: 8px;\n\t\t\twidth: 140px;\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder: 2px solid var(--color-main-background);\n\t\t\tborder-radius: var(--border-radius-large);\n\t\t\ttext-align: left;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\n\t\t\tspan {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 16px;\n\t\t\t\twidth: 24px;\n\t\t\t\theight: 24px;\n\t\t\t\tbackground-size: 24px;\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tborder-color: var(--color-primary-element);\n\t\t\t}\n\t\t}\n\n\t\t// Do not invert status icons\n\t\t&:not(.panel-status) label span {\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\n\t\tinput[type='checkbox'].checkbox + label:before {\n\t\t\tposition: absolute;\n\t\t\tright: 12px;\n\t\t\ttop: 16px;\n\t\t}\n\n\t\tinput:focus + label {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\th3 {\n\t\tfont-weight: bold;\n\n\t\t&:not(:first-of-type) {\n\t\t\tmargin-top: 64px;\n\t\t}\n\t}\n\n\t// Adjust design of 'Get more widgets' button\n\t.button {\n\t\tdisplay: inline-block;\n\t\tpadding: 10px 16px;\n\t\tmargin: 0;\n\t}\n\n\tp {\n\t\tmax-width: 650px;\n\t\tmargin: 0 auto;\n\n\t\ta:hover,\n\t\ta:focus {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\t}\n\n\t.credits--end {\n\t\tpadding-bottom: 32px;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\ta {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n\n.flip-list-move {\n\ttransition: transform var(--animation-slow);\n}\n\n.statuses {\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: center;\n\tflex-wrap: wrap;\n\tmargin-bottom: 36px;\n\n\t& > li {\n\t\tmargin: 8px;\n\t}\n}\n</style>\n<style>\nhtml, body {\n\tbackground-attachment: fixed;\n}\n\n#body-user #header {\n\tposition: fixed;\n}\n\n#content {\n\toverflow: auto;\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=0&id=9fd44988&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=0&id=9fd44988&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=1&id=9fd44988&prod&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=1&id=9fd44988&prod&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DashboardApp.vue?vue&type=template&id=9fd44988&scoped=true\"\nimport script from \"./DashboardApp.vue?vue&type=script&lang=js\"\nexport * from \"./DashboardApp.vue?vue&type=script&lang=js\"\nimport style0 from \"./DashboardApp.vue?vue&type=style&index=0&id=9fd44988&prod&lang=scss&scoped=true\"\nimport style1 from \"./DashboardApp.vue?vue&type=style&index=1&id=9fd44988&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9fd44988\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app-dashboard\"}},[_c('h2',[_vm._v(_vm._s(_vm.greeting.text))]),_vm._v(\" \"),_c('ul',{staticClass:\"statuses\"},_vm._l((_vm.sortedRegisteredStatus),function(status){return _c('li',{key:status,attrs:{\"id\":'status-' + status}},[_c('div',{ref:'status-' + status,refInFor:true})])}),0),_vm._v(\" \"),_c('Draggable',_vm._b({staticClass:\"panels\",attrs:{\"handle\":\".panel--header\"},on:{\"end\":_vm.saveLayout},model:{value:(_vm.layout),callback:function ($$v) {_vm.layout=$$v},expression:\"layout\"}},'Draggable',{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3},false),[_vm._l((_vm.layout),function(panelId){return [(_vm.isApiWidgetV2(_vm.panels[panelId].id))?_c('div',{key:`${_vm.panels[panelId].id}-v2`,staticClass:\"panel\"},[_c('div',{staticClass:\"panel--header\"},[_c('h2',[_c('span',{class:_vm.apiWidgets[_vm.panels[panelId].id].icon_class,attrs:{\"aria-labelledby\":`panel-${_vm.panels[panelId].id}--header--icon--description`,\"aria-hidden\":\"true\",\"role\":\"img\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.apiWidgets[_vm.panels[panelId].id].title)+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\",attrs:{\"id\":`panel-${_vm.panels[panelId].id}--header--icon--description`}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('dashboard', '\"{title} icon\"', { title: _vm.apiWidgets[_vm.panels[panelId].id].title }))+\"\\n\\t\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel--content\"},[_c('ApiDashboardWidget',{attrs:{\"widget\":_vm.apiWidgets[_vm.panels[panelId].id],\"data\":_vm.apiWidgetItems[_vm.panels[panelId].id],\"loading\":_vm.loadingItems}})],1)]):_c('div',{key:_vm.panels[panelId].id,staticClass:\"panel\"},[_c('div',{staticClass:\"panel--header\"},[_c('h2',[_c('span',{class:_vm.panels[panelId].iconClass,attrs:{\"aria-labelledby\":`panel-${_vm.panels[panelId].id}--header--icon--description`,\"aria-hidden\":\"true\",\"role\":\"img\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.panels[panelId].title)+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\",attrs:{\"id\":`panel-${_vm.panels[panelId].id}--header--icon--description`}},[_vm._v(\" \"+_vm._s(_vm.t('dashboard', '\"{title} icon\"', { title: _vm.panels[panelId].title }))+\" \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel--content\",class:{ loading: !_vm.panels[panelId].mounted }},[_c('div',{ref:_vm.panels[panelId].id,refInFor:true,attrs:{\"data-id\":_vm.panels[panelId].id}})])])]})],2),_vm._v(\" \"),_c('div',{staticClass:\"footer\"},[_c('NcButton',{on:{\"click\":_vm.showModal},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('dashboard', 'Customize'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.modal)?_c('NcModal',{attrs:{\"size\":\"large\"},on:{\"close\":_vm.closeModal}},[_c('div',{staticClass:\"modal__content\"},[_c('h3',[_vm._v(_vm._s(_vm.t('dashboard', 'Edit widgets')))]),_vm._v(\" \"),_c('ol',{staticClass:\"panels\"},_vm._l((_vm.sortedAllStatuses),function(status){return _c('li',{key:status,class:'panel-' + status},[_c('input',{staticClass:\"checkbox\",attrs:{\"id\":'status-checkbox-' + status,\"type\":\"checkbox\"},domProps:{\"checked\":_vm.isStatusActive(status)},on:{\"input\":function($event){return _vm.updateStatusCheckbox(status, $event.target.checked)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":'status-checkbox-' + status}},[_c('span',{class:_vm.statusInfo[status].icon,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.statusInfo[status].text)+\"\\n\\t\\t\\t\\t\\t\")])])}),0),_vm._v(\" \"),_c('Draggable',_vm._b({staticClass:\"panels\",attrs:{\"tag\":\"ol\",\"handle\":\".draggable\"},on:{\"end\":_vm.saveLayout},model:{value:(_vm.layout),callback:function ($$v) {_vm.layout=$$v},expression:\"layout\"}},'Draggable',{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3},false),_vm._l((_vm.sortedPanels),function(panel){return _c('li',{key:panel.id,class:'panel-' + panel.id},[_c('input',{staticClass:\"checkbox\",attrs:{\"id\":'panel-checkbox-' + panel.id,\"type\":\"checkbox\"},domProps:{\"checked\":_vm.isActive(panel)},on:{\"input\":function($event){return _vm.updateCheckbox(panel, $event.target.checked)}}}),_vm._v(\" \"),_c('label',{class:{ draggable: _vm.isActive(panel) },attrs:{\"for\":'panel-checkbox-' + panel.id}},[_c('span',{class:panel.iconClass,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(panel.title)+\"\\n\\t\\t\\t\\t\\t\")])])}),0),_vm._v(\" \"),(_vm.isAdmin)?_c('a',{staticClass:\"button\",attrs:{\"href\":_vm.appStoreUrl}},[_vm._v(_vm._s(_vm.t('dashboard', 'Get more widgets from the App Store')))]):_vm._e(),_vm._v(\" \"),(_vm.statuses.weather && _vm.isStatusActive('weather'))?_c('div',[_c('h3',[_vm._v(_vm._s(_vm.t('dashboard', 'Weather service')))]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('dashboard', 'For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('p',{staticClass:\"credits--end\"},[_c('a',{attrs:{\"href\":\"https://api.met.no/doc/TermsOfService\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(_vm.t('dashboard', 'Weather data from Met.no')))]),_vm._v(\",\\n\\t\\t\\t\\t\\t\"),_c('a',{attrs:{\"href\":\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(_vm.t('dashboard', 'geocoding with Nominatim')))]),_vm._v(\",\\n\\t\\t\\t\\t\\t\"),_c('a',{attrs:{\"href\":\"https://www.opentopodata.org/#public-api\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(_vm.t('dashboard', 'elevation data from OpenTopoData')))]),_vm._v(\".\\n\\t\\t\\t\\t\")])]):_vm._e()],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport DashboardApp from './DashboardApp.vue'\nimport { translate as t } from '@nextcloud/l10n'\nimport VTooltip from '@nextcloud/vue/dist/Directives/Tooltip.js'\nimport { getRequestToken } from '@nextcloud/auth'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.directive('Tooltip', VTooltip)\n\nVue.prototype.t = t\n\n// FIXME workaround to make the sidebar work\nif (!window.OCA.Files) {\n\twindow.OCA.Files = {}\n}\n\nObject.assign(window.OCA.Files, { App: { fileList: { filesClient: OC.Files.getClient() } } }, window.OCA.Files)\n\nconst Dashboard = Vue.extend(DashboardApp)\nconst Instance = new Dashboard({}).$mount('#app-content-vue')\n\nwindow.OCA.Dashboard = {\n\tregister: (app, callback) => Instance.register(app, callback),\n\tregisterStatus: (app, callback) => Instance.registerStatus(app, callback),\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-5a35ccce] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.select-group-error[data-v-5a35ccce] {\n color: var(--color-error);\n font-size: 13px;\n padding-inline-start: var(--border-radius-large);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcSettingsSelectGroup-0d38d76b.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,yBAAyB;EACzB,eAAe;EACf,gDAAgD;AAClD\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-5a35ccce] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.select-group-error[data-v-5a35ccce] {\\n color: var(--color-error);\\n font-size: 13px;\\n padding-inline-start: var(--border-radius-large);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-b5f9046e] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nli.active[data-v-b5f9046e] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-b5f9046e] {\n pointer-events: none;\n opacity: .5;\n}\n.action--disabled[data-v-b5f9046e]:hover,\n.action--disabled[data-v-b5f9046e]:focus {\n cursor: default;\n opacity: .5;\n}\n.action--disabled *[data-v-b5f9046e] {\n opacity: 1 !important;\n}\n.action-radio[data-v-b5f9046e] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: 400;\n line-height: 44px;\n}\n.action-radio__radio[data-v-b5f9046e] {\n position: absolute;\n top: auto;\n left: -10000px;\n overflow: hidden;\n width: 1px;\n height: 1px;\n}\n.action-radio__label[data-v-b5f9046e] {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 0 14px 0 0 !important;\n}\n.action-radio__label[data-v-b5f9046e]:before {\n margin: 0 14px !important;\n}\n.action-radio--disabled[data-v-b5f9046e],\n.action-radio--disabled .action-radio__label[data-v-b5f9046e] {\n cursor: pointer;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-24f6c355.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;;;;;;;;;;;;;;;;;;;EAqBE;AACF;EACE,+CAA+C;EAC/C,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,oBAAoB;EACpB,WAAW;AACb;AACA;;EAEE,eAAe;EACf,WAAW;AACb;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,gBAAgB;EAChB,iBAAiB;AACnB;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,cAAc;EACd,gBAAgB;EAChB,UAAU;EACV,WAAW;AACb;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,WAAW;EACX,8BAA8B;AAChC;AACA;EACE,yBAAyB;AAC3B;AACA;;EAEE,eAAe;AACjB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-b5f9046e] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\nli.active[data-v-b5f9046e] {\\n background-color: var(--color-background-hover);\\n border-radius: 6px;\\n padding: 0;\\n}\\n.action--disabled[data-v-b5f9046e] {\\n pointer-events: none;\\n opacity: .5;\\n}\\n.action--disabled[data-v-b5f9046e]:hover,\\n.action--disabled[data-v-b5f9046e]:focus {\\n cursor: default;\\n opacity: .5;\\n}\\n.action--disabled *[data-v-b5f9046e] {\\n opacity: 1 !important;\\n}\\n.action-radio[data-v-b5f9046e] {\\n display: flex;\\n align-items: flex-start;\\n width: 100%;\\n height: auto;\\n margin: 0;\\n padding: 0;\\n cursor: pointer;\\n white-space: nowrap;\\n color: var(--color-main-text);\\n border: 0;\\n border-radius: 0;\\n background-color: transparent;\\n box-shadow: none;\\n font-weight: 400;\\n line-height: 44px;\\n}\\n.action-radio__radio[data-v-b5f9046e] {\\n position: absolute;\\n top: auto;\\n left: -10000px;\\n overflow: hidden;\\n width: 1px;\\n height: 1px;\\n}\\n.action-radio__label[data-v-b5f9046e] {\\n display: flex;\\n align-items: center;\\n width: 100%;\\n padding: 0 14px 0 0 !important;\\n}\\n.action-radio__label[data-v-b5f9046e]:before {\\n margin: 0 14px !important;\\n}\\n.action-radio--disabled[data-v-b5f9046e],\\n.action-radio--disabled .action-radio__label[data-v-b5f9046e] {\\n cursor: pointer;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-db4cc195] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#app-settings[data-v-db4cc195] {\n margin-top: auto;\n padding: 3px;\n}\n#app-settings__header[data-v-db4cc195] {\n box-sizing: border-box;\n margin: 0 3px 3px;\n}\n#app-settings__header .settings-button[data-v-db4cc195] {\n display: flex;\n flex: 1 1 0;\n height: 44px;\n width: 100%;\n padding: 0 14px 0 0;\n margin: 0;\n background-color: var(--color-main-background);\n box-shadow: none;\n border: 0;\n border-radius: var(--border-radius-pill);\n text-align: left;\n font-weight: 400;\n font-size: 100%;\n color: var(--color-main-text);\n line-height: 44px;\n}\n#app-settings__header .settings-button[data-v-db4cc195]:hover,\n#app-settings__header .settings-button[data-v-db4cc195]:focus {\n background-color: var(--color-background-hover);\n}\n#app-settings__header .settings-button__icon[data-v-db4cc195] {\n width: 44px;\n height: 44px;\n min-width: 44px;\n}\n#app-settings__header .settings-button__label[data-v-db4cc195] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n#app-settings__content[data-v-db4cc195] {\n display: block;\n padding: 10px;\n margin-bottom: -3px;\n max-height: 300px;\n overflow-y: auto;\n box-sizing: border-box;\n}\n.slide-up-leave-active[data-v-db4cc195],\n.slide-up-enter-active[data-v-db4cc195] {\n transition-duration: var(--animation-slow);\n transition-property: max-height, padding;\n overflow-y: hidden !important;\n}\n.slide-up-enter[data-v-db4cc195],\n.slide-up-leave-to[data-v-db4cc195] {\n max-height: 0 !important;\n padding: 0 10px !important;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-34dfc54e.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,iBAAiB;AACnB;AACA;EACE,aAAa;EACb,WAAW;EACX,YAAY;EACZ,WAAW;EACX,mBAAmB;EACnB,SAAS;EACT,8CAA8C;EAC9C,gBAAgB;EAChB,SAAS;EACT,wCAAwC;EACxC,gBAAgB;EAChB,gBAAgB;EAChB,eAAe;EACf,6BAA6B;EAC7B,iBAAiB;AACnB;AACA;;EAEE,+CAA+C;AACjD;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,gBAAgB;EAChB,sBAAsB;AACxB;AACA;;EAEE,0CAA0C;EAC1C,wCAAwC;EACxC,6BAA6B;AAC/B;AACA;;EAEE,wBAAwB;EACxB,0BAA0B;AAC5B\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-db4cc195] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n#app-settings[data-v-db4cc195] {\\n margin-top: auto;\\n padding: 3px;\\n}\\n#app-settings__header[data-v-db4cc195] {\\n box-sizing: border-box;\\n margin: 0 3px 3px;\\n}\\n#app-settings__header .settings-button[data-v-db4cc195] {\\n display: flex;\\n flex: 1 1 0;\\n height: 44px;\\n width: 100%;\\n padding: 0 14px 0 0;\\n margin: 0;\\n background-color: var(--color-main-background);\\n box-shadow: none;\\n border: 0;\\n border-radius: var(--border-radius-pill);\\n text-align: left;\\n font-weight: 400;\\n font-size: 100%;\\n color: var(--color-main-text);\\n line-height: 44px;\\n}\\n#app-settings__header .settings-button[data-v-db4cc195]:hover,\\n#app-settings__header .settings-button[data-v-db4cc195]:focus {\\n background-color: var(--color-background-hover);\\n}\\n#app-settings__header .settings-button__icon[data-v-db4cc195] {\\n width: 44px;\\n height: 44px;\\n min-width: 44px;\\n}\\n#app-settings__header .settings-button__label[data-v-db4cc195] {\\n overflow: hidden;\\n max-width: 100%;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n#app-settings__content[data-v-db4cc195] {\\n display: block;\\n padding: 10px;\\n margin-bottom: -3px;\\n max-height: 300px;\\n overflow-y: auto;\\n box-sizing: border-box;\\n}\\n.slide-up-leave-active[data-v-db4cc195],\\n.slide-up-enter-active[data-v-db4cc195] {\\n transition-duration: var(--animation-slow);\\n transition-property: max-height, padding;\\n overflow-y: hidden !important;\\n}\\n.slide-up-enter[data-v-db4cc195],\\n.slide-up-leave-to[data-v-db4cc195] {\\n max-height: 0 !important;\\n padding: 0 10px !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.nc-button-group-base > div {\n text-align: center;\n color: var(--color-text-maxcontrast);\n}\n.nc-button-group-base ul.nc-button-group-content {\n display: flex;\n justify-content: space-between;\n}\n.nc-button-group-base ul.nc-button-group-content li {\n flex: 1 1;\n}\n.nc-button-group-base ul.nc-button-group-content .action-button {\n padding: 0 !important;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-5fa0ac5a.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,oCAAoC;AACtC;AACA;EACE,aAAa;EACb,8BAA8B;AAChC;AACA;EACE,SAAS;AACX;AACA;EACE,qBAAqB;EACrB,WAAW;EACX,aAAa;EACb,uBAAuB;AACzB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.nc-button-group-base > div {\\n text-align: center;\\n color: var(--color-text-maxcontrast);\\n}\\n.nc-button-group-base ul.nc-button-group-content {\\n display: flex;\\n justify-content: space-between;\\n}\\n.nc-button-group-base ul.nc-button-group-content li {\\n flex: 1 1;\\n}\\n.nc-button-group-base ul.nc-button-group-content .action-button {\\n padding: 0 !important;\\n width: 100%;\\n display: flex;\\n justify-content: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-1efcbeee] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dashboard-widget[data-v-1efcbeee] .empty-content {\n text-align: center;\n padding-top: 5vh;\n}\n.dashboard-widget[data-v-1efcbeee] .empty-content.half-screen {\n padding-top: 0;\n margin-bottom: 1vh;\n}\n.more[data-v-1efcbeee] {\n display: block;\n text-align: center;\n color: var(--color-text-maxcontrast);\n line-height: 60px;\n cursor: pointer;\n}\n.more[data-v-1efcbeee]:hover,\n.more[data-v-1efcbeee]:focus {\n background-color: var(--color-background-hover);\n border-radius: var(--border-radius-large);\n color: var(--color-main-text);\n}\n.item-list__entry[data-v-1efcbeee] {\n display: flex;\n align-items: flex-start;\n padding: 8px;\n}\n.item-list__entry .item-avatar[data-v-1efcbeee] {\n position: relative;\n margin-top: auto;\n margin-bottom: auto;\n background-color: var(--color-background-dark) !important;\n}\n.item-list__entry .item__details[data-v-1efcbeee] {\n padding-left: 8px;\n max-height: 44px;\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.item-list__entry .item__details h3[data-v-1efcbeee],\n.item-list__entry .item__details .message[data-v-1efcbeee] {\n white-space: nowrap;\n background-color: var(--color-background-dark);\n}\n.item-list__entry .item__details h3[data-v-1efcbeee] {\n font-size: 100%;\n margin: 0;\n}\n.item-list__entry .item__details .message[data-v-1efcbeee] {\n width: 80%;\n height: 15px;\n margin-top: 5px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-6416f636.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,kBAAkB;AACpB;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,oCAAoC;EACpC,iBAAiB;EACjB,eAAe;AACjB;AACA;;EAEE,+CAA+C;EAC/C,yCAAyC;EACzC,6BAA6B;AAC/B;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,mBAAmB;EACnB,yDAAyD;AAC3D;AACA;EACE,iBAAiB;EACjB,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,sBAAsB;AACxB;AACA;;EAEE,mBAAmB;EACnB,8CAA8C;AAChD;AACA;EACE,eAAe;EACf,SAAS;AACX;AACA;EACE,UAAU;EACV,YAAY;EACZ,eAAe;AACjB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-1efcbeee] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.dashboard-widget[data-v-1efcbeee] .empty-content {\\n text-align: center;\\n padding-top: 5vh;\\n}\\n.dashboard-widget[data-v-1efcbeee] .empty-content.half-screen {\\n padding-top: 0;\\n margin-bottom: 1vh;\\n}\\n.more[data-v-1efcbeee] {\\n display: block;\\n text-align: center;\\n color: var(--color-text-maxcontrast);\\n line-height: 60px;\\n cursor: pointer;\\n}\\n.more[data-v-1efcbeee]:hover,\\n.more[data-v-1efcbeee]:focus {\\n background-color: var(--color-background-hover);\\n border-radius: var(--border-radius-large);\\n color: var(--color-main-text);\\n}\\n.item-list__entry[data-v-1efcbeee] {\\n display: flex;\\n align-items: flex-start;\\n padding: 8px;\\n}\\n.item-list__entry .item-avatar[data-v-1efcbeee] {\\n position: relative;\\n margin-top: auto;\\n margin-bottom: auto;\\n background-color: var(--color-background-dark) !important;\\n}\\n.item-list__entry .item__details[data-v-1efcbeee] {\\n padding-left: 8px;\\n max-height: 44px;\\n flex-grow: 1;\\n overflow: hidden;\\n display: flex;\\n flex-direction: column;\\n}\\n.item-list__entry .item__details h3[data-v-1efcbeee],\\n.item-list__entry .item__details .message[data-v-1efcbeee] {\\n white-space: nowrap;\\n background-color: var(--color-background-dark);\\n}\\n.item-list__entry .item__details h3[data-v-1efcbeee] {\\n font-size: 100%;\\n margin: 0;\\n}\\n.item-list__entry .item__details .message[data-v-1efcbeee] {\\n width: 80%;\\n height: 15px;\\n margin-top: 5px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-5b140fb6] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.input-wrapper[data-v-5b140fb6] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n width: 100%;\n max-width: 400px;\n}\n.input-wrapper .action-input__label[data-v-5b140fb6] {\n margin-right: 12px;\n}\n.input-wrapper[data-v-5b140fb6]:disabled {\n cursor: default;\n}\n.input-wrapper .hint[data-v-5b140fb6] {\n color: var(--color-text-maxcontrast);\n margin-left: 8px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-6c47e88a.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,WAAW;EACX,gBAAgB;AAClB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,eAAe;AACjB;AACA;EACE,oCAAoC;EACpC,gBAAgB;AAClB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-5b140fb6] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.input-wrapper[data-v-5b140fb6] {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n width: 100%;\\n max-width: 400px;\\n}\\n.input-wrapper .action-input__label[data-v-5b140fb6] {\\n margin-right: 12px;\\n}\\n.input-wrapper[data-v-5b140fb6]:disabled {\\n cursor: default;\\n}\\n.input-wrapper .hint[data-v-5b140fb6] {\\n color: var(--color-text-maxcontrast);\\n margin-left: 8px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n.material-design-icon[data-v-36ad47ca] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#guest-content-vue[data-v-36ad47ca] {\n color: var(--color-main-text);\n background-color: var(--color-main-background);\n min-width: 0;\n border-radius: var(--border-radius-large);\n box-shadow: 0 0 10px var(--color-box-shadow);\n height: fit-content;\n padding: 15px;\n margin: 20px auto;\n}\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#content.nc-guest-content {\n overflow: auto;\n margin-bottom: 0;\n height: calc(var(--body-height) + var(--body-container-margin));\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-8aa4712e.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,6BAA6B;EAC7B,8CAA8C;EAC9C,YAAY;EACZ,yCAAyC;EACzC,4CAA4C;EAC5C,mBAAmB;EACnB,aAAa;EACb,iBAAiB;AACnB;AACA;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,gBAAgB;EAChB,+DAA+D;AACjE\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n.material-design-icon[data-v-36ad47ca] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n#guest-content-vue[data-v-36ad47ca] {\\n color: var(--color-main-text);\\n background-color: var(--color-main-background);\\n min-width: 0;\\n border-radius: var(--border-radius-large);\\n box-shadow: 0 0 10px var(--color-box-shadow);\\n height: fit-content;\\n padding: 15px;\\n margin: 20px auto;\\n}\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n#content.nc-guest-content {\\n overflow: auto;\\n margin-bottom: 0;\\n height: calc(var(--body-height) + var(--body-container-margin));\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n.material-design-icon[data-v-b0b05af8] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nbutton[data-v-b0b05af8]:not(.button-vue),\ninput[data-v-b0b05af8]:not([type=range]),\ntextarea[data-v-b0b05af8] {\n margin: 0;\n padding: 7px 6px;\n cursor: text;\n color: var(--color-text-lighter);\n border: 1px solid var(--color-border-dark);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--color-main-background);\n font-size: 13px;\n}\nbutton[data-v-b0b05af8]:not(.button-vue):not(:disabled):not(.primary):hover,\nbutton[data-v-b0b05af8]:not(.button-vue):not(:disabled):not(.primary):focus,\nbutton:not(.button-vue):not(:disabled):not(.primary).active[data-v-b0b05af8],\ninput[data-v-b0b05af8]:not([type=range]):not(:disabled):not(.primary):hover,\ninput[data-v-b0b05af8]:not([type=range]):not(:disabled):not(.primary):focus,\ninput:not([type=range]):not(:disabled):not(.primary).active[data-v-b0b05af8],\ntextarea[data-v-b0b05af8]:not(:disabled):not(.primary):hover,\ntextarea[data-v-b0b05af8]:not(:disabled):not(.primary):focus,\ntextarea:not(:disabled):not(.primary).active[data-v-b0b05af8] {\n border-color: var(--color-primary-element);\n outline: none;\n}\nbutton[data-v-b0b05af8]:not(.button-vue):not(:disabled):not(.primary):active,\ninput[data-v-b0b05af8]:not([type=range]):not(:disabled):not(.primary):active,\ntextarea[data-v-b0b05af8]:not(:disabled):not(.primary):active {\n color: var(--color-text-light);\n outline: none;\n background-color: var(--color-main-background);\n}\nbutton[data-v-b0b05af8]:not(.button-vue):disabled,\ninput[data-v-b0b05af8]:not([type=range]):disabled,\ntextarea[data-v-b0b05af8]:disabled {\n cursor: default;\n opacity: .5;\n color: var(--color-text-maxcontrast);\n background-color: var(--color-background-dark);\n}\nbutton[data-v-b0b05af8]:not(.button-vue):required,\ninput[data-v-b0b05af8]:not([type=range]):required,\ntextarea[data-v-b0b05af8]:required {\n box-shadow: none;\n}\nbutton[data-v-b0b05af8]:not(.button-vue):invalid,\ninput[data-v-b0b05af8]:not([type=range]):invalid,\ntextarea[data-v-b0b05af8]:invalid {\n border-color: var(--color-error);\n box-shadow: none !important;\n}\nbutton:not(.button-vue).primary[data-v-b0b05af8],\ninput:not([type=range]).primary[data-v-b0b05af8],\ntextarea.primary[data-v-b0b05af8] {\n cursor: pointer;\n color: var(--color-primary-element-text);\n border-color: var(--color-primary-element);\n background-color: var(--color-primary-element);\n}\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):hover,\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):focus,\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):hover,\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):focus,\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):active,\ntextarea.primary[data-v-b0b05af8]:not(:disabled):hover,\ntextarea.primary[data-v-b0b05af8]:not(:disabled):focus,\ntextarea.primary[data-v-b0b05af8]:not(:disabled):active {\n border-color: var(--color-primary-element-light);\n background-color: var(--color-primary-element-light);\n}\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):active,\ntextarea.primary[data-v-b0b05af8]:not(:disabled):active {\n color: var(--color-primary-element-text-dark);\n}\nbutton:not(.button-vue).primary[data-v-b0b05af8]:disabled,\ninput:not([type=range]).primary[data-v-b0b05af8]:disabled,\ntextarea.primary[data-v-b0b05af8]:disabled {\n cursor: default;\n color: var(--color-primary-element-text-dark);\n background-color: var(--color-primary-element);\n}\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nli.active[data-v-b0b05af8] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-b0b05af8] {\n pointer-events: none;\n opacity: .5;\n}\n.action--disabled[data-v-b0b05af8]:hover,\n.action--disabled[data-v-b0b05af8]:focus {\n cursor: default;\n opacity: .5;\n}\n.action--disabled *[data-v-b0b05af8] {\n opacity: 1 !important;\n}\n.action-text-editable[data-v-b0b05af8] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: 400;\n line-height: 44px;\n}\n.action-text-editable > span[data-v-b0b05af8] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-text-editable__icon[data-v-b0b05af8] {\n min-width: 0;\n min-height: 0;\n padding: 22px 0 22px 44px;\n background-position: 14px center;\n background-size: 16px;\n}\n.action-text-editable[data-v-b0b05af8] .material-design-icon {\n width: 44px;\n height: 44px;\n opacity: 1;\n}\n.action-text-editable[data-v-b0b05af8] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-text-editable__form[data-v-b0b05af8] {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n position: relative;\n margin: 4px 0;\n padding-right: 14px;\n}\n.action-text-editable__submit[data-v-b0b05af8] {\n position: absolute;\n left: -10000px;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n.action-text-editable__label[data-v-b0b05af8] {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n right: 15px;\n bottom: 1px;\n width: 36px;\n height: 36px;\n box-sizing: border-box;\n margin: 0;\n padding: 7px 6px;\n border: 0;\n border-radius: 50%;\n background-color: var(--color-main-background);\n background-clip: padding-box;\n}\n.action-text-editable__label[data-v-b0b05af8],\n.action-text-editable__label *[data-v-b0b05af8] {\n cursor: pointer;\n}\n.action-text-editable__textarea[data-v-b0b05af8] {\n flex: 1 1 auto;\n color: inherit;\n border-color: var(--color-border-maxcontrast);\n min-height: 80px;\n max-height: 124px;\n min-width: 176px;\n width: 100% !important;\n margin: 0;\n}\n.action-text-editable__textarea[data-v-b0b05af8]:disabled {\n cursor: default;\n}\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid + .action-text-editable__label[data-v-b0b05af8] {\n background-color: var(--color-error);\n}\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-b0b05af8]:active,\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-b0b05af8]:hover,\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-b0b05af8]:focus {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.action-text-editable__textarea:active:not(:disabled) + .action-text-editable__label[data-v-b0b05af8],\n.action-text-editable__textarea:hover:not(:disabled) + .action-text-editable__label[data-v-b0b05af8],\n.action-text-editable__textarea:focus:not(:disabled) + .action-text-editable__label[data-v-b0b05af8] {\n z-index: 2;\n border-color: var(--color-primary-element);\n border-left-color: transparent;\n}\nli:last-child > .action-text-editable[data-v-b0b05af8] {\n margin-bottom: 10px;\n}\nli:first-child > .action-text-editable[data-v-b0b05af8] {\n margin-top: 10px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-93ad846c.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;;;EAGE,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,gCAAgC;EAChC,0CAA0C;EAC1C,mCAAmC;EACnC,aAAa;EACb,8CAA8C;EAC9C,eAAe;AACjB;AACA;;;;;;;;;EASE,0CAA0C;EAC1C,aAAa;AACf;AACA;;;EAGE,8BAA8B;EAC9B,aAAa;EACb,8CAA8C;AAChD;AACA;;;EAGE,eAAe;EACf,WAAW;EACX,oCAAoC;EACpC,8CAA8C;AAChD;AACA;;;EAGE,gBAAgB;AAClB;AACA;;;EAGE,gCAAgC;EAChC,2BAA2B;AAC7B;AACA;;;EAGE,eAAe;EACf,wCAAwC;EACxC,0CAA0C;EAC1C,8CAA8C;AAChD;AACA;;;;;;;;;EASE,gDAAgD;EAChD,oDAAoD;AACtD;AACA;;;EAGE,6CAA6C;AAC/C;AACA;;;EAGE,eAAe;EACf,6CAA6C;EAC7C,8CAA8C;AAChD;AACA;;;;;;;;;;;;;;;;;;;;;EAqBE;AACF;EACE,+CAA+C;EAC/C,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,oBAAoB;EACpB,WAAW;AACb;AACA;;EAEE,eAAe;EACf,WAAW;AACb;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,gBAAgB;EAChB,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,YAAY;EACZ,aAAa;EACb,yBAAyB;EACzB,gCAAgC;EAChC,qBAAqB;AACvB;AACA;EACE,WAAW;EACX,YAAY;EACZ,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,kBAAkB;EAClB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,SAAS;EACT,UAAU;EACV,WAAW;EACX,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;EAClB,WAAW;EACX,WAAW;EACX,WAAW;EACX,YAAY;EACZ,sBAAsB;EACtB,SAAS;EACT,gBAAgB;EAChB,SAAS;EACT,kBAAkB;EAClB,8CAA8C;EAC9C,4BAA4B;AAC9B;AACA;;EAEE,eAAe;AACjB;AACA;EACE,cAAc;EACd,cAAc;EACd,6CAA6C;EAC7C,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;EAChB,sBAAsB;EACtB,SAAS;AACX;AACA;EACE,eAAe;AACjB;AACA;EACE,oCAAoC;AACtC;AACA;;;EAGE,8CAA8C;EAC9C,wCAAwC;AAC1C;AACA;;;EAGE,UAAU;EACV,0CAA0C;EAC1C,8BAA8B;AAChC;AACA;EACE,mBAAmB;AACrB;AACA;EACE,gBAAgB;AAClB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n.material-design-icon[data-v-b0b05af8] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\nbutton[data-v-b0b05af8]:not(.button-vue),\\ninput[data-v-b0b05af8]:not([type=range]),\\ntextarea[data-v-b0b05af8] {\\n margin: 0;\\n padding: 7px 6px;\\n cursor: text;\\n color: var(--color-text-lighter);\\n border: 1px solid var(--color-border-dark);\\n border-radius: var(--border-radius);\\n outline: none;\\n background-color: var(--color-main-background);\\n font-size: 13px;\\n}\\nbutton[data-v-b0b05af8]:not(.button-vue):not(:disabled):not(.primary):hover,\\nbutton[data-v-b0b05af8]:not(.button-vue):not(:disabled):not(.primary):focus,\\nbutton:not(.button-vue):not(:disabled):not(.primary).active[data-v-b0b05af8],\\ninput[data-v-b0b05af8]:not([type=range]):not(:disabled):not(.primary):hover,\\ninput[data-v-b0b05af8]:not([type=range]):not(:disabled):not(.primary):focus,\\ninput:not([type=range]):not(:disabled):not(.primary).active[data-v-b0b05af8],\\ntextarea[data-v-b0b05af8]:not(:disabled):not(.primary):hover,\\ntextarea[data-v-b0b05af8]:not(:disabled):not(.primary):focus,\\ntextarea:not(:disabled):not(.primary).active[data-v-b0b05af8] {\\n border-color: var(--color-primary-element);\\n outline: none;\\n}\\nbutton[data-v-b0b05af8]:not(.button-vue):not(:disabled):not(.primary):active,\\ninput[data-v-b0b05af8]:not([type=range]):not(:disabled):not(.primary):active,\\ntextarea[data-v-b0b05af8]:not(:disabled):not(.primary):active {\\n color: var(--color-text-light);\\n outline: none;\\n background-color: var(--color-main-background);\\n}\\nbutton[data-v-b0b05af8]:not(.button-vue):disabled,\\ninput[data-v-b0b05af8]:not([type=range]):disabled,\\ntextarea[data-v-b0b05af8]:disabled {\\n cursor: default;\\n opacity: .5;\\n color: var(--color-text-maxcontrast);\\n background-color: var(--color-background-dark);\\n}\\nbutton[data-v-b0b05af8]:not(.button-vue):required,\\ninput[data-v-b0b05af8]:not([type=range]):required,\\ntextarea[data-v-b0b05af8]:required {\\n box-shadow: none;\\n}\\nbutton[data-v-b0b05af8]:not(.button-vue):invalid,\\ninput[data-v-b0b05af8]:not([type=range]):invalid,\\ntextarea[data-v-b0b05af8]:invalid {\\n border-color: var(--color-error);\\n box-shadow: none !important;\\n}\\nbutton:not(.button-vue).primary[data-v-b0b05af8],\\ninput:not([type=range]).primary[data-v-b0b05af8],\\ntextarea.primary[data-v-b0b05af8] {\\n cursor: pointer;\\n color: var(--color-primary-element-text);\\n border-color: var(--color-primary-element);\\n background-color: var(--color-primary-element);\\n}\\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):hover,\\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):focus,\\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):active,\\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):hover,\\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):focus,\\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):active,\\ntextarea.primary[data-v-b0b05af8]:not(:disabled):hover,\\ntextarea.primary[data-v-b0b05af8]:not(:disabled):focus,\\ntextarea.primary[data-v-b0b05af8]:not(:disabled):active {\\n border-color: var(--color-primary-element-light);\\n background-color: var(--color-primary-element-light);\\n}\\nbutton:not(.button-vue).primary[data-v-b0b05af8]:not(:disabled):active,\\ninput:not([type=range]).primary[data-v-b0b05af8]:not(:disabled):active,\\ntextarea.primary[data-v-b0b05af8]:not(:disabled):active {\\n color: var(--color-primary-element-text-dark);\\n}\\nbutton:not(.button-vue).primary[data-v-b0b05af8]:disabled,\\ninput:not([type=range]).primary[data-v-b0b05af8]:disabled,\\ntextarea.primary[data-v-b0b05af8]:disabled {\\n cursor: default;\\n color: var(--color-primary-element-text-dark);\\n background-color: var(--color-primary-element);\\n}\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\nli.active[data-v-b0b05af8] {\\n background-color: var(--color-background-hover);\\n border-radius: 6px;\\n padding: 0;\\n}\\n.action--disabled[data-v-b0b05af8] {\\n pointer-events: none;\\n opacity: .5;\\n}\\n.action--disabled[data-v-b0b05af8]:hover,\\n.action--disabled[data-v-b0b05af8]:focus {\\n cursor: default;\\n opacity: .5;\\n}\\n.action--disabled *[data-v-b0b05af8] {\\n opacity: 1 !important;\\n}\\n.action-text-editable[data-v-b0b05af8] {\\n display: flex;\\n align-items: flex-start;\\n width: 100%;\\n height: auto;\\n margin: 0;\\n padding: 0;\\n cursor: pointer;\\n white-space: nowrap;\\n color: var(--color-main-text);\\n border: 0;\\n border-radius: 0;\\n background-color: transparent;\\n box-shadow: none;\\n font-weight: 400;\\n line-height: 44px;\\n}\\n.action-text-editable > span[data-v-b0b05af8] {\\n cursor: pointer;\\n white-space: nowrap;\\n}\\n.action-text-editable__icon[data-v-b0b05af8] {\\n min-width: 0;\\n min-height: 0;\\n padding: 22px 0 22px 44px;\\n background-position: 14px center;\\n background-size: 16px;\\n}\\n.action-text-editable[data-v-b0b05af8] .material-design-icon {\\n width: 44px;\\n height: 44px;\\n opacity: 1;\\n}\\n.action-text-editable[data-v-b0b05af8] .material-design-icon .material-design-icon__svg {\\n vertical-align: middle;\\n}\\n.action-text-editable__form[data-v-b0b05af8] {\\n display: flex;\\n flex: 1 1 auto;\\n flex-direction: column;\\n position: relative;\\n margin: 4px 0;\\n padding-right: 14px;\\n}\\n.action-text-editable__submit[data-v-b0b05af8] {\\n position: absolute;\\n left: -10000px;\\n top: auto;\\n width: 1px;\\n height: 1px;\\n overflow: hidden;\\n}\\n.action-text-editable__label[data-v-b0b05af8] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n position: absolute;\\n right: 15px;\\n bottom: 1px;\\n width: 36px;\\n height: 36px;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 7px 6px;\\n border: 0;\\n border-radius: 50%;\\n background-color: var(--color-main-background);\\n background-clip: padding-box;\\n}\\n.action-text-editable__label[data-v-b0b05af8],\\n.action-text-editable__label *[data-v-b0b05af8] {\\n cursor: pointer;\\n}\\n.action-text-editable__textarea[data-v-b0b05af8] {\\n flex: 1 1 auto;\\n color: inherit;\\n border-color: var(--color-border-maxcontrast);\\n min-height: 80px;\\n max-height: 124px;\\n min-width: 176px;\\n width: 100% !important;\\n margin: 0;\\n}\\n.action-text-editable__textarea[data-v-b0b05af8]:disabled {\\n cursor: default;\\n}\\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid + .action-text-editable__label[data-v-b0b05af8] {\\n background-color: var(--color-error);\\n}\\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-b0b05af8]:active,\\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-b0b05af8]:hover,\\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-b0b05af8]:focus {\\n background-color: var(--color-primary-element);\\n color: var(--color-primary-element-text);\\n}\\n.action-text-editable__textarea:active:not(:disabled) + .action-text-editable__label[data-v-b0b05af8],\\n.action-text-editable__textarea:hover:not(:disabled) + .action-text-editable__label[data-v-b0b05af8],\\n.action-text-editable__textarea:focus:not(:disabled) + .action-text-editable__label[data-v-b0b05af8] {\\n z-index: 2;\\n border-color: var(--color-primary-element);\\n border-left-color: transparent;\\n}\\nli:last-child > .action-text-editable[data-v-b0b05af8] {\\n margin-bottom: 10px;\\n}\\nli:first-child > .action-text-editable[data-v-b0b05af8] {\\n margin-top: 10px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-8950be04] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-entry[data-v-8950be04] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n min-height: 44px;\n transition: background-color var(--animation-quick) ease-in-out;\n transition: background-color .2s ease-in-out;\n border-radius: var(--border-radius-pill);\n}\n.app-navigation-entry-wrapper[data-v-8950be04] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n}\n.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul[data-v-8950be04] {\n display: none;\n}\n.app-navigation-entry.active[data-v-8950be04] {\n background-color: var(--color-primary-element) !important;\n}\n.app-navigation-entry.active .app-navigation-entry-link[data-v-8950be04],\n.app-navigation-entry.active .app-navigation-entry-button[data-v-8950be04] {\n color: var(--color-primary-element-text) !important;\n}\n.app-navigation-entry[data-v-8950be04]:focus-within,\n.app-navigation-entry[data-v-8950be04]:hover {\n background-color: var(--color-background-hover);\n}\n.app-navigation-entry.active .app-navigation-entry__children[data-v-8950be04],\n.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-8950be04],\n.app-navigation-entry:hover .app-navigation-entry__children[data-v-8950be04] {\n background-color: var(--color-main-background);\n}\n.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\n.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\n.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\n.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\n.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04] {\n display: inline-block;\n}\n.app-navigation-entry.app-navigation-entry--deleted > ul[data-v-8950be04] {\n display: none;\n}\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-8950be04],\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-8950be04] {\n padding-right: 14px;\n}\n.app-navigation-entry .app-navigation-entry-link[data-v-8950be04],\n.app-navigation-entry .app-navigation-entry-button[data-v-8950be04] {\n z-index: 100;\n display: flex;\n overflow: hidden;\n flex: 1 1 0;\n box-sizing: border-box;\n min-height: 44px;\n padding: 0;\n white-space: nowrap;\n color: var(--color-main-text);\n background-repeat: no-repeat;\n background-position: 14px center;\n background-size: 16px 16px;\n line-height: 44px;\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-8950be04],\n.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-8950be04] {\n display: flex;\n align-items: center;\n flex: 0 0 44px;\n justify-content: center;\n width: 44px;\n height: 44px;\n background-size: 16px 16px;\n background-repeat: no-repeat;\n background-position: 14px center;\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-8950be04],\n.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-8950be04] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-8950be04],\n.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-8950be04] {\n width: calc(100% - 44px);\n margin: auto;\n}\n.app-navigation-entry__children[data-v-8950be04] {\n position: relative;\n display: flex;\n flex: 0 1 auto;\n flex-direction: column;\n width: 100%;\n gap: var(--default-grid-baseline, 4px);\n}\n.app-navigation-entry__children .app-navigation-entry[data-v-8950be04] {\n display: inline-flex;\n flex-wrap: wrap;\n padding-left: 16px;\n}\n.app-navigation-entry__deleted[data-v-8950be04] {\n display: inline-flex;\n flex: 1 1 0;\n padding-left: 30px !important;\n}\n.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-8950be04] {\n position: relative;\n overflow: hidden;\n flex: 1 1 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 44px;\n}\n.app-navigation-entry__utils[data-v-8950be04] {\n display: flex;\n min-width: 44px;\n align-items: center;\n flex: 0 1 auto;\n justify-content: flex-end;\n}\n.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-8950be04] {\n display: inline-block;\n}\n.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-8950be04] {\n margin-right: calc(var(--default-grid-baseline) * 3);\n display: flex;\n align-items: center;\n flex: 0 1 auto;\n}\n.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-8950be04] {\n display: none;\n}\n.app-navigation-entry--editing .app-navigation-entry-edit[data-v-8950be04] {\n z-index: 250;\n opacity: 1;\n}\n.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-8950be04] {\n z-index: 250;\n transform: translate(0);\n}\n.app-navigation-entry--pinned[data-v-8950be04] {\n order: 2;\n margin-top: auto;\n}\n.app-navigation-entry--pinned ~ .app-navigation-entry--pinned[data-v-8950be04] {\n margin-top: 0;\n}\n[data-themes*=highcontrast] .app-navigation-entry[data-v-8950be04]:active {\n background-color: var(--color-primary-element-light-hover) !important;\n}\n.app-navigation-new-item__name[data-v-8950be04] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n padding-left: 7px;\n font-size: 14px;\n}\n.newItemContainer[data-v-8950be04] {\n width: calc(100% - 44px);\n margin: auto;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-93bc89ef.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,eAAe;EACf,sBAAsB;EACtB,WAAW;EACX,gBAAgB;EAChB,+DAA+D;EAC/D,4CAA4C;EAC5C,wCAAwC;AAC1C;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,eAAe;EACf,sBAAsB;EACtB,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE,yDAAyD;AAC3D;AACA;;EAEE,mDAAmD;AACrD;AACA;;EAEE,+CAA+C;AACjD;AACA;;;EAGE,8CAA8C;AAChD;AACA;;;;;EAKE,qBAAqB;AACvB;AACA;EACE,aAAa;AACf;AACA;;EAEE,mBAAmB;AACrB;AACA;;EAEE,YAAY;EACZ,aAAa;EACb,gBAAgB;EAChB,WAAW;EACX,sBAAsB;EACtB,gBAAgB;EAChB,UAAU;EACV,mBAAmB;EACnB,6BAA6B;EAC7B,4BAA4B;EAC5B,gCAAgC;EAChC,0BAA0B;EAC1B,iBAAiB;AACnB;AACA;;EAEE,aAAa;EACb,mBAAmB;EACnB,cAAc;EACd,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,0BAA0B;EAC1B,4BAA4B;EAC5B,gCAAgC;AAClC;AACA;;EAEE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;EAEE,wBAAwB;EACxB,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,WAAW;EACX,sCAAsC;AACxC;AACA;EACE,oBAAoB;EACpB,eAAe;EACf,kBAAkB;AACpB;AACA;EACE,oBAAoB;EACpB,WAAW;EACX,6BAA6B;AAC/B;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,WAAW;EACX,mBAAmB;EACnB,uBAAuB;EACvB,iBAAiB;AACnB;AACA;EACE,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,cAAc;EACd,yBAAyB;AAC3B;AACA;EACE,qBAAqB;AACvB;AACA;EACE,oDAAoD;EACpD,aAAa;EACb,mBAAmB;EACnB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,YAAY;EACZ,UAAU;AACZ;AACA;EACE,YAAY;EACZ,uBAAuB;AACzB;AACA;EACE,QAAQ;EACR,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,qEAAqE;AACvE;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;EACvB,iBAAiB;EACjB,eAAe;AACjB;AACA;EACE,wBAAwB;EACxB,YAAY;AACd\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-8950be04] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.app-navigation-entry[data-v-8950be04] {\\n position: relative;\\n display: flex;\\n flex-shrink: 0;\\n flex-wrap: wrap;\\n box-sizing: border-box;\\n width: 100%;\\n min-height: 44px;\\n transition: background-color var(--animation-quick) ease-in-out;\\n transition: background-color .2s ease-in-out;\\n border-radius: var(--border-radius-pill);\\n}\\n.app-navigation-entry-wrapper[data-v-8950be04] {\\n position: relative;\\n display: flex;\\n flex-shrink: 0;\\n flex-wrap: wrap;\\n box-sizing: border-box;\\n width: 100%;\\n}\\n.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul[data-v-8950be04] {\\n display: none;\\n}\\n.app-navigation-entry.active[data-v-8950be04] {\\n background-color: var(--color-primary-element) !important;\\n}\\n.app-navigation-entry.active .app-navigation-entry-link[data-v-8950be04],\\n.app-navigation-entry.active .app-navigation-entry-button[data-v-8950be04] {\\n color: var(--color-primary-element-text) !important;\\n}\\n.app-navigation-entry[data-v-8950be04]:focus-within,\\n.app-navigation-entry[data-v-8950be04]:hover {\\n background-color: var(--color-background-hover);\\n}\\n.app-navigation-entry.active .app-navigation-entry__children[data-v-8950be04],\\n.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-8950be04],\\n.app-navigation-entry:hover .app-navigation-entry__children[data-v-8950be04] {\\n background-color: var(--color-main-background);\\n}\\n.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\\n.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\\n.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\\n.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04],\\n.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-8950be04] {\\n display: inline-block;\\n}\\n.app-navigation-entry.app-navigation-entry--deleted > ul[data-v-8950be04] {\\n display: none;\\n}\\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-8950be04],\\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-8950be04] {\\n padding-right: 14px;\\n}\\n.app-navigation-entry .app-navigation-entry-link[data-v-8950be04],\\n.app-navigation-entry .app-navigation-entry-button[data-v-8950be04] {\\n z-index: 100;\\n display: flex;\\n overflow: hidden;\\n flex: 1 1 0;\\n box-sizing: border-box;\\n min-height: 44px;\\n padding: 0;\\n white-space: nowrap;\\n color: var(--color-main-text);\\n background-repeat: no-repeat;\\n background-position: 14px center;\\n background-size: 16px 16px;\\n line-height: 44px;\\n}\\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-8950be04],\\n.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-8950be04] {\\n display: flex;\\n align-items: center;\\n flex: 0 0 44px;\\n justify-content: center;\\n width: 44px;\\n height: 44px;\\n background-size: 16px 16px;\\n background-repeat: no-repeat;\\n background-position: 14px center;\\n}\\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-8950be04],\\n.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-8950be04] {\\n overflow: hidden;\\n max-width: 100%;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-8950be04],\\n.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-8950be04] {\\n width: calc(100% - 44px);\\n margin: auto;\\n}\\n.app-navigation-entry__children[data-v-8950be04] {\\n position: relative;\\n display: flex;\\n flex: 0 1 auto;\\n flex-direction: column;\\n width: 100%;\\n gap: var(--default-grid-baseline, 4px);\\n}\\n.app-navigation-entry__children .app-navigation-entry[data-v-8950be04] {\\n display: inline-flex;\\n flex-wrap: wrap;\\n padding-left: 16px;\\n}\\n.app-navigation-entry__deleted[data-v-8950be04] {\\n display: inline-flex;\\n flex: 1 1 0;\\n padding-left: 30px !important;\\n}\\n.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-8950be04] {\\n position: relative;\\n overflow: hidden;\\n flex: 1 1 0;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: 44px;\\n}\\n.app-navigation-entry__utils[data-v-8950be04] {\\n display: flex;\\n min-width: 44px;\\n align-items: center;\\n flex: 0 1 auto;\\n justify-content: flex-end;\\n}\\n.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-8950be04] {\\n display: inline-block;\\n}\\n.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-8950be04] {\\n margin-right: calc(var(--default-grid-baseline) * 3);\\n display: flex;\\n align-items: center;\\n flex: 0 1 auto;\\n}\\n.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-8950be04] {\\n display: none;\\n}\\n.app-navigation-entry--editing .app-navigation-entry-edit[data-v-8950be04] {\\n z-index: 250;\\n opacity: 1;\\n}\\n.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-8950be04] {\\n z-index: 250;\\n transform: translate(0);\\n}\\n.app-navigation-entry--pinned[data-v-8950be04] {\\n order: 2;\\n margin-top: auto;\\n}\\n.app-navigation-entry--pinned ~ .app-navigation-entry--pinned[data-v-8950be04] {\\n margin-top: 0;\\n}\\n[data-themes*=highcontrast] .app-navigation-entry[data-v-8950be04]:active {\\n background-color: var(--color-primary-element-light-hover) !important;\\n}\\n.app-navigation-new-item__name[data-v-8950be04] {\\n overflow: hidden;\\n max-width: 100%;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n padding-left: 7px;\\n font-size: 14px;\\n}\\n.newItemContainer[data-v-8950be04] {\\n width: calc(100% - 44px);\\n margin: auto;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n.material-design-icon[data-v-1a960bef] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.resource[data-v-1a960bef] {\n display: flex;\n align-items: center;\n height: 44px;\n}\n.resource__button[data-v-1a960bef] {\n width: 100% !important;\n justify-content: flex-start !important;\n padding: 0 !important;\n}\n.resource__button[data-v-1a960bef] .button-vue__wrapper {\n justify-content: flex-start !important;\n}\n.resource__button[data-v-1a960bef] .button-vue__wrapper .button-vue__text {\n font-weight: 400 !important;\n margin-left: 2px !important;\n}\n.resource__icon[data-v-1a960bef] {\n width: 32px;\n height: 32px;\n background-color: var(--color-text-maxcontrast);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.resource__icon img[data-v-1a960bef] {\n width: 16px;\n height: 16px;\n filter: var(--background-invert-if-dark);\n}\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-19300848] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.related-resources__header[data-v-19300848] {\n margin: 0 0 10px 46px;\n}\n.related-resources__header h5[data-v-19300848] {\n font-weight: 700;\n}\n.related-resources__header p[data-v-19300848] {\n color: var(--color-text-maxcontrast);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-ab715d82.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,sCAAsC;EACtC,qBAAqB;AACvB;AACA;EACE,sCAAsC;AACxC;AACA;EACE,2BAA2B;EAC3B,2BAA2B;AAC7B;AACA;EACE,WAAW;EACX,YAAY;EACZ,+CAA+C;EAC/C,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,YAAY;EACZ,wCAAwC;AAC1C;AACA;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,oCAAoC;AACtC\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n.material-design-icon[data-v-1a960bef] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.resource[data-v-1a960bef] {\\n display: flex;\\n align-items: center;\\n height: 44px;\\n}\\n.resource__button[data-v-1a960bef] {\\n width: 100% !important;\\n justify-content: flex-start !important;\\n padding: 0 !important;\\n}\\n.resource__button[data-v-1a960bef] .button-vue__wrapper {\\n justify-content: flex-start !important;\\n}\\n.resource__button[data-v-1a960bef] .button-vue__wrapper .button-vue__text {\\n font-weight: 400 !important;\\n margin-left: 2px !important;\\n}\\n.resource__icon[data-v-1a960bef] {\\n width: 32px;\\n height: 32px;\\n background-color: var(--color-text-maxcontrast);\\n border-radius: 50%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.resource__icon img[data-v-1a960bef] {\\n width: 16px;\\n height: 16px;\\n filter: var(--background-invert-if-dark);\\n}\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-19300848] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.related-resources__header[data-v-19300848] {\\n margin: 0 0 10px 46px;\\n}\\n.related-resources__header h5[data-v-19300848] {\\n font-weight: 700;\\n}\\n.related-resources__header p[data-v-19300848] {\\n color: var(--color-text-maxcontrast);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-55ab76f1] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.user-bubble__wrapper[data-v-55ab76f1] {\n display: inline-block;\n vertical-align: middle;\n min-width: 0;\n max-width: 100%;\n}\n.user-bubble__content[data-v-55ab76f1] {\n display: inline-flex;\n max-width: 100%;\n background-color: var(--color-background-dark);\n}\n.user-bubble__content--primary[data-v-55ab76f1] {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.user-bubble__content[data-v-55ab76f1] > :last-child {\n padding-right: 8px;\n}\n.user-bubble__avatar[data-v-55ab76f1] {\n align-self: center;\n}\n.user-bubble__name[data-v-55ab76f1] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.user-bubble__name[data-v-55ab76f1],\n.user-bubble__secondary[data-v-55ab76f1] {\n padding: 0 0 0 4px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-c221fe05.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,qBAAqB;EACrB,sBAAsB;EACtB,YAAY;EACZ,eAAe;AACjB;AACA;EACE,oBAAoB;EACpB,eAAe;EACf,8CAA8C;AAChD;AACA;EACE,wCAAwC;EACxC,8CAA8C;AAChD;AACA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;EAEE,kBAAkB;AACpB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-55ab76f1] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.user-bubble__wrapper[data-v-55ab76f1] {\\n display: inline-block;\\n vertical-align: middle;\\n min-width: 0;\\n max-width: 100%;\\n}\\n.user-bubble__content[data-v-55ab76f1] {\\n display: inline-flex;\\n max-width: 100%;\\n background-color: var(--color-background-dark);\\n}\\n.user-bubble__content--primary[data-v-55ab76f1] {\\n color: var(--color-primary-element-text);\\n background-color: var(--color-primary-element);\\n}\\n.user-bubble__content[data-v-55ab76f1] > :last-child {\\n padding-right: 8px;\\n}\\n.user-bubble__avatar[data-v-55ab76f1] {\\n align-self: center;\\n}\\n.user-bubble__name[data-v-55ab76f1] {\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n.user-bubble__name[data-v-55ab76f1],\\n.user-bubble__secondary[data-v-55ab76f1] {\\n padding: 0 0 0 4px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-00e861ef] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.item-list__entry[data-v-00e861ef] {\n display: flex;\n align-items: flex-start;\n position: relative;\n padding: 8px;\n}\n.item-list__entry[data-v-00e861ef]:hover,\n.item-list__entry[data-v-00e861ef]:focus {\n background-color: var(--color-background-hover);\n border-radius: var(--border-radius-large);\n}\n.item-list__entry .item-avatar[data-v-00e861ef] {\n position: relative;\n margin-top: auto;\n margin-bottom: auto;\n}\n.item-list__entry .item__details[data-v-00e861ef] {\n padding-left: 8px;\n max-height: 44px;\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.item-list__entry .item__details h3[data-v-00e861ef],\n.item-list__entry .item__details .message[data-v-00e861ef] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.item-list__entry .item__details .message span[data-v-00e861ef] {\n width: 10px;\n display: inline-block;\n margin-bottom: -3px;\n}\n.item-list__entry .item__details h3[data-v-00e861ef] {\n font-size: 100%;\n margin: 0;\n}\n.item-list__entry .item__details .message[data-v-00e861ef] {\n width: 100%;\n color: var(--color-text-maxcontrast);\n}\n.item-list__entry .item-icon[data-v-00e861ef] {\n position: relative;\n width: 14px;\n height: 14px;\n margin: 27px -3px 0 -7px;\n}\n.item-list__entry button.primary[data-v-00e861ef] {\n padding: 21px;\n margin: 0;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-e7eadba7.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,kBAAkB;EAClB,YAAY;AACd;AACA;;EAEE,+CAA+C;EAC/C,yCAAyC;AAC3C;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,iBAAiB;EACjB,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,sBAAsB;AACxB;AACA;;EAEE,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,qBAAqB;EACrB,mBAAmB;AACrB;AACA;EACE,eAAe;EACf,SAAS;AACX;AACA;EACE,WAAW;EACX,oCAAoC;AACtC;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,wBAAwB;AAC1B;AACA;EACE,aAAa;EACb,SAAS;AACX\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-00e861ef] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.item-list__entry[data-v-00e861ef] {\\n display: flex;\\n align-items: flex-start;\\n position: relative;\\n padding: 8px;\\n}\\n.item-list__entry[data-v-00e861ef]:hover,\\n.item-list__entry[data-v-00e861ef]:focus {\\n background-color: var(--color-background-hover);\\n border-radius: var(--border-radius-large);\\n}\\n.item-list__entry .item-avatar[data-v-00e861ef] {\\n position: relative;\\n margin-top: auto;\\n margin-bottom: auto;\\n}\\n.item-list__entry .item__details[data-v-00e861ef] {\\n padding-left: 8px;\\n max-height: 44px;\\n flex-grow: 1;\\n overflow: hidden;\\n display: flex;\\n flex-direction: column;\\n}\\n.item-list__entry .item__details h3[data-v-00e861ef],\\n.item-list__entry .item__details .message[data-v-00e861ef] {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.item-list__entry .item__details .message span[data-v-00e861ef] {\\n width: 10px;\\n display: inline-block;\\n margin-bottom: -3px;\\n}\\n.item-list__entry .item__details h3[data-v-00e861ef] {\\n font-size: 100%;\\n margin: 0;\\n}\\n.item-list__entry .item__details .message[data-v-00e861ef] {\\n width: 100%;\\n color: var(--color-text-maxcontrast);\\n}\\n.item-list__entry .item-icon[data-v-00e861ef] {\\n position: relative;\\n width: 14px;\\n height: 14px;\\n margin: 27px -3px 0 -7px;\\n}\\n.item-list__entry button.primary[data-v-00e861ef] {\\n padding: 21px;\\n margin: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n.material-design-icon[data-v-91580127] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-entry__icon-bullet[data-v-91580127] {\n display: block;\n padding: 15px;\n}\n.app-navigation-entry__icon-bullet div[data-v-91580127] {\n width: 14px;\n height: 14px;\n cursor: pointer;\n transition: background .1s ease-in-out;\n border: none;\n border-radius: 50%;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/index-fc61f2d8.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,aAAa;AACf;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,sCAAsC;EACtC,YAAY;EACZ,kBAAkB;AACpB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.material-design-icon[data-v-91580127] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.app-navigation-entry__icon-bullet[data-v-91580127] {\\n display: block;\\n padding: 15px;\\n}\\n.app-navigation-entry__icon-bullet div[data-v-91580127] {\\n width: 14px;\\n height: 14px;\\n cursor: pointer;\\n transition: background .1s ease-in-out;\\n border: none;\\n border-radius: 50%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `#app-dashboard[data-v-9fd44988]{width:100%;min-height:100%;background-size:cover;background-position:center center;background-repeat:no-repeat;background-attachment:fixed}#app-dashboard>h2[data-v-9fd44988]{color:var(--color-primary-element-text);text-align:center;font-size:32px;line-height:130%;padding:1rem 0}.panels[data-v-9fd44988]{width:auto;margin:auto;max-width:1800px;display:flex;justify-content:center;flex-direction:row;align-items:flex-start;flex-wrap:wrap}.panel[data-v-9fd44988],.panels>div[data-v-9fd44988]{width:320px;max-width:100%;margin:16px;align-self:stretch;background-color:var(--color-main-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur);border-radius:var(--border-radius-rounded)}#body-user.theme--highcontrast .panel[data-v-9fd44988],#body-user.theme--highcontrast .panels>div[data-v-9fd44988]{border:2px solid var(--color-border)}.panel.sortable-ghost[data-v-9fd44988],.panels>div.sortable-ghost[data-v-9fd44988]{opacity:.1}.panel>.panel--header[data-v-9fd44988],.panels>div>.panel--header[data-v-9fd44988]{display:flex;z-index:1;top:50px;padding:16px;cursor:grab}.panel>.panel--header[data-v-9fd44988],.panel>.panel--header[data-v-9fd44988] *,.panels>div>.panel--header[data-v-9fd44988],.panels>div>.panel--header[data-v-9fd44988] *{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.panel>.panel--header[data-v-9fd44988]:active,.panels>div>.panel--header[data-v-9fd44988]:active{cursor:grabbing}.panel>.panel--header a[data-v-9fd44988],.panels>div>.panel--header a[data-v-9fd44988]{flex-grow:1}.panel>.panel--header>h2[data-v-9fd44988],.panels>div>.panel--header>h2[data-v-9fd44988]{display:block;align-items:center;flex-grow:1;margin:0;font-size:20px;line-height:24px;font-weight:bold;padding:16px 8px;height:56px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab}.panel>.panel--header>h2 span[data-v-9fd44988],.panels>div>.panel--header>h2 span[data-v-9fd44988]{background-size:32px;width:32px;height:32px;margin-right:16px;background-position:center;float:left;margin-top:-6px}.panel>.panel--content[data-v-9fd44988],.panels>div>.panel--content[data-v-9fd44988]{margin:0 16px 16px 16px;height:424px;overflow:visible}@media only screen and (max-width: 709px){.panel>.panel--content[data-v-9fd44988],.panels>div>.panel--content[data-v-9fd44988]{height:auto}}.footer[data-v-9fd44988]{display:flex;justify-content:center;transition:bottom var(--animation-slow) ease-in-out;padding:1rem 0}.edit-panels[data-v-9fd44988]{display:inline-block;margin:auto;background-position:16px center;padding:12px 16px;padding-left:36px;border-radius:var(--border-radius-pill);max-width:200px;opacity:1;text-align:center}.button[data-v-9fd44988],.button-vue[data-v-9fd44988],.edit-panels[data-v-9fd44988],.statuses[data-v-9fd44988] .action-item .action-item__menutoggle,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle{background-color:var(--color-main-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur);opacity:1 !important}.button[data-v-9fd44988]:hover,.button[data-v-9fd44988]:focus,.button[data-v-9fd44988]:active,.button-vue[data-v-9fd44988]:hover,.button-vue[data-v-9fd44988]:focus,.button-vue[data-v-9fd44988]:active,.edit-panels[data-v-9fd44988]:hover,.edit-panels[data-v-9fd44988]:focus,.edit-panels[data-v-9fd44988]:active,.statuses[data-v-9fd44988] .action-item .action-item__menutoggle:hover,.statuses[data-v-9fd44988] .action-item .action-item__menutoggle:focus,.statuses[data-v-9fd44988] .action-item .action-item__menutoggle:active,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle:hover,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle:focus,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle:active{background-color:var(--color-background-hover) !important}.button[data-v-9fd44988]:focus-visible,.button-vue[data-v-9fd44988]:focus-visible,.edit-panels[data-v-9fd44988]:focus-visible,.statuses[data-v-9fd44988] .action-item .action-item__menutoggle:focus-visible,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle:focus-visible{box-shadow:0 0 0 4px var(--color-main-background) !important;outline:2px solid var(--color-main-text) !important}.modal__content[data-v-9fd44988]{padding:32px 16px;text-align:center}.modal__content ol[data-v-9fd44988]{display:flex;flex-direction:row;justify-content:center;list-style-type:none;padding-bottom:16px}.modal__content li label[data-v-9fd44988]{position:relative;display:block;padding:48px 16px 14px 16px;margin:8px;width:140px;background-color:var(--color-background-hover);border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal__content li label span[data-v-9fd44988]{position:absolute;top:16px;width:24px;height:24px;background-size:24px}.modal__content li label[data-v-9fd44988]:hover{border-color:var(--color-primary-element)}.modal__content li:not(.panel-status) label span[data-v-9fd44988]{filter:var(--background-invert-if-dark)}.modal__content li input[type=checkbox].checkbox+label[data-v-9fd44988]:before{position:absolute;right:12px;top:16px}.modal__content li input:focus+label[data-v-9fd44988]{border-color:var(--color-primary-element)}.modal__content h3[data-v-9fd44988]{font-weight:bold}.modal__content h3[data-v-9fd44988]:not(:first-of-type){margin-top:64px}.modal__content .button[data-v-9fd44988]{display:inline-block;padding:10px 16px;margin:0}.modal__content p[data-v-9fd44988]{max-width:650px;margin:0 auto}.modal__content p a[data-v-9fd44988]:hover,.modal__content p a[data-v-9fd44988]:focus{border-bottom:2px solid var(--color-border)}.modal__content .credits--end[data-v-9fd44988]{padding-bottom:32px;color:var(--color-text-maxcontrast)}.modal__content .credits--end a[data-v-9fd44988]{color:var(--color-text-maxcontrast)}.flip-list-move[data-v-9fd44988]{transition:transform var(--animation-slow)}.statuses[data-v-9fd44988]{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;margin-bottom:36px}.statuses>li[data-v-9fd44988]{margin:8px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dashboard/src/DashboardApp.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,UAAA,CACA,eAAA,CACA,qBAAA,CACA,iCAAA,CACA,2BAAA,CACA,2BAAA,CAEA,mCACC,uCAAA,CACA,iBAAA,CACA,cAAA,CACA,gBAAA,CACA,cAAA,CAIF,yBACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CAGD,qDACC,WAAA,CACA,cAAA,CACA,WAAA,CACA,kBAAA,CACA,kDAAA,CACA,qDAAA,CACA,6CAAA,CACA,0CAAA,CAEA,mHACC,oCAAA,CAGD,mFACE,UAAA,CAGF,mFACC,YAAA,CACA,SAAA,CACA,QAAA,CACA,YAAA,CACA,WAAA,CAEA,0KACC,0BAAA,CACA,wBAAA,CACA,uBAAA,CACA,qBAAA,CACA,oBAAA,CACA,gBAAA,CAGD,iGACC,eAAA,CAGD,uFACC,WAAA,CAGD,yFACC,aAAA,CACA,kBAAA,CACA,WAAA,CACA,QAAA,CACA,cAAA,CACA,gBAAA,CACA,gBAAA,CACA,gBAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,WAAA,CACA,mGACC,oBAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,0BAAA,CACA,UAAA,CACA,eAAA,CAKH,qFACC,uBAAA,CACA,YAAA,CAEA,gBAAA,CAID,0CACC,qFACC,WAAA,CAAA,CAKH,yBACC,YAAA,CACA,sBAAA,CACA,mDAAA,CACA,cAAA,CAGD,8BACC,oBAAA,CACA,WAAA,CACA,+BAAA,CACA,iBAAA,CACA,iBAAA,CACA,uCAAA,CACA,eAAA,CACA,SAAA,CACA,iBAAA,CAGD,wOAKC,kDAAA,CACA,qDAAA,CACA,6CAAA,CACA,oBAAA,CAEA,uxBAGC,yDAAA,CAED,8SACC,4DAAA,CACA,mDAAA,CAIF,iCACC,iBAAA,CACA,iBAAA,CAEA,oCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,oBAAA,CACA,mBAAA,CAGA,0CACC,iBAAA,CACA,aAAA,CACA,2BAAA,CACA,UAAA,CACA,WAAA,CACA,8CAAA,CACA,6CAAA,CACA,wCAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CAEA,+CACC,iBAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CACA,oBAAA,CAGD,gDACC,yCAAA,CAKF,kEACC,uCAAA,CAGD,+EACC,iBAAA,CACA,UAAA,CACA,QAAA,CAGD,sDACC,yCAAA,CAIF,oCACC,gBAAA,CAEA,wDACC,eAAA,CAKF,yCACC,oBAAA,CACA,iBAAA,CACA,QAAA,CAGD,mCACC,eAAA,CACA,aAAA,CAEA,sFAEC,2CAAA,CAIF,+CACC,mBAAA,CACA,mCAAA,CAEA,iDACC,mCAAA,CAKH,iCACC,0CAAA,CAGD,2BACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CACA,kBAAA,CAEA,8BACC,UAAA\",\"sourcesContent\":[\"\\n#app-dashboard {\\n\\twidth: 100%;\\n\\tmin-height: 100%;\\n\\tbackground-size: cover;\\n\\tbackground-position: center center;\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-attachment: fixed;\\n\\n\\t> h2 {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\ttext-align: center;\\n\\t\\tfont-size: 32px;\\n\\t\\tline-height: 130%;\\n\\t\\tpadding: 1rem 0;\\n\\t}\\n}\\n\\n.panels {\\n\\twidth: auto;\\n\\tmargin: auto;\\n\\tmax-width: 1800px;\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\tflex-direction: row;\\n\\talign-items: flex-start;\\n\\tflex-wrap: wrap;\\n}\\n\\n.panel, .panels > div {\\n\\twidth: 320px;\\n\\tmax-width: 100%;\\n\\tmargin: 16px;\\n\\talign-self: stretch;\\n\\tbackground-color: var(--color-main-background-blur);\\n\\t-webkit-backdrop-filter: var(--filter-background-blur);\\n\\tbackdrop-filter: var(--filter-background-blur);\\n\\tborder-radius: var(--border-radius-rounded);\\n\\n\\t#body-user.theme--highcontrast & {\\n\\t\\tborder: 2px solid var(--color-border);\\n\\t}\\n\\n\\t&.sortable-ghost {\\n\\t\\t opacity: 0.1;\\n\\t}\\n\\n\\t& > .panel--header {\\n\\t\\tdisplay: flex;\\n\\t\\tz-index: 1;\\n\\t\\ttop: 50px;\\n\\t\\tpadding: 16px;\\n\\t\\tcursor: grab;\\n\\n\\t\\t&, ::v-deep * {\\n\\t\\t\\t-webkit-touch-callout: none;\\n\\t\\t\\t-webkit-user-select: none;\\n\\t\\t\\t-khtml-user-select: none;\\n\\t\\t\\t-moz-user-select: none;\\n\\t\\t\\t-ms-user-select: none;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tcursor: grabbing;\\n\\t\\t}\\n\\n\\t\\ta {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t}\\n\\n\\t\\t> h2 {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tfont-size: 20px;\\n\\t\\t\\tline-height: 24px;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tpadding: 16px 8px;\\n\\t\\t\\theight: 56px;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\tcursor: grab;\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tbackground-size: 32px;\\n\\t\\t\\t\\twidth: 32px;\\n\\t\\t\\t\\theight: 32px;\\n\\t\\t\\t\\tmargin-right: 16px;\\n\\t\\t\\t\\tbackground-position: center;\\n\\t\\t\\t\\tfloat: left;\\n\\t\\t\\t\\tmargin-top: -6px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .panel--content {\\n\\t\\tmargin: 0 16px 16px 16px;\\n\\t\\theight: 424px;\\n\\t\\t// We specifically do not want scrollbars inside widgets\\n\\t\\toverflow: visible;\\n\\t}\\n\\n\\t// No need to extend height of widgets if only one column is shown\\n\\t@media only screen and (max-width: 709px) {\\n\\t\\t& > .panel--content {\\n\\t\\t\\theight: auto;\\n\\t\\t}\\n\\t}\\n}\\n\\n.footer {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\ttransition: bottom var(--animation-slow) ease-in-out;\\n\\tpadding: 1rem 0;\\n}\\n\\n.edit-panels {\\n\\tdisplay: inline-block;\\n\\tmargin:auto;\\n\\tbackground-position: 16px center;\\n\\tpadding: 12px 16px;\\n\\tpadding-left: 36px;\\n\\tborder-radius: var(--border-radius-pill);\\n\\tmax-width: 200px;\\n\\topacity: 1;\\n\\ttext-align: center;\\n}\\n\\n.button,\\n.button-vue,\\n.edit-panels,\\n.statuses ::v-deep .action-item .action-item__menutoggle,\\n.statuses ::v-deep .action-item.action-item--open .action-item__menutoggle {\\n\\tbackground-color: var(--color-main-background-blur);\\n\\t-webkit-backdrop-filter: var(--filter-background-blur);\\n\\tbackdrop-filter: var(--filter-background-blur);\\n\\topacity: 1 !important;\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-background-hover)!important;\\n\\t}\\n\\t&:focus-visible {\\n\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\\n\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t}\\n}\\n\\n.modal__content {\\n\\tpadding: 32px 16px;\\n\\ttext-align: center;\\n\\n\\tol {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tjustify-content: center;\\n\\t\\tlist-style-type: none;\\n\\t\\tpadding-bottom: 16px;\\n\\t}\\n\\tli {\\n\\t\\tlabel {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tpadding: 48px 16px 14px 16px;\\n\\t\\t\\tmargin: 8px;\\n\\t\\t\\twidth: 140px;\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\t\\ttext-align: left;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: 16px;\\n\\t\\t\\t\\twidth: 24px;\\n\\t\\t\\t\\theight: 24px;\\n\\t\\t\\t\\tbackground-size: 24px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Do not invert status icons\\n\\t\\t&:not(.panel-status) label span {\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t}\\n\\n\\t\\tinput[type='checkbox'].checkbox + label:before {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tright: 12px;\\n\\t\\t\\ttop: 16px;\\n\\t\\t}\\n\\n\\t\\tinput:focus + label {\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\th3 {\\n\\t\\tfont-weight: bold;\\n\\n\\t\\t&:not(:first-of-type) {\\n\\t\\t\\tmargin-top: 64px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Adjust design of 'Get more widgets' button\\n\\t.button {\\n\\t\\tdisplay: inline-block;\\n\\t\\tpadding: 10px 16px;\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\tp {\\n\\t\\tmax-width: 650px;\\n\\t\\tmargin: 0 auto;\\n\\n\\t\\ta:hover,\\n\\t\\ta:focus {\\n\\t\\t\\tborder-bottom: 2px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t.credits--end {\\n\\t\\tpadding-bottom: 32px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\ta {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n}\\n\\n.flip-list-move {\\n\\ttransition: transform var(--animation-slow);\\n}\\n\\n.statuses {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tjustify-content: center;\\n\\tflex-wrap: wrap;\\n\\tmargin-bottom: 36px;\\n\\n\\t& > li {\\n\\t\\tmargin: 8px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\nhtml, body {\n\tbackground-attachment: fixed;\n}\n#body-user #header {\n\tposition: fixed;\n}\n#content {\n\toverflow: auto;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dashboard/src/DashboardApp.vue\"],\"names\":[],\"mappings\":\";AA4sBA;CACA,4BAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,cAAA;AACA\",\"sourcesContent\":[\"<template>\\n\\t<div id=\\\"app-dashboard\\\">\\n\\t\\t<h2>{{ greeting.text }}</h2>\\n\\t\\t<ul class=\\\"statuses\\\">\\n\\t\\t\\t<li v-for=\\\"status in sortedRegisteredStatus\\\"\\n\\t\\t\\t\\t:id=\\\"'status-' + status\\\"\\n\\t\\t\\t\\t:key=\\\"status\\\">\\n\\t\\t\\t\\t<div :ref=\\\"'status-' + status\\\" />\\n\\t\\t\\t</li>\\n\\t\\t</ul>\\n\\n\\t\\t<Draggable v-model=\\\"layout\\\"\\n\\t\\t\\tclass=\\\"panels\\\"\\n\\t\\t\\tv-bind=\\\"{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3}\\\"\\n\\t\\t\\thandle=\\\".panel--header\\\"\\n\\t\\t\\t@end=\\\"saveLayout\\\">\\n\\t\\t\\t<template v-for=\\\"panelId in layout\\\">\\n\\t\\t\\t\\t<div v-if=\\\"isApiWidgetV2(panels[panelId].id)\\\"\\n\\t\\t\\t\\t\\t:key=\\\"`${panels[panelId].id}-v2`\\\"\\n\\t\\t\\t\\t\\tclass=\\\"panel\\\">\\n\\t\\t\\t\\t\\t<div class=\\\"panel--header\\\">\\n\\t\\t\\t\\t\\t\\t<h2>\\n\\t\\t\\t\\t\\t\\t\\t<span :aria-labelledby=\\\"`panel-${panels[panelId].id}--header--icon--description`\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\taria-hidden=\\\"true\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t:class=\\\"apiWidgets[panels[panelId].id].icon_class\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\trole=\\\"img\\\" />\\n\\t\\t\\t\\t\\t\\t\\t{{ apiWidgets[panels[panelId].id].title }}\\n\\t\\t\\t\\t\\t\\t</h2>\\n\\t\\t\\t\\t\\t\\t<span :id=\\\"`panel-${panels[panelId].id}--header--icon--description`\\\" class=\\\"hidden-visually\\\">\\n\\t\\t\\t\\t\\t\\t\\t{{ t('dashboard', '\\\"{title} icon\\\"', { title: apiWidgets[panels[panelId].id].title }) }}\\n\\t\\t\\t\\t\\t\\t</span>\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t<div class=\\\"panel--content\\\">\\n\\t\\t\\t\\t\\t\\t<ApiDashboardWidget :widget=\\\"apiWidgets[panels[panelId].id]\\\"\\n\\t\\t\\t\\t\\t\\t\\t:data=\\\"apiWidgetItems[panels[panelId].id]\\\"\\n\\t\\t\\t\\t\\t\\t\\t:loading=\\\"loadingItems\\\" />\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t<div v-else :key=\\\"panels[panelId].id\\\" class=\\\"panel\\\">\\n\\t\\t\\t\\t\\t<div class=\\\"panel--header\\\">\\n\\t\\t\\t\\t\\t\\t<h2>\\n\\t\\t\\t\\t\\t\\t\\t<span :aria-labelledby=\\\"`panel-${panels[panelId].id}--header--icon--description`\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\taria-hidden=\\\"true\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t:class=\\\"panels[panelId].iconClass\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\trole=\\\"img\\\" />\\n\\t\\t\\t\\t\\t\\t\\t{{ panels[panelId].title }}\\n\\t\\t\\t\\t\\t\\t</h2>\\n\\t\\t\\t\\t\\t\\t<span :id=\\\"`panel-${panels[panelId].id}--header--icon--description`\\\" class=\\\"hidden-visually\\\"> {{ t('dashboard', '\\\"{title} icon\\\"', { title: panels[panelId].title }) }} </span>\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t<div class=\\\"panel--content\\\" :class=\\\"{ loading: !panels[panelId].mounted }\\\">\\n\\t\\t\\t\\t\\t\\t<div :ref=\\\"panels[panelId].id\\\" :data-id=\\\"panels[panelId].id\\\" />\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t</template>\\n\\t\\t</Draggable>\\n\\n\\t\\t<div class=\\\"footer\\\">\\n\\t\\t\\t<NcButton @click=\\\"showModal\\\">\\n\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t<Pencil :size=\\\"20\\\" />\\n\\t\\t\\t\\t</template>\\n\\t\\t\\t\\t{{ t('dashboard', 'Customize') }}\\n\\t\\t\\t</NcButton>\\n\\t\\t</div>\\n\\n\\t\\t<NcModal v-if=\\\"modal\\\" size=\\\"large\\\" @close=\\\"closeModal\\\">\\n\\t\\t\\t<div class=\\\"modal__content\\\">\\n\\t\\t\\t\\t<h3>{{ t('dashboard', 'Edit widgets') }}</h3>\\n\\t\\t\\t\\t<ol class=\\\"panels\\\">\\n\\t\\t\\t\\t\\t<li v-for=\\\"status in sortedAllStatuses\\\" :key=\\\"status\\\" :class=\\\"'panel-' + status\\\">\\n\\t\\t\\t\\t\\t\\t<input :id=\\\"'status-checkbox-' + status\\\"\\n\\t\\t\\t\\t\\t\\t\\ttype=\\\"checkbox\\\"\\n\\t\\t\\t\\t\\t\\t\\tclass=\\\"checkbox\\\"\\n\\t\\t\\t\\t\\t\\t\\t:checked=\\\"isStatusActive(status)\\\"\\n\\t\\t\\t\\t\\t\\t\\t@input=\\\"updateStatusCheckbox(status, $event.target.checked)\\\">\\n\\t\\t\\t\\t\\t\\t<label :for=\\\"'status-checkbox-' + status\\\">\\n\\t\\t\\t\\t\\t\\t\\t<span :class=\\\"statusInfo[status].icon\\\" aria-hidden=\\\"true\\\" />\\n\\t\\t\\t\\t\\t\\t\\t{{ statusInfo[status].text }}\\n\\t\\t\\t\\t\\t\\t</label>\\n\\t\\t\\t\\t\\t</li>\\n\\t\\t\\t\\t</ol>\\n\\t\\t\\t\\t<Draggable v-model=\\\"layout\\\"\\n\\t\\t\\t\\t\\tclass=\\\"panels\\\"\\n\\t\\t\\t\\t\\ttag=\\\"ol\\\"\\n\\t\\t\\t\\t\\tv-bind=\\\"{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3}\\\"\\n\\t\\t\\t\\t\\thandle=\\\".draggable\\\"\\n\\t\\t\\t\\t\\t@end=\\\"saveLayout\\\">\\n\\t\\t\\t\\t\\t<li v-for=\\\"panel in sortedPanels\\\" :key=\\\"panel.id\\\" :class=\\\"'panel-' + panel.id\\\">\\n\\t\\t\\t\\t\\t\\t<input :id=\\\"'panel-checkbox-' + panel.id\\\"\\n\\t\\t\\t\\t\\t\\t\\ttype=\\\"checkbox\\\"\\n\\t\\t\\t\\t\\t\\t\\tclass=\\\"checkbox\\\"\\n\\t\\t\\t\\t\\t\\t\\t:checked=\\\"isActive(panel)\\\"\\n\\t\\t\\t\\t\\t\\t\\t@input=\\\"updateCheckbox(panel, $event.target.checked)\\\">\\n\\t\\t\\t\\t\\t\\t<label :for=\\\"'panel-checkbox-' + panel.id\\\" :class=\\\"{ draggable: isActive(panel) }\\\">\\n\\t\\t\\t\\t\\t\\t\\t<span :class=\\\"panel.iconClass\\\" aria-hidden=\\\"true\\\" />\\n\\t\\t\\t\\t\\t\\t\\t{{ panel.title }}\\n\\t\\t\\t\\t\\t\\t</label>\\n\\t\\t\\t\\t\\t</li>\\n\\t\\t\\t\\t</Draggable>\\n\\n\\t\\t\\t\\t<a v-if=\\\"isAdmin\\\" :href=\\\"appStoreUrl\\\" class=\\\"button\\\">{{ t('dashboard', 'Get more widgets from the App Store') }}</a>\\n\\n\\t\\t\\t\\t<div v-if=\\\"statuses.weather && isStatusActive('weather')\\\">\\n\\t\\t\\t\\t\\t<h3>{{ t('dashboard', 'Weather service') }}</h3>\\n\\t\\t\\t\\t\\t<p>\\n\\t\\t\\t\\t\\t\\t{{ t('dashboard', 'For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.') }}\\n\\t\\t\\t\\t\\t</p>\\n\\t\\t\\t\\t\\t<p class=\\\"credits--end\\\">\\n\\t\\t\\t\\t\\t\\t<a href=\\\"https://api.met.no/doc/TermsOfService\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">{{ t('dashboard', 'Weather data from Met.no') }}</a>,\\n\\t\\t\\t\\t\\t\\t<a href=\\\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">{{ t('dashboard', 'geocoding with Nominatim') }}</a>,\\n\\t\\t\\t\\t\\t\\t<a href=\\\"https://www.opentopodata.org/#public-api\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">{{ t('dashboard', 'elevation data from OpenTopoData') }}</a>.\\n\\t\\t\\t\\t\\t</p>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t</div>\\n\\t\\t</NcModal>\\n\\t</div>\\n</template>\\n\\n<script>\\nimport { generateUrl, generateOcsUrl } from '@nextcloud/router'\\nimport { getCurrentUser } from '@nextcloud/auth'\\nimport { loadState } from '@nextcloud/initial-state'\\nimport axios from '@nextcloud/axios'\\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\\nimport Draggable from 'vuedraggable'\\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\\nimport Pencil from 'vue-material-design-icons/Pencil.vue'\\nimport Vue from 'vue'\\n\\nimport isMobile from './mixins/isMobile.js'\\nimport ApiDashboardWidget from './components/ApiDashboardWidget.vue'\\n\\nconst panels = loadState('dashboard', 'panels')\\nconst firstRun = loadState('dashboard', 'firstRun')\\n\\nconst statusInfo = {\\n\\tweather: {\\n\\t\\ttext: t('dashboard', 'Weather'),\\n\\t\\ticon: 'icon-weather-status',\\n\\t},\\n\\tstatus: {\\n\\t\\ttext: t('dashboard', 'Status'),\\n\\t\\ticon: 'icon-user-status-online',\\n\\t},\\n}\\n\\nexport default {\\n\\tname: 'DashboardApp',\\n\\tcomponents: {\\n\\t\\tApiDashboardWidget,\\n\\t\\tNcButton,\\n\\t\\tDraggable,\\n\\t\\tNcModal,\\n\\t\\tPencil,\\n\\t},\\n\\tmixins: [\\n\\t\\tisMobile,\\n\\t],\\n\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tisAdmin: getCurrentUser().isAdmin,\\n\\t\\t\\ttimer: new Date(),\\n\\t\\t\\tregisteredStatus: [],\\n\\t\\t\\tcallbacks: {},\\n\\t\\t\\tcallbacksStatus: {},\\n\\t\\t\\tallCallbacksStatus: {},\\n\\t\\t\\tstatusInfo,\\n\\t\\t\\tenabledStatuses: loadState('dashboard', 'statuses'),\\n\\t\\t\\tpanels,\\n\\t\\t\\tfirstRun,\\n\\t\\t\\tdisplayName: getCurrentUser()?.displayName,\\n\\t\\t\\tuid: getCurrentUser()?.uid,\\n\\t\\t\\tlayout: loadState('dashboard', 'layout').filter((panelId) => panels[panelId]),\\n\\t\\t\\tmodal: false,\\n\\t\\t\\tappStoreUrl: generateUrl('/settings/apps/dashboard'),\\n\\t\\t\\tstatuses: {},\\n\\t\\t\\tapiWidgets: [],\\n\\t\\t\\tapiWidgetItems: {},\\n\\t\\t\\tloadingItems: true,\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\tgreeting() {\\n\\t\\t\\tconst time = this.timer.getHours()\\n\\n\\t\\t\\t// Determine part of the day\\n\\t\\t\\tlet partOfDay\\n\\t\\t\\tif (time >= 22 || time < 5) {\\n\\t\\t\\t\\tpartOfDay = 'night'\\n\\t\\t\\t} else if (time >= 18) {\\n\\t\\t\\t\\tpartOfDay = 'evening'\\n\\t\\t\\t} else if (time >= 12) {\\n\\t\\t\\t\\tpartOfDay = 'afternoon'\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tpartOfDay = 'morning'\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Define the greetings\\n\\t\\t\\tconst good = {\\n\\t\\t\\t\\tmorning: {\\n\\t\\t\\t\\t\\tgeneric: t('dashboard', 'Good morning'),\\n\\t\\t\\t\\t\\twithName: t('dashboard', 'Good morning, {name}', { name: this.displayName }, undefined, { escape: false }),\\n\\t\\t\\t\\t},\\n\\t\\t\\t\\tafternoon: {\\n\\t\\t\\t\\t\\tgeneric: t('dashboard', 'Good afternoon'),\\n\\t\\t\\t\\t\\twithName: t('dashboard', 'Good afternoon, {name}', { name: this.displayName }, undefined, { escape: false }),\\n\\t\\t\\t\\t},\\n\\t\\t\\t\\tevening: {\\n\\t\\t\\t\\t\\tgeneric: t('dashboard', 'Good evening'),\\n\\t\\t\\t\\t\\twithName: t('dashboard', 'Good evening, {name}', { name: this.displayName }, undefined, { escape: false }),\\n\\t\\t\\t\\t},\\n\\t\\t\\t\\tnight: {\\n\\t\\t\\t\\t\\t// Don't use \\\"Good night\\\" as it's not a greeting\\n\\t\\t\\t\\t\\tgeneric: t('dashboard', 'Hello'),\\n\\t\\t\\t\\t\\twithName: t('dashboard', 'Hello, {name}', { name: this.displayName }, undefined, { escape: false }),\\n\\t\\t\\t\\t},\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Figure out which greeting to show\\n\\t\\t\\tconst shouldShowName = this.displayName && this.uid !== this.displayName\\n\\t\\t\\treturn { text: shouldShowName ? good[partOfDay].withName : good[partOfDay].generic }\\n\\t\\t},\\n\\n\\t\\tisActive() {\\n\\t\\t\\treturn (panel) => this.layout.indexOf(panel.id) > -1\\n\\t\\t},\\n\\t\\tisStatusActive() {\\n\\t\\t\\treturn (status) => !(status in this.enabledStatuses) || this.enabledStatuses[status]\\n\\t\\t},\\n\\n\\t\\tsortedAllStatuses() {\\n\\t\\t\\treturn Object.keys(this.allCallbacksStatus).slice().sort(this.sortStatuses)\\n\\t\\t},\\n\\t\\tsortedPanels() {\\n\\t\\t\\treturn Object.values(this.panels).sort((a, b) => {\\n\\t\\t\\t\\tconst indexA = this.layout.indexOf(a.id)\\n\\t\\t\\t\\tconst indexB = this.layout.indexOf(b.id)\\n\\t\\t\\t\\tif (indexA === -1 || indexB === -1) {\\n\\t\\t\\t\\t\\treturn indexB - indexA || a.id - b.id\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\treturn indexA - indexB || a.id - b.id\\n\\t\\t\\t})\\n\\t\\t},\\n\\t\\tsortedRegisteredStatus() {\\n\\t\\t\\treturn this.registeredStatus.slice().sort(this.sortStatuses)\\n\\t\\t},\\n\\t},\\n\\n\\twatch: {\\n\\t\\tcallbacks() {\\n\\t\\t\\tthis.rerenderPanels()\\n\\t\\t},\\n\\t\\tcallbacksStatus() {\\n\\t\\t\\tfor (const app in this.callbacksStatus) {\\n\\t\\t\\t\\tconst element = this.$refs['status-' + app]\\n\\t\\t\\t\\tif (this.statuses[app] && this.statuses[app].mounted) {\\n\\t\\t\\t\\t\\tcontinue\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tif (element) {\\n\\t\\t\\t\\t\\tthis.callbacksStatus[app](element[0])\\n\\t\\t\\t\\t\\tVue.set(this.statuses, app, { mounted: true })\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\tconsole.error('Failed to register panel in the frontend as no backend data was provided for ' + app)\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n\\n\\tasync created() {\\n\\t\\tawait this.fetchApiWidgets()\\n\\n\\t\\tconst apiWidgetIdsToFetch = Object\\n\\t\\t\\t.values(this.apiWidgets)\\n\\t\\t\\t.filter(widget => this.isApiWidgetV2(widget.id))\\n\\t\\t\\t.map(widget => widget.id)\\n\\t\\tawait Promise.all(apiWidgetIdsToFetch.map(id => this.fetchApiWidgetItems([id], true)))\\n\\n\\t\\tfor (const widget of Object.values(this.apiWidgets)) {\\n\\t\\t\\tif (widget.reload_interval > 0) {\\n\\t\\t\\t\\tsetInterval(async () => {\\n\\t\\t\\t\\t\\tawait this.fetchApiWidgetItems([widget.id], true)\\n\\t\\t\\t\\t}, widget.reload_interval * 1000)\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\tmounted() {\\n\\t\\tthis.updateSkipLink()\\n\\t\\twindow.addEventListener('scroll', this.handleScroll)\\n\\n\\t\\tsetInterval(() => {\\n\\t\\t\\tthis.timer = new Date()\\n\\t\\t}, 30000)\\n\\n\\t\\tif (this.firstRun) {\\n\\t\\t\\twindow.addEventListener('scroll', this.disableFirstrunHint)\\n\\t\\t}\\n\\t},\\n\\tdestroyed() {\\n\\t\\twindow.removeEventListener('scroll', this.handleScroll)\\n\\t},\\n\\n\\tmethods: {\\n\\t\\t/**\\n\\t\\t * Method to register panels that will be called by the integrating apps\\n\\t\\t *\\n\\t\\t * @param {string} app The unique app id for the widget\\n\\t\\t * @param {Function} callback The callback function to register a panel which gets the DOM element passed as parameter\\n\\t\\t */\\n\\t\\tregister(app, callback) {\\n\\t\\t\\tVue.set(this.callbacks, app, callback)\\n\\t\\t},\\n\\t\\tregisterStatus(app, callback) {\\n\\t\\t\\t// always save callbacks in case user enables the status later\\n\\t\\t\\tVue.set(this.allCallbacksStatus, app, callback)\\n\\t\\t\\t// register only if status is enabled or missing from config\\n\\t\\t\\tif (this.isStatusActive(app)) {\\n\\t\\t\\t\\tthis.registeredStatus.push(app)\\n\\t\\t\\t\\tthis.$nextTick(() => {\\n\\t\\t\\t\\t\\tVue.set(this.callbacksStatus, app, callback)\\n\\t\\t\\t\\t})\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\trerenderPanels() {\\n\\t\\t\\tfor (const app in this.callbacks) {\\n\\t\\t\\t\\t// TODO: Properly rerender v2 widgets\\n\\t\\t\\t\\tif (this.isApiWidgetV2(this.panels[app].id)) {\\n\\t\\t\\t\\t\\tcontinue\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tconst element = this.$refs[app]\\n\\t\\t\\t\\tif (this.layout.indexOf(app) === -1) {\\n\\t\\t\\t\\t\\tcontinue\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tif (this.panels[app] && this.panels[app].mounted) {\\n\\t\\t\\t\\t\\tcontinue\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tif (element) {\\n\\t\\t\\t\\t\\tthis.callbacks[app](element[0], {\\n\\t\\t\\t\\t\\t\\twidget: this.panels[app],\\n\\t\\t\\t\\t\\t})\\n\\t\\t\\t\\t\\tVue.set(this.panels[app], 'mounted', true)\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\tconsole.error('Failed to register panel in the frontend as no backend data was provided for ' + app)\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tsaveLayout() {\\n\\t\\t\\taxios.post(generateUrl('/apps/dashboard/layout'), {\\n\\t\\t\\t\\tlayout: this.layout.join(','),\\n\\t\\t\\t})\\n\\t\\t},\\n\\t\\tsaveStatuses() {\\n\\t\\t\\taxios.post(generateUrl('/apps/dashboard/statuses'), {\\n\\t\\t\\t\\tstatuses: JSON.stringify(this.enabledStatuses),\\n\\t\\t\\t})\\n\\t\\t},\\n\\t\\tshowModal() {\\n\\t\\t\\tthis.modal = true\\n\\t\\t\\tthis.firstRun = false\\n\\t\\t},\\n\\t\\tcloseModal() {\\n\\t\\t\\tthis.modal = false\\n\\t\\t},\\n\\t\\tupdateCheckbox(panel, currentValue) {\\n\\t\\t\\tconst index = this.layout.indexOf(panel.id)\\n\\t\\t\\tif (!currentValue && index > -1) {\\n\\t\\t\\t\\tthis.layout.splice(index, 1)\\n\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tthis.layout.push(panel.id)\\n\\t\\t\\t}\\n\\t\\t\\tVue.set(this.panels[panel.id], 'mounted', false)\\n\\t\\t\\tthis.saveLayout()\\n\\t\\t\\tthis.$nextTick(() => this.rerenderPanels())\\n\\t\\t},\\n\\t\\tdisableFirstrunHint() {\\n\\t\\t\\twindow.removeEventListener('scroll', this.disableFirstrunHint)\\n\\t\\t\\tsetTimeout(() => {\\n\\t\\t\\t\\tthis.firstRun = false\\n\\t\\t\\t}, 1000)\\n\\t\\t},\\n\\t\\tupdateSkipLink() {\\n\\t\\t\\t// Make sure \\\"Skip to main content\\\" link points to the app content\\n\\t\\t\\tdocument.getElementsByClassName('skip-navigation')[0].setAttribute('href', '#app-dashboard')\\n\\t\\t},\\n\\t\\tupdateStatusCheckbox(app, checked) {\\n\\t\\t\\tif (checked) {\\n\\t\\t\\t\\tthis.enableStatus(app)\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tthis.disableStatus(app)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tenableStatus(app) {\\n\\t\\t\\tthis.enabledStatuses[app] = true\\n\\t\\t\\tthis.registerStatus(app, this.allCallbacksStatus[app])\\n\\t\\t\\tthis.saveStatuses()\\n\\t\\t},\\n\\t\\tdisableStatus(app) {\\n\\t\\t\\tthis.enabledStatuses[app] = false\\n\\t\\t\\tconst i = this.registeredStatus.findIndex((s) => s === app)\\n\\t\\t\\tif (i !== -1) {\\n\\t\\t\\t\\tthis.registeredStatus.splice(i, 1)\\n\\t\\t\\t\\tVue.set(this.statuses, app, { mounted: false })\\n\\t\\t\\t\\tthis.$nextTick(() => {\\n\\t\\t\\t\\t\\tVue.delete(this.callbacksStatus, app)\\n\\t\\t\\t\\t})\\n\\t\\t\\t}\\n\\t\\t\\tthis.saveStatuses()\\n\\t\\t},\\n\\t\\tsortStatuses(a, b) {\\n\\t\\t\\tconst al = a.toLowerCase()\\n\\t\\t\\tconst bl = b.toLowerCase()\\n\\t\\t\\treturn al > bl\\n\\t\\t\\t\\t? 1\\n\\t\\t\\t\\t: al < bl\\n\\t\\t\\t\\t\\t? -1\\n\\t\\t\\t\\t\\t: 0\\n\\t\\t},\\n\\t\\thandleScroll() {\\n\\t\\t\\tif (window.scrollY > 70) {\\n\\t\\t\\t\\tdocument.body.classList.add('dashboard--scrolled')\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tdocument.body.classList.remove('dashboard--scrolled')\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tasync fetchApiWidgets() {\\n\\t\\t\\tconst response = await axios.get(generateOcsUrl('/apps/dashboard/api/v1/widgets'))\\n\\t\\t\\tthis.apiWidgets = response.data.ocs.data\\n\\t\\t},\\n\\t\\tasync fetchApiWidgetItems(widgetIds, merge = false) {\\n\\t\\t\\ttry {\\n\\t\\t\\t\\tconst url = generateOcsUrl('/apps/dashboard/api/v2/widget-items')\\n\\t\\t\\t\\tconst params = new URLSearchParams(widgetIds.map(id => ['widgets[]', id]))\\n\\t\\t\\t\\tconst response = await axios.get(`${url}?${params.toString()}`)\\n\\t\\t\\t\\tconst widgetItems = response.data.ocs.data\\n\\t\\t\\t\\tif (merge) {\\n\\t\\t\\t\\t\\tthis.apiWidgetItems = Object.assign({}, this.apiWidgetItems, widgetItems)\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\tthis.apiWidgetItems = widgetItems\\n\\t\\t\\t\\t}\\n\\t\\t\\t} finally {\\n\\t\\t\\t\\tthis.loadingItems = false\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tisApiWidgetV2(id) {\\n\\t\\t\\tfor (const widget of Object.values(this.apiWidgets)) {\\n\\t\\t\\t\\tif (widget.id === id && widget.item_api_versions.includes(2)) {\\n\\t\\t\\t\\t\\treturn true\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\treturn false\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n\\n<style lang=\\\"scss\\\" scoped>\\n#app-dashboard {\\n\\twidth: 100%;\\n\\tmin-height: 100%;\\n\\tbackground-size: cover;\\n\\tbackground-position: center center;\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-attachment: fixed;\\n\\n\\t> h2 {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\ttext-align: center;\\n\\t\\tfont-size: 32px;\\n\\t\\tline-height: 130%;\\n\\t\\tpadding: 1rem 0;\\n\\t}\\n}\\n\\n.panels {\\n\\twidth: auto;\\n\\tmargin: auto;\\n\\tmax-width: 1800px;\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\tflex-direction: row;\\n\\talign-items: flex-start;\\n\\tflex-wrap: wrap;\\n}\\n\\n.panel, .panels > div {\\n\\twidth: 320px;\\n\\tmax-width: 100%;\\n\\tmargin: 16px;\\n\\talign-self: stretch;\\n\\tbackground-color: var(--color-main-background-blur);\\n\\t-webkit-backdrop-filter: var(--filter-background-blur);\\n\\tbackdrop-filter: var(--filter-background-blur);\\n\\tborder-radius: var(--border-radius-rounded);\\n\\n\\t#body-user.theme--highcontrast & {\\n\\t\\tborder: 2px solid var(--color-border);\\n\\t}\\n\\n\\t&.sortable-ghost {\\n\\t\\t opacity: 0.1;\\n\\t}\\n\\n\\t& > .panel--header {\\n\\t\\tdisplay: flex;\\n\\t\\tz-index: 1;\\n\\t\\ttop: 50px;\\n\\t\\tpadding: 16px;\\n\\t\\tcursor: grab;\\n\\n\\t\\t&, ::v-deep * {\\n\\t\\t\\t-webkit-touch-callout: none;\\n\\t\\t\\t-webkit-user-select: none;\\n\\t\\t\\t-khtml-user-select: none;\\n\\t\\t\\t-moz-user-select: none;\\n\\t\\t\\t-ms-user-select: none;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tcursor: grabbing;\\n\\t\\t}\\n\\n\\t\\ta {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t}\\n\\n\\t\\t> h2 {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tfont-size: 20px;\\n\\t\\t\\tline-height: 24px;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tpadding: 16px 8px;\\n\\t\\t\\theight: 56px;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\tcursor: grab;\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tbackground-size: 32px;\\n\\t\\t\\t\\twidth: 32px;\\n\\t\\t\\t\\theight: 32px;\\n\\t\\t\\t\\tmargin-right: 16px;\\n\\t\\t\\t\\tbackground-position: center;\\n\\t\\t\\t\\tfloat: left;\\n\\t\\t\\t\\tmargin-top: -6px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .panel--content {\\n\\t\\tmargin: 0 16px 16px 16px;\\n\\t\\theight: 424px;\\n\\t\\t// We specifically do not want scrollbars inside widgets\\n\\t\\toverflow: visible;\\n\\t}\\n\\n\\t// No need to extend height of widgets if only one column is shown\\n\\t@media only screen and (max-width: 709px) {\\n\\t\\t& > .panel--content {\\n\\t\\t\\theight: auto;\\n\\t\\t}\\n\\t}\\n}\\n\\n.footer {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\ttransition: bottom var(--animation-slow) ease-in-out;\\n\\tpadding: 1rem 0;\\n}\\n\\n.edit-panels {\\n\\tdisplay: inline-block;\\n\\tmargin:auto;\\n\\tbackground-position: 16px center;\\n\\tpadding: 12px 16px;\\n\\tpadding-left: 36px;\\n\\tborder-radius: var(--border-radius-pill);\\n\\tmax-width: 200px;\\n\\topacity: 1;\\n\\ttext-align: center;\\n}\\n\\n.button,\\n.button-vue,\\n.edit-panels,\\n.statuses ::v-deep .action-item .action-item__menutoggle,\\n.statuses ::v-deep .action-item.action-item--open .action-item__menutoggle {\\n\\tbackground-color: var(--color-main-background-blur);\\n\\t-webkit-backdrop-filter: var(--filter-background-blur);\\n\\tbackdrop-filter: var(--filter-background-blur);\\n\\topacity: 1 !important;\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-background-hover)!important;\\n\\t}\\n\\t&:focus-visible {\\n\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\\n\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t}\\n}\\n\\n.modal__content {\\n\\tpadding: 32px 16px;\\n\\ttext-align: center;\\n\\n\\tol {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tjustify-content: center;\\n\\t\\tlist-style-type: none;\\n\\t\\tpadding-bottom: 16px;\\n\\t}\\n\\tli {\\n\\t\\tlabel {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tpadding: 48px 16px 14px 16px;\\n\\t\\t\\tmargin: 8px;\\n\\t\\t\\twidth: 140px;\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\t\\ttext-align: left;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: 16px;\\n\\t\\t\\t\\twidth: 24px;\\n\\t\\t\\t\\theight: 24px;\\n\\t\\t\\t\\tbackground-size: 24px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Do not invert status icons\\n\\t\\t&:not(.panel-status) label span {\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t}\\n\\n\\t\\tinput[type='checkbox'].checkbox + label:before {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tright: 12px;\\n\\t\\t\\ttop: 16px;\\n\\t\\t}\\n\\n\\t\\tinput:focus + label {\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\th3 {\\n\\t\\tfont-weight: bold;\\n\\n\\t\\t&:not(:first-of-type) {\\n\\t\\t\\tmargin-top: 64px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Adjust design of 'Get more widgets' button\\n\\t.button {\\n\\t\\tdisplay: inline-block;\\n\\t\\tpadding: 10px 16px;\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\tp {\\n\\t\\tmax-width: 650px;\\n\\t\\tmargin: 0 auto;\\n\\n\\t\\ta:hover,\\n\\t\\ta:focus {\\n\\t\\t\\tborder-bottom: 2px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t.credits--end {\\n\\t\\tpadding-bottom: 32px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\ta {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n}\\n\\n.flip-list-move {\\n\\ttransition: transform var(--animation-slow);\\n}\\n\\n.statuses {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tjustify-content: center;\\n\\tflex-wrap: wrap;\\n\\tmargin-bottom: 36px;\\n\\n\\t& > li {\\n\\t\\tmargin: 8px;\\n\\t}\\n}\\n</style>\\n<style>\\nhtml, body {\\n\\tbackground-attachment: fixed;\\n}\\n\\n#body-user #header {\\n\\tposition: fixed;\\n}\\n\\n#content {\\n\\toverflow: auto;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**!\n * Sortable 1.10.2\n * @author\tRubaXa <trash@rubaxa.org>\n * @author\towenm <owen23355@gmail.com>\n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4773;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4773: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], () => (__webpack_require__(1412)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","data","isMobile","this","_isMobile","beforeMount","window","addEventListener","_onResize","beforeDestroy","removeEventListener","methods","document","documentElement","clientWidth","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","r","name","props","required","default","type","String","s","n","t","_self","_c","_setupProxy","staticClass","_v","_s","_e","_t","_","exports","l","mixins","id","validator","trim","checked","Boolean","value","Number","disabled","emits","computed","isFocusable","toggleInput","$refs","label","click","onChange","$emit","radio","e","i","class","ref","focusable","attrs","domProps","on","keydown","a","indexOf","_k","keyCode","key","ctrlKey","shiftKey","altKey","metaKey","preventDefault","apply","arguments","change","for","text","d","components","ArrowRight","computedId","onInput","target","onSubmit","stopPropagation","onClick","isIconUrl","icon","style","backgroundImage","submit","_b","input","$attrs","directives","rawName","expression","size","selection","showDetails","showdetails","color","test","formattedColor","startsWith","o","backgroundColor","NcInputConfirmCancel","NcLoadingIcon","loading","editLabel","editPlaceholder","newItemValue","newItemActive","handleNewItem","$nextTick","newItemInput","focusInput","cancelNewItem","handleNewItemDone","title","placeholder","cancel","confirm","model","callback","fillColor","role","fill","width","height","viewBox","ClickOutside","Cog","open","clickOutsideConfig","closeMenu","clickOutsideOptions","ariaLabel","toggleMenu","C","NcAvatar","NcActions","NcActionButton","targetUrl","avatarUrl","avatarUsername","avatarIsNoUser","overlayIconUrl","mainText","subText","itemMenu","Object","forceMenu","hovered","item","gotMenu","keys","length","$slots","actions","gotOverlayIcon","onLinkClick","closest","mouseover","mouseleave","tag","href","url","user","alt","src","_l","y","NcDashboardWidgetItem","NcEmptyContent","Check","items","Array","showMoreUrl","showMoreLabel","showItemsAndEmptyContent","emptyContentMessage","halfEmptyContentMessage","handlers","displayedItems","maxItemNumber","slice","showHalfEmptyContentArea","halfEmptyContentString","showMore","description","scopedSlots","_u","fn","proxy","_g","_m","tabindex","h","mounted","getElementById","classList","add","destroyed","remove","NcButton","labelTranslated","resourceName","NcResource","providerId","itemId","resourceType","limit","fileInfo","header","primary","appEnabled","OC","appswebroots","related_resources","error","resources","isVisible","subline","hasResourceInfo","isFiles","watch","fetchRelatedResources","created","get","ocs","console","_vue_richtext_widgets","_registerWidget","onDestroy","A","reference","compact","hasCustomWidget","T","richObjectType","noAccess","accessible","descriptionStyle","display","lineClamp","webkitLineClamp","compactLink","openGraphObject","link","substring","renderWidget","observer","ResizeObserver","contentRect","observe","$el","disconnect","D","customWidget","innerHTML","richObject","z","F","rel","thumb","U","G","_vue_richtext_custom_picker_elements","_registerCustomPickerElement","X","provider","isRegistered","renderResult","renderElement","K","domElement","J","Promise","resolve","then","object","_isVue","$on","onCancel","element","detail","Y","ee","re","b","icon_url","R","_vue_richtext_reference_providers","filter","search_providers_ids","debug","ne","replace","RegExp","_vue_richtext_reference_provider_timestamps","sort","order","ie","match","u","push","clearTimeout","setTimeout","URL","ce","le","ae","de","NcSelect","NcHighlight","LinkVariantIcon","selectedProvider","query","multiselectPlaceholder","providerIconAlt","isLink","focus","querySelector","onProviderSelected","onSearch","he","filterable","search","me","fe","NcReferenceWidget","NcTextField","inputValue","abortController","inputPlaceholder","isLinkValid","getElementsByTagName","onClear","abort","updateReference","AbortController","encodeURIComponent","signal","references","catch","ve","nativeOn","keyup","ge","ke","Ce","entry","Pe","rounded","thumbnailUrl","we","Se","Re","DotsHorizontalIcon","NcSearchResult","showEmptyContent","searchPlaceholder","searchQuery","selectedResult","resultsBySearchProvider","searching","searchingMoreOf","noOptionsText","mySearchPlaceholder","searchProviderIds","rawLinkEntry","formattedSearchResults","resourceUrl","isRawLink","forEach","entries","isCustomGroupTitle","map","isPaginated","isMore","isLoading","resetResults","cancelSearchRequests","onSearchInput","updateSearch","onSelectResultSelected","searchMoreOf","searchProviders","searchOneProvider","cursor","allSettled","find","status","reason","code","term","xe","autoscroll","$e","Ne","providerList","standardLinkInput","searchInput","customElement","Ee","NcCustomPickerElement","NcProviderList","NcRawLinkInput","NcSearch","initialProvider","focusOnCreate","MODES","mode","pickerWrapperStyle","onEscapePressed","deselectProvider","cancelProviderSelection","cancelCustomElement","cancelSearch","cancelRawLinkInput","submitLink","Math","floor","Date","now","timestamp","put","oe","Ie","Oe","Ve","NcReferencePicker","NcModal","ArrowLeftIcon","CloseIcon","isInsideViewer","show","backButtonTitle","closeButtonTitle","closeButtonLabel","isProviderSelected","showBackButton","modalSize","includes","H","showModalName","modalName","modal_content","onProviderSelect","onBackClicked","referencePicker","We","close","qe","je","prototype","predicate","TypeError","list","thisArg","call","CustomEvent","CustomEvent$1","event","params","bubbles","cancelable","undefined","evt","createEvent","initCustomEvent","Event","TributeEvents","constructor","tribute","events","bind","boundKeydown","boundKeyup","boundInput","unbind","instance","shouldDeactivate","isActive","hideMenu","commandEvent","callbacks","toLowerCase","inputEvent","menu","contains","li","nodeName","parentNode","Error","selectItemAtIndex","getAttribute","current","externalTrigger","updateSelection","allowSpaces","hasTrailingSpace","autocompleteMode","triggerChar","getKeyCode","isNaN","trigger","triggers","charCodeAt","mentionText","collection","menuShowMinLength","showMenuFor","eventKeyPressed","el","info","range","getTriggerInfo","mentionTriggerChar","selectedPath","mentionSelectedPath","selectedOffset","mentionSelectedOffset","collectionItem","enter","filteredItems","menuSelected","escape","tab","space","spaceSelectsMatch","up","count","selected","setActiveLi","scrollTop","scrollHeight","down","delete","index","lis","querySelectorAll","parseInt","selectClass","liClientRect","getBoundingClientRect","menuClientRect","bottom","scrollDistance","top","getFullHeight","elem","includeMargin","currentStyle","getComputedStyle","parseFloat","marginTop","marginBottom","TributeMenuEvents","menuEvents","menuClickEvent","menuContainerScrollEvent","debounce","windowResizeEvent","positionMenuAtCaret","getDocument","menuContainer","func","wait","immediate","timeout","context","args","callNow","TributeRange","iframe","contentWindow","scrollTo","coordinates","positionMenu","cssText","isContentEditable","getContentEditableCaretPosition","mentionPosition","getTextAreaOrInputUnderlinePosition","left","right","scrollIntoView","menuDimensions","offsetWidth","offsetHeight","menuIsOffScreen","isMenuOffScreen","menuIsOffScreenHorizontally","innerWidth","menuIsOffScreenVertically","innerHeight","menuContainerIsBody","body","selectElement","targetElement","path","offset","childNodes","nextSibling","previousSibling","sel","getWindowSelection","createRange","setStart","setEnd","collapse","removeAllRanges","addRange","replaceTriggerText","requireLeadingSpace","originalEvent","replaceEvent","replaceTextSuffix","endPos","pasteHtml","myField","textSuffix","startPos","selectionStart","selectionEnd","dispatchEvent","html","anchorNode","deleteContents","createElement","node","lastNode","frag","createDocumentFragment","firstChild","appendChild","insertNode","cloneRange","setStartAfter","getSelection","getNodePositionInParent","getContentEditableSelectedPath","ctx","contentEditable","reverse","getRangeAt","startOffset","getTextPrecedingCurrentSelection","selectedElem","workingNodeContent","textContent","selectStartOffset","textComponent","getLastWordInText","wordsArray","split","menuAlreadyActive","isAutocomplete","selectionInfo","effectiveRange","lastWordOfEffectiveRange","mentionSelectedElement","mostRecentTriggerCharPos","config","c","idx","lastIndexWithLeadingSpace","lastIndexOf","currentTriggerSnippet","firstSnippetChar","leadingSpace","regex","str","reversedStr","join","cidx","len","firstChar","triggerIdx","windowWidth","windowHeight","doc","windowLeft","pageXOffset","scrollLeft","clientLeft","windowTop","pageYOffset","clientTop","menuTop","menuRight","menuBottom","menuLeft","ceil","getMenuDimensions","dimensions","position","flipped","isFirefox","mozInnerScreenX","div","whiteSpace","wordWrap","visibility","prop","overflowY","overflow","span","rect","offsetTop","borderTopWidth","fontSize","offsetLeft","borderLeftWidth","parentHeight","scrollStillAvailable","removeChild","selectedNodePosition","clientRect","elemTop","elemBottom","maxY","targetY","TributeSearch","simpleFilter","pattern","array","string","opts","pre","post","compareString","caseSensitive","skip","rendered","score","patternCache","traverse","render","cache","stringIndex","patternIndex","calculateScore","best","temp","pop","indices","arr","reduce","prev","extract","original","Tribute","values","containerClass","itemClass","selectTemplate","menuItemTemplate","lookup","fillAttr","noMatchTemplate","searchOpts","menuItemLimit","defaultSelectTemplate","defaultMenuItemTemplate","warn","_isActive","val","noMatchEvent","matchItem","inputTypes","attach","jQuery","NodeList","HTMLCollection","_attach","hasAttribute","ensureEditable","setAttribute","createMenu","wrapper","ul","className","currentMentionTextSnapshot","tributeMenu","processValues","fragment","_findLiTarget","movementY","showMenuForCollection","collectionIndex","activeElement","placeCaretAtEnd","insertTextAtCursor","insertAtCaret","selectNodeContents","createTextRange","textRange","moveToElementText","select","textNode","createTextNode","textarea","scrollPos","caretPos","front","back","content","replaceText","_append","newValues","concat","append","appendCurrent","detach","_detach","removeAttribute","iconUrl","source","getAvatarUrl","haveStatus","tooltip","autoComplete","Function","Element","multiline","contenteditable","maxlength","emojiAutocomplete","linkAutocomplete","textSmiles","autocompleteOptions","renderComponentHtml","genSelectTemplate","debouncedAutoComplete","emojiOptions","native","short_name","unshift","linkOptions","getLink","localValue","isComposing","isEmptyValue","isFF","navigator","userAgent","isOverMaxlength","countAnsiEscapeCodes","tooltipString","shown","canEdit","listeners","$listeners","paste","parseContent","updateContent","autocompleteTribute","emojiTribute","linkTribute","async","g","se","extend","propsData","$mount","$destroy","$","result","insertText","replaceWith","setCursorAfter","updateValue","setEndAfter","onPaste","clipboardData","files","getData","rangeCount","deleteFromDocument","endOffset","renderContent","onDelete","isCollapsed","commonAncestorContainer","nodeType","setEndBefore","anchorOffset","cloneContents","lastChild","onEnter","onCtrlEnter","onKeyUp","stopImmediatePropagation","compositionstart","compositionend","referenceData","displayedReferences","firstReference","fetch","exec","M","autolink","useMarkdown","children","splice","flat","component","p","tagName","P","NcReferenceList","referenceLimit","markdownCssClasses","ol","strong","em","h1","h2","h3","h4","h5","h6","hr","table","blockquote","renderPlaintext","isArray","renderMarkdown","use","prefix","processSync","saving","indicatorColor","hint","submitTranslated","idSubmit","groups","randId","errorMessage","hasError","filteredValue","displayname","groupsArray","handler","loadGroup","appName","appVersion","sessionStorage","getItem","fromEntries","JSON","parse","setItem","stringify","update","encodeURI","filterGroups","toLocaleLowerCase","multiple","NcPopover","NcUserBubbleDiv","avatarImage","displayName","showUserStatus","location","margin","isPopoverComponent","popoverEmpty","isAvatarUrl","isCustomAvatar","hasUrl","isLinkComponent","styles","lineHeight","borderRadius","avatar","marginLeft","util","onOpenChange","Z","Symbol","toStringTag","NcDashboardWidget","CheckIcon","widget","newButton","buttons","button","moreButton","setupButton","_vm","_ref","subtitle","panels","loadState","firstRun","statusInfo","weather","ApiDashboardWidget","Draggable","Pencil","isAdmin","getCurrentUser","timer","registeredStatus","callbacksStatus","allCallbacksStatus","enabledStatuses","uid","layout","panelId","modal","appStoreUrl","generateUrl","statuses","apiWidgets","apiWidgetItems","loadingItems","greeting","time","getHours","partOfDay","good","morning","generic","withName","afternoon","evening","night","panel","isStatusActive","sortedAllStatuses","sortStatuses","sortedPanels","indexA","indexB","sortedRegisteredStatus","rerenderPanels","app","Vue","fetchApiWidgets","apiWidgetIdsToFetch","isApiWidgetV2","all","fetchApiWidgetItems","reload_interval","setInterval","updateSkipLink","handleScroll","disableFirstrunHint","register","registerStatus","saveLayout","axios","saveStatuses","showModal","closeModal","updateCheckbox","currentValue","getElementsByClassName","updateStatusCheckbox","enableStatus","disableStatus","findIndex","al","bl","scrollY","response","generateOcsUrl","widgetIds","merge","URLSearchParams","widgetItems","toString","assign","item_api_versions","refInFor","$$v","swapThreshold","delay","delayOnTouchOnly","touchStartThreshold","icon_class","iconClass","$event","draggable","__webpack_nonce__","btoa","getRequestToken","directive","VTooltip","OCA","Files","App","fileList","filesClient","getClient","Instance","DashboardApp","Dashboard","___CSS_LOADER_EXPORT___","module","_typeof","obj","iterator","_defineProperty","defineProperty","enumerable","configurable","writable","_extends","hasOwnProperty","_objectSpread","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","off","matches","selector","msMatchesSelector","webkitMatchesSelector","getParentOrHost","host","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","css","defaultView","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","elRect","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","Sortable","ghost","dragged","last","lastElementChild","previousElementSibling","toUpperCase","clone","getRelativeScrollOffset","winScroller","includeSelf","gotSelf","scrollWidth","clientHeight","elemCSS","overflowX","isRectEqual","rect1","rect2","round","throttle","ms","scrollBy","x","Polymer","Zepto","dom","cloneNode","setRect","unsetRect","expando","getTime","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","eventName","sortable","_this","eventCanceled","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","putSortable","extraEventProperties","onName","charAt","substr","initEvent","to","from","pullMode","lastPutMode","allEventProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","clear","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","revertClone","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","some","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","animationCallbackId","animationStates","store","handle","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","captureAnimationState","child","fromRect","thisAnimationDuration","childMatrix","f","addAnimationState","removeAnimationState","indexOfObject","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","max","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","repaint","animated","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","sum","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","root","inputs","_saveInputCheckedState","criteria","_prepareDragStart","dragStartFn","ownerDocument","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","_onTouchMove","_onDragStart","empty","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","insertBefore","_loopId","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","save","handleEvent","dropEffect","_globalDragOver","toArray","set","destroy","utils","is","dst","nextTick","cancelNextTick","detectDirection","_len","_key","create","version","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","lastSwapEl","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","_ref2","swap","prevSwapEl","_ref3","n1","n2","i1","i2","p1","p2","isEqualNode","nulling","swapItem","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","_this2","removeMultiDragElements","dragOver","_ref8","_ref9","clonesInserted","insertMultiDragElements","dragOverCompleted","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","lastIndex","currentIndex","multiDragIndex","nullingGlobal","destroyGlobal","shift","deselect","_this3","oldIndicies","newIndicies","arr2","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","clones","elementsInserted","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverBubble","ogElemScroller","newElem","factory","self","__WEBPACK_EXTERNAL_MODULE_a352__","modules","installedModules","moduleId","m","getter","__esModule","ns","property","LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","toInteger","defined","TO_STRING","that","pos","at","S","unicode","anObject","global","ignoreCase","sticky","$keys","enumBugKeys","O","dP","getKeys","defineProperties","Properties","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","done","strfn","rxfn","arg","isObject","it","cof","ARG","B","tryGet","callee","has","SRC","$toString","TPL","inspectSource","safe","isFunction","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","write","lt","USE_SYMBOL","INCLUDES","searchString","createDesc","toObject","ObjectProto","descriptor","bitmap","MATCH","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","core","SHARED","copyright","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","W","classof","builtinExec","shared","$includes","IObject","valueOf","gOPS","pIE","$assign","k","aLen","getSymbols","isEnum","j","__g","min","def","stat","__e","IE8_DOM_DEFINE","toPrimitive","Attributes","aFunction","UNSCOPABLES","ArrayProto","toLength","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","res","rx","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","symbols","ch","isRegExp","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","forced","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","insertNodeAt","camelize","removeNode","parentElement","fatherNode","refNode","px","random","addToUnscopables","step","iterated","_i","Arguments","arrayIndexOf","names","STARTS_WITH","$startsWith","currentScript","scripts","stack","readyState","setPublicPath_i","_arrayLikeToArray","_unsupportedIterableToArray","minLen","_toConsumableArray","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","emit","evtName","evtData","delegateAndEmit","realList","isTransitionName","getSlot","slot","scopedSlot","eventsListened","eventsToEmit","readonlyProperties","draggingElement","draggableComponent","inheritAttrs","noTransitionOnDrag","move","componentData","transitionMode","noneFunctionalComponentMode","slots","componentOptions","_arrayWithHoles","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","vuedraggable_isTransition","_computeChildrenAndOf","headerOffset","footerOffset","footer","computeChildrenAndOffsets","$scopedSlots","attributes","propName","buildAttribute","componentDataAttrs","getComponentAttributes","getTag","getIsFunctional","optionsAdded","elt","onDragMove","_sortable","rootContainer","computeIndexes","newOptionValue","updateOptions","deep","fnOptions","_vnode","functional","getChildrenNodes","$children","rawNodes","_this4","visibleIndexes","isTransition","elmFromNodes","elm","footerIndex","rawIndexes","ind","_computeIndexes","getUnderlyingVm","htmlElt","vnodes","getUnderlyingPotencialDraggableComponent","vue","__vue__","$options","_componentTag","$parent","emitChanges","_this5","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedContext","futureIndex","onDragEnd","vuedraggable","__webpack_module_cache__","__webpack_require__","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","definition","globalThis","nmd","paths","baseURI","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file |