1
0

core-unified-search.js.map 158 KB

1
  1. {"version":3,"file":"core-unified-search.js?v=2a7db43a80f9a21864bf","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarRange.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarRange.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CalendarRange.vue?f09e","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarRange.vue?vue&type=template&id=29f118e2","webpack://nextcloud/./core/src/components/UnifiedSearch/CustomDateRangeModal.vue?b7cc","webpack:///nextcloud/core/src/components/UnifiedSearch/CustomDateRangeModal.vue","webpack:///nextcloud/core/src/components/UnifiedSearch/CustomDateRangeModal.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/components/UnifiedSearch/CustomDateRangeModal.vue?35ed","webpack://nextcloud/./core/src/components/UnifiedSearch/CustomDateRangeModal.vue?92fe","webpack:///nextcloud/node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/DotsHorizontal.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/DotsHorizontal.vue?c5a1","webpack:///nextcloud/node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=a4d4ab3e","webpack:///nextcloud/node_modules/vue-material-design-icons/Filter.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Filter.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Filter.vue?3711","webpack:///nextcloud/node_modules/vue-material-design-icons/Filter.vue?vue&type=template&id=7511a4c6","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchFilterChip.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchFilterChip.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchFilterChip.vue?0548","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchFilterChip.vue?fc0d","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchFilterChip.vue?2352","webpack:///nextcloud/node_modules/vue-material-design-icons/ListBox.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ListBox.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ListBox.vue?d9c9","webpack:///nextcloud/node_modules/vue-material-design-icons/ListBox.vue?vue&type=template&id=8c20def8","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/index.mjs","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchableList.vue","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchableList.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchableList.vue?9b02","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchableList.vue?4344","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchableList.vue?a21f","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResult.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResult.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResult.vue?0e1f","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResult.vue?32d3","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResult.vue?e4b5","webpack:///nextcloud/core/src/services/UnifiedSearchService.js","webpack:///nextcloud/core/src/store/unified-search-external-filters.js","webpack:///nextcloud/core/src/views/UnifiedSearchModal.vue","webpack:///nextcloud/core/src/views/UnifiedSearchModal.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/UnifiedSearchModal.vue?758f","webpack://nextcloud/./core/src/views/UnifiedSearchModal.vue?7f41","webpack://nextcloud/./core/src/views/UnifiedSearchModal.vue?60fa","webpack:///nextcloud/core/src/views/UnifiedSearch.vue","webpack:///nextcloud/core/src/views/UnifiedSearch.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/UnifiedSearch.vue?a937","webpack://nextcloud/./core/src/views/UnifiedSearch.vue?1990","webpack://nextcloud/./core/src/views/UnifiedSearch.vue?adc0","webpack:///nextcloud/core/src/unified-search.ts","webpack:///nextcloud/core/src/components/UnifiedSearch/CustomDateRangeModal.vue?vue&type=style&index=0&id=54c43949&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchFilterChip.vue?vue&type=style&index=0&id=9a2b627a&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResult.vue?vue&type=style&index=0&id=60a5b225&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchableList.vue?vue&type=style&index=0&id=62560aa0&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/views/UnifiedSearch.vue?vue&type=style&index=0&id=fb25074a&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/views/UnifiedSearchModal.vue?vue&type=style&index=0&id=6ace1280&prod&lang=scss&scoped=true","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};","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon calendar-range-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M9,10H7V12H9V10M13,10H11V12H13V10M17,10H15V12H17V10M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V8H19V19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CalendarRangeIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarRange.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarRange.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarRange.vue?vue&type=template&id=29f118e2\"\nimport script from \"./CalendarRange.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarRange.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-range-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,10H7V12H9V10M13,10H11V12H13V10M17,10H15V12H17V10M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V8H19V19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isModalOpen)?_c('NcModal',{attrs:{\"id\":\"unified-search\",\"name\":_vm.t('core', 'Custom date range'),\"show\":_vm.isModalOpen,\"size\":'small',\"clear-view-delay\":0,\"title\":_vm.t('core', 'Custom date range')},on:{\"update:show\":function($event){_vm.isModalOpen=$event},\"close\":_vm.closeModal}},[_c('div',{staticClass:\"unified-search-custom-date-modal\"},[_c('h1',[_vm._v(_vm._s(_vm.t('core', 'Custom date range')))]),_vm._v(\" \"),_c('div',{staticClass:\"unified-search-custom-date-modal__pickers\"},[_c('NcDateTimePicker',{attrs:{\"id\":'unifiedsearch-custom-date-range-start',\"label\":_vm.t('core', 'Pick start date'),\"type\":\"date\"},model:{value:(_vm.dateFilter.startFrom),callback:function ($$v) {_vm.$set(_vm.dateFilter, \"startFrom\", $$v)},expression:\"dateFilter.startFrom\"}}),_vm._v(\" \"),_c('NcDateTimePicker',{attrs:{\"id\":'unifiedsearch-custom-date-range-end',\"label\":_vm.t('core', 'Pick end date'),\"type\":\"date\"},model:{value:(_vm.dateFilter.endAt),callback:function ($$v) {_vm.$set(_vm.dateFilter, \"endAt\", $$v)},expression:\"dateFilter.endAt\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"unified-search-custom-date-modal__footer\"},[_c('NcButton',{on:{\"click\":_vm.applyCustomRange},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CalendarRangeIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3084610734)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Search in date range'))+\"\\n\\t\\t\\t\\t\")])],1)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcModal v-if=\"isModalOpen\"\n\t\tid=\"unified-search\"\n\t\t:name=\"t('core', 'Custom date range')\"\n\t\t:show.sync=\"isModalOpen\"\n\t\t:size=\"'small'\"\n\t\t:clear-view-delay=\"0\"\n\t\t:title=\"t('core', 'Custom date range')\"\n\t\t@close=\"closeModal\">\n\t\t<!-- Custom date range -->\n\t\t<div class=\"unified-search-custom-date-modal\">\n\t\t\t<h1>{{ t('core', 'Custom date range') }}</h1>\n\t\t\t<div class=\"unified-search-custom-date-modal__pickers\">\n\t\t\t\t<NcDateTimePicker :id=\"'unifiedsearch-custom-date-range-start'\"\n\t\t\t\t\tv-model=\"dateFilter.startFrom\"\n\t\t\t\t\t:label=\"t('core', 'Pick start date')\"\n\t\t\t\t\ttype=\"date\" />\n\t\t\t\t<NcDateTimePicker :id=\"'unifiedsearch-custom-date-range-end'\"\n\t\t\t\t\tv-model=\"dateFilter.endAt\"\n\t\t\t\t\t:label=\"t('core', 'Pick end date')\"\n\t\t\t\t\ttype=\"date\" />\n\t\t\t</div>\n\t\t\t<div class=\"unified-search-custom-date-modal__footer\">\n\t\t\t\t<NcButton @click=\"applyCustomRange\">\n\t\t\t\t\t{{ t('core', 'Search in date range') }}\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<CalendarRangeIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</div>\n\t</NcModal>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcDateTimePicker from '@nextcloud/vue/dist/Components/NcDateTimePickerNative.js'\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\nimport CalendarRangeIcon from 'vue-material-design-icons/CalendarRange.vue'\n\nexport default {\n\tname: 'CustomDateRangeModal',\n\tcomponents: {\n\t\tNcButton,\n\t\tNcModal,\n\t\tCalendarRangeIcon,\n\t\tNcDateTimePicker,\n\t},\n\tprops: {\n\t\tisOpen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tdateFilter: { startFrom: null, endAt: null },\n\t\t}\n\t},\n\tcomputed: {\n\t\tisModalOpen: {\n\t\t\tget() {\n\t\t\t\treturn this.isOpen\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\tthis.$emit('update:is-open', value)\n\t\t\t},\n\t\t},\n\t},\n\tmethods: {\n\t\tcloseModal() {\n\t\t\tthis.isModalOpen = false\n\t\t},\n\t\tapplyCustomRange() {\n\t\t\tthis.$emit('set:custom-date-range', this.dateFilter)\n\t\t\tthis.closeModal()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.unified-search-custom-date-modal {\n\tpadding: 10px 20px 10px 20px;\n\n\th1 {\n\t\tfont-size: 16px;\n\t\tfont-weight: bolder;\n\t\tline-height: 2em;\n\t}\n\n\t&__pickers {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n\n\t&__footer {\n\t\tdisplay: flex;\n\t\tjustify-content: end;\n\t}\n\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.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!./CustomDateRangeModal.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!./CustomDateRangeModal.vue?vue&type=style&index=0&id=54c43949&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!./CustomDateRangeModal.vue?vue&type=style&index=0&id=54c43949&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CustomDateRangeModal.vue?vue&type=template&id=54c43949&scoped=true\"\nimport script from \"./CustomDateRangeModal.vue?vue&type=script&lang=js\"\nexport * from \"./CustomDateRangeModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./CustomDateRangeModal.vue?vue&type=style&index=0&id=54c43949&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54c43949\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon dots-horizontal-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"DotsHorizontalIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./DotsHorizontal.vue?vue&type=template&id=a4d4ab3e\"\nimport script from \"./DotsHorizontal.vue?vue&type=script&lang=js\"\nexport * from \"./DotsHorizontal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon dots-horizontal-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon filter-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,12V19.88C14.04,20.18 13.94,20.5 13.71,20.71C13.32,21.1 12.69,21.1 12.3,20.71L10.29,18.7C10.06,18.47 9.96,18.16 10,17.87V12H9.97L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L14.03,12H14Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FilterIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Filter.vue?vue&type=template&id=7511a4c6\"\nimport script from \"./Filter.vue?vue&type=script&lang=js\"\nexport * from \"./Filter.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon filter-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M14,12V19.88C14.04,20.18 13.94,20.5 13.71,20.71C13.32,21.1 12.69,21.1 12.3,20.71L10.29,18.7C10.06,18.47 9.96,18.16 10,17.87V12H9.97L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L14.03,12H14Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.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!./SearchFilterChip.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div class=\"chip\">\n\t\t<span class=\"icon\">\n\t\t\t<slot name=\"icon\" />\n\t\t\t<span v-if=\"pretext.length\"> {{ pretext }} : </span>\n\t\t</span>\n\t\t<span class=\"text\">{{ text }}</span>\n\t\t<span class=\"close-icon\" @click=\"deleteChip\">\n\t\t\t<CloseIcon :size=\"18\" />\n\t\t</span>\n\t</div>\n</template>\n\n<script>\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\n\nexport default {\n\tname: 'SearchFilterChip',\n\tcomponents: {\n\t\tCloseIcon,\n\t},\n\tprops: {\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tpretext: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tmethods: {\n\t\tdeleteChip() {\n\t\t\tthis.$emit('delete', this.filter)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.chip {\n display: flex;\n align-items: center;\n padding: 2px 4px;\n border: 1px solid var(--color-primary-element-light);\n border-radius: 20px;\n background-color: var(--color-primary-element-light);\n margin: 2px;\n\n .icon {\n display: flex;\n align-items: center;\n padding-right: 5px;\n\n img {\n width: 20px;\n padding: 2px;\n border-radius: 20px;\n filter: var(--background-invert-if-bright);\n }\n }\n\n .text {\n margin: 0 2px;\n }\n\n .close-icon {\n cursor: pointer ;\n\n :hover {\n filter: invert(20%);\n }\n }\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.vue?vue&type=style&index=0&id=9a2b627a&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!./SearchFilterChip.vue?vue&type=style&index=0&id=9a2b627a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchFilterChip.vue?vue&type=template&id=9a2b627a&scoped=true\"\nimport script from \"./SearchFilterChip.vue?vue&type=script&lang=js\"\nexport * from \"./SearchFilterChip.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchFilterChip.vue?vue&type=style&index=0&id=9a2b627a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9a2b627a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"chip\"},[_c('span',{staticClass:\"icon\"},[_vm._t(\"icon\"),_vm._v(\" \"),(_vm.pretext.length)?_c('span',[_vm._v(\" \"+_vm._s(_vm.pretext)+\" : \")]):_vm._e()],2),_vm._v(\" \"),_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.text))]),_vm._v(\" \"),_c('span',{staticClass:\"close-icon\",on:{\"click\":_vm.deleteChip}},[_c('CloseIcon',{attrs:{\"size\":18}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ListBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ListBox.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon list-box-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M7 7H9V9H7V7M7 11H9V13H7V11M7 15H9V17H7V15M17 17H11V15H17V17M17 13H11V11H17V13M17 9H11V7H17V9Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ListBoxIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./ListBox.vue?vue&type=template&id=8c20def8\"\nimport script from \"./ListBox.vue?vue&type=script&lang=js\"\nexport * from \"./ListBox.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon list-box-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M7 7H9V9H7V7M7 11H9V13H7V11M7 15H9V17H7V15M17 17H11V15H17V17M17 13H11V11H17V13M17 9H11V7H17V9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import './assets/NcRichText-DNXuHl34.css';\nimport i from \"./Components/NcActionButton.mjs\";\nimport { N as e } from \"./chunks/NcActionButtonGroup-DU1taycQ.mjs\";\nimport m from \"./Components/NcActionCaption.mjs\";\nimport a from \"./Components/NcActionCheckbox.mjs\";\nimport { N as p } from \"./chunks/NcActionInput-53RB9uQe.mjs\";\nimport c from \"./Components/NcActionLink.mjs\";\nimport s from \"./Components/NcActionRadio.mjs\";\nimport N from \"./Components/NcActionRouter.mjs\";\nimport { N as n } from \"./chunks/NcActions-DiFslXqv.mjs\";\nimport f from \"./Components/NcActionSeparator.mjs\";\nimport l from \"./Components/NcActionText.mjs\";\nimport u from \"./Components/NcActionTextEditable.mjs\";\nimport { N as d } from \"./chunks/NcAppContent-BDhK1rUf.mjs\";\nimport g from \"./Components/NcAppContentDetails.mjs\";\nimport A from \"./Components/NcAppContentList.mjs\";\nimport { N as S } from \"./chunks/NcAppNavigation-CElLRpH-.mjs\";\nimport { N as b } from \"./chunks/NcAppNavigationCaption-DI7SIPdI.mjs\";\nimport v from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as T } from \"./chunks/NcAppNavigationItem-Djfc0DPY.mjs\";\nimport k from \"./Components/NcAppNavigationList.mjs\";\nimport P from \"./Components/NcAppNavigationNew.mjs\";\nimport { N as x } from \"./chunks/NcAppNavigationNewItem-CN3vYnc_.mjs\";\nimport { N as C } from \"./chunks/NcAppNavigationSettings-LmpAoM-x.mjs\";\nimport I from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as h } from \"./chunks/NcAppSettingsDialog-BLOgrVCz.mjs\";\nimport E from \"./Components/NcAppSettingsSection.mjs\";\nimport { N as B } from \"./chunks/NcAppSidebar-CqER6-dl.mjs\";\nimport R from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as L } from \"./chunks/NcAvatar-BBhoG-za.mjs\";\nimport { u as ct } from \"./chunks/NcAvatar-BBhoG-za.mjs\";\nimport { N as y } from \"./chunks/NcBreadcrumb-BxCf2hEA.mjs\";\nimport { N as M } from \"./chunks/NcBreadcrumbs-BmK-6Q-n.mjs\";\nimport O from \"./Components/NcButton.mjs\";\nimport { N as D } from \"./chunks/NcCheckboxRadioSwitch-BOl1O2zi.mjs\";\nimport { N as _ } from \"./chunks/NcColorPicker-CeoImUTC.mjs\";\nimport { N as j } from \"./chunks/NcContent-BPA0KfuT.mjs\";\nimport F from \"./Components/NcCounterBubble.mjs\";\nimport { N as W } from \"./chunks/NcDashboardWidget-2-nW7dII.mjs\";\nimport { N as w } from \"./chunks/NcDashboardWidgetItem-D2yoF9Oo.mjs\";\nimport { N as z } from \"./chunks/NcDateTime-CeOdKcvC.mjs\";\nimport { u as Nt } from \"./chunks/NcDateTime-CeOdKcvC.mjs\";\nimport G from \"./Components/NcDateTimePicker.mjs\";\nimport V from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as H } from \"./chunks/NcDialog-C_1rhUHk.mjs\";\nimport { N as K } from \"./chunks/NcDialogButton-DQFoaN7q.mjs\";\nimport { N as U } from \"./chunks/NcEmojiPicker-Cie30NYK.mjs\";\nimport $ from \"./Components/NcEmptyContent.mjs\";\nimport q from \"./Components/NcGuestContent.mjs\";\nimport { N as J } from \"./chunks/NcHeaderMenu-DOGXti7v.mjs\";\nimport { N as Q } from \"./chunks/index-CnpswYi6.mjs\";\nimport { N as X } from \"./chunks/NcIconSvgWrapper-BTdzvQGV.mjs\";\nimport { N as Y } from \"./chunks/NcListItem-BopkGRDs.mjs\";\nimport { N as Z } from \"./chunks/NcListItemIcon-CI23iFQz.mjs\";\nimport oo from \"./Components/NcLoadingIcon.mjs\";\nimport ro from \"./Components/NcModal.mjs\";\nimport to from \"./Components/NcNoteCard.mjs\";\nimport { N as io } from \"./chunks/NcPasswordField-BgSp7dK4.mjs\";\nimport { N as eo } from \"./chunks/NcPopover--V3R3EKV.mjs\";\nimport { N as mo } from \"./chunks/NcProgressBar-DDAeXyp8.mjs\";\nimport { N as ao } from \"./chunks/NcRelatedResourcesPanel-Ch1b_Gl3.mjs\";\nimport { N as po } from \"./chunks/index-uiNhPYvS.mjs\";\nimport { r as ft } from \"./chunks/index-uiNhPYvS.mjs\";\nimport { N as co, a as so } from \"./chunks/NcRichContenteditable-CEqdmoem.mjs\";\nimport { N as No } from \"./chunks/NcRichText-CUKFkHQg.mjs\";\nimport { N as ut, h as dt, d as gt, i as At, b as St, r as bt, c as vt, a as Tt } from \"./chunks/index-CU14QsCg.mjs\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport { a as Pt, g as xt, b as Ct, c as It, d as ht, s as Et } from \"./chunks/referencePickerModal-AvSHyw1b.mjs\";\nimport \"unist-util-visit\";\nimport \"unist-builder\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/axios\";\n/* empty css */\nimport { N as no } from \"./chunks/NcSelect-Bo71Yd6L.mjs\";\nimport { N as fo } from \"./chunks/NcTextField-D_eUEl2B.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as lo } from \"./chunks/NcSavingIndicatorIcon-Bf0SEmgS.mjs\";\nimport { N as uo } from \"./chunks/NcSelectTags-9aCrLRT0.mjs\";\nimport { N as go } from \"./chunks/NcSettingsInputText-JboV8u2l.mjs\";\nimport { N as Ao } from \"./chunks/NcSettingsSection-Lgwm3w2e.mjs\";\nimport { N as So } from \"./chunks/NcSettingsSelectGroup-DUzmbtZx.mjs\";\nimport { N as bo } from \"./chunks/NcTimezonePicker-CH1lkCMF.mjs\";\nimport { N as vo } from \"./chunks/NcUserBubble-C0HbPO9p.mjs\";\nimport { N as To } from \"./chunks/NcUserStatusIcon-HOUdT_MR.mjs\";\nimport ko from \"./Components/NcTextArea.mjs\";\nimport { isFullscreenState as Rt, useIsFullscreen as Lt } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT as Mt, MOBILE_SMALL_BREAKPOINT as Ot, isMobileState as Dt, useIsMobile as _t, useIsSmallMobile as jt } from \"./Composables/useIsMobile.mjs\";\nimport { E as Wt, a as wt, e as zt, g as Gt, s as Vt } from \"./chunks/emoji-k4gWHxrE.mjs\";\nimport { u as Kt } from \"./chunks/usernameToColor-BHkzj1tb.mjs\";\nimport { directive as Po } from \"./Directives/Focus.mjs\";\nimport { directive as xo } from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as $t } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as Jt } from \"./Mixins/isFullscreen.mjs\";\nimport { default as Xt } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip as Co } from \"floating-vue\";\nimport { VTooltip as Zt } 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 Io = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton: i,\n NcActionButtonGroup: e,\n NcActionCaption: m,\n NcActionCheckbox: a,\n NcActionInput: p,\n NcActionLink: c,\n NcActionRadio: s,\n NcActionRouter: N,\n NcActionSeparator: f,\n NcActionText: l,\n NcActionTextEditable: u,\n NcActions: n,\n NcAppContent: d,\n NcAppContentDetails: g,\n NcAppContentList: A,\n NcAppNavigation: S,\n NcAppNavigationCaption: b,\n NcAppNavigationIconBullet: v,\n NcAppNavigationItem: T,\n NcAppNavigationList: k,\n NcAppNavigationNew: P,\n NcAppNavigationNewItem: x,\n NcAppNavigationSettings: C,\n NcAppNavigationSpacer: I,\n NcAppSettingsDialog: h,\n NcAppSettingsSection: E,\n NcAppSidebar: B,\n NcAppSidebarTab: R,\n NcAutoCompleteResult: co,\n NcAvatar: L,\n NcBreadcrumb: y,\n NcBreadcrumbs: M,\n NcButton: O,\n NcCheckboxRadioSwitch: D,\n NcColorPicker: _,\n NcContent: j,\n NcCounterBubble: F,\n NcDashboardWidget: W,\n NcDashboardWidgetItem: w,\n NcDateTime: z,\n NcDateTimePicker: G,\n NcDateTimePickerNative: V,\n NcDialog: H,\n NcDialogButton: K,\n NcEmojiPicker: U,\n NcEmptyContent: $,\n NcGuestContent: q,\n NcHeaderMenu: J,\n NcHighlight: Q,\n NcIconSvgWrapper: X,\n NcListItem: Y,\n NcListItemIcon: Z,\n NcLoadingIcon: oo,\n NcMentionBubble: po,\n NcModal: ro,\n NcNoteCard: to,\n NcPasswordField: io,\n NcPopover: eo,\n NcProgressBar: mo,\n NcRelatedResourcesPanel: ao,\n NcRichContenteditable: so,\n NcRichText: No,\n NcSavingIndicatorIcon: lo,\n NcSelect: no,\n NcSelectTags: uo,\n NcSettingsInputText: go,\n NcSettingsSection: Ao,\n NcSettingsSelectGroup: So,\n NcTextArea: ko,\n NcTextField: fo,\n NcTimezonePicker: bo,\n NcUserBubble: vo,\n NcUserStatusIcon: To\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 et = (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: Po,\n Linkify: xo,\n Tooltip: Co\n}, Symbol.toStringTag, { value: \"Module\" })), mt = {\n install(o) {\n Object.entries(Io).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 Wt as EmojiSkinTone,\n Po as Focus,\n xo as Linkify,\n Mt as MOBILE_BREAKPOINT,\n Ot as MOBILE_SMALL_BREAKPOINT,\n i as NcActionButton,\n e as NcActionButtonGroup,\n m as NcActionCaption,\n a as NcActionCheckbox,\n p as NcActionInput,\n c as NcActionLink,\n s as NcActionRadio,\n N as NcActionRouter,\n f as NcActionSeparator,\n l as NcActionText,\n u as NcActionTextEditable,\n n as NcActions,\n d as NcAppContent,\n g as NcAppContentDetails,\n A as NcAppContentList,\n S as NcAppNavigation,\n b as NcAppNavigationCaption,\n v as NcAppNavigationIconBullet,\n T as NcAppNavigationItem,\n k as NcAppNavigationList,\n P as NcAppNavigationNew,\n x as NcAppNavigationNewItem,\n C as NcAppNavigationSettings,\n I as NcAppNavigationSpacer,\n h as NcAppSettingsDialog,\n E as NcAppSettingsSection,\n B as NcAppSidebar,\n R as NcAppSidebarTab,\n co as NcAutoCompleteResult,\n L as NcAvatar,\n y as NcBreadcrumb,\n M as NcBreadcrumbs,\n O as NcButton,\n D as NcCheckboxRadioSwitch,\n _ as NcColorPicker,\n j as NcContent,\n F as NcCounterBubble,\n ut as NcCustomPickerRenderResult,\n W as NcDashboardWidget,\n w as NcDashboardWidgetItem,\n z as NcDateTime,\n G as NcDateTimePicker,\n V as NcDateTimePickerNative,\n H as NcDialog,\n K as NcDialogButton,\n U as NcEmojiPicker,\n $ as NcEmptyContent,\n q as NcGuestContent,\n J as NcHeaderMenu,\n Q as NcHighlight,\n X as NcIconSvgWrapper,\n Y as NcListItem,\n Z as NcListItemIcon,\n oo as NcLoadingIcon,\n po as NcMentionBubble,\n ro as NcModal,\n to as NcNoteCard,\n io as NcPasswordField,\n eo as NcPopover,\n mo as NcProgressBar,\n ao as NcRelatedResourcesPanel,\n so as NcRichContenteditable,\n No as NcRichText,\n lo as NcSavingIndicatorIcon,\n no as NcSelect,\n uo as NcSelectTags,\n go as NcSettingsInputText,\n Ao as NcSettingsSection,\n So as NcSettingsSelectGroup,\n ko as NcTextArea,\n fo as NcTextField,\n bo as NcTimezonePicker,\n vo as NcUserBubble,\n To as NcUserStatusIcon,\n mt as NextcloudVuePlugin,\n Zt as Tooltip,\n Pt as anyLinkProviderId,\n $t as clickOutsideOptions,\n wt as emojiAddRecent,\n zt as emojiSearch,\n Gt as getCurrentSkinTone,\n xt as getLinkWithPicker,\n Ct as getProvider,\n It as getProviders,\n dt as hasInteractiveView,\n et as isA11yActivation,\n gt as isCustomPickerElementRegistered,\n Jt as isFullscreen,\n Rt as isFullscreenState,\n Xt as isMobile,\n Dt as isMobileState,\n At as isWidgetRegistered,\n St as registerCustomPickerElement,\n bt as registerWidget,\n vt as renderCustomPickerElement,\n Tt as renderWidget,\n ft as richEditor,\n ht as searchProvider,\n Vt as setCurrentSkinTone,\n Et as sortProviders,\n Nt as useFormatDateTime,\n Lt as useIsFullscreen,\n _t as useIsMobile,\n jt as useIsSmallMobile,\n ct as userStatus,\n Kt as usernameToColor\n};\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcPopover :shown=\"opened\"\n\t\t@show=\"opened = true\"\n\t\t@hide=\"opened = false\">\n\t\t<template #trigger>\n\t\t\t<slot ref=\"popoverTrigger\" name=\"trigger\" />\n\t\t</template>\n\t\t<div class=\"searchable-list__wrapper\">\n\t\t\t<NcTextField :value.sync=\"searchTerm\"\n\t\t\t\t:label=\"labelText\"\n\t\t\t\ttrailing-button-icon=\"close\"\n\t\t\t\t:show-trailing-button=\"searchTerm !== ''\"\n\t\t\t\t@update:value=\"searchTermChanged\"\n\t\t\t\t@trailing-button-click=\"clearSearch\">\n\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t</NcTextField>\n\t\t\t<ul v-if=\"filteredList.length > 0\" class=\"searchable-list__list\">\n\t\t\t\t<li v-for=\"element in filteredList\"\n\t\t\t\t\t:key=\"element.id\"\n\t\t\t\t\t:title=\"element.displayName\"\n\t\t\t\t\trole=\"button\">\n\t\t\t\t\t<NcButton alignment=\"start\"\n\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t:wide=\"true\"\n\t\t\t\t\t\t@click=\"itemSelected(element)\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcAvatar v-if=\"element.isUser\" :user=\"element.user\" :show-user-status=\"false\" />\n\t\t\t\t\t\t\t<NcAvatar v-else\n\t\t\t\t\t\t\t\t:is-no-user=\"true\"\n\t\t\t\t\t\t\t\t:display-name=\"element.displayName\"\n\t\t\t\t\t\t\t\t:show-user-status=\"false\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ element.displayName }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t\t<div v-else class=\"searchable-list__empty-content\">\n\t\t\t\t<NcEmptyContent :name=\"emptyContentText\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<AlertCircleOutline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\t\t</div>\n\t</NcPopover>\n</template>\n\n<script>\nimport { NcPopover, NcTextField, NcAvatar, NcEmptyContent, NcButton } from '@nextcloud/vue'\n\nimport AlertCircleOutline from 'vue-material-design-icons/AlertCircleOutline.vue'\nimport Magnify from 'vue-material-design-icons/Magnify.vue'\n\nexport default {\n\tname: 'SearchableList',\n\n\tcomponents: {\n\t\tNcPopover,\n\t\tNcTextField,\n\t\tMagnify,\n\t\tAlertCircleOutline,\n\t\tNcAvatar,\n\t\tNcEmptyContent,\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\tlabelText: {\n\t\t\ttype: String,\n\t\t\tdefault: 'this is a label',\n\t\t},\n\n\t\tsearchList: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\n\t\temptyContentText: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\topened: false,\n\t\t\terror: false,\n\t\t\tsearchTerm: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tfilteredList() {\n\t\t\treturn this.searchList.filter((element) => {\n\t\t\t\tif (!this.searchTerm.toLowerCase().length) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn ['displayName'].some(prop => element[prop].toLowerCase().includes(this.searchTerm.toLowerCase()))\n\t\t\t})\n\t\t},\n\t},\n\n\tmethods: {\n\t\tclearSearch() {\n\t\t\tthis.searchTerm = ''\n\t\t},\n\t\titemSelected(element) {\n\t\t\tthis.$emit('item-selected', element)\n\t\t\tthis.clearSearch()\n\t\t\tthis.opened = false\n\t\t},\n\t\tsearchTermChanged(term) {\n\t\t\tthis.$emit('search-term-change', term)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.searchable-list {\n\t&__wrapper {\n\t\tpadding: calc(var(--default-grid-baseline) * 3);\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\twidth: 250px;\n\t}\n\n\t&__list {\n\t\twidth: 100%;\n\t\tmax-height: 284px;\n\t\toverflow-y: auto;\n\t\tmargin-top: var(--default-grid-baseline);\n\t\tpadding: var(--default-grid-baseline);\n\n\t\t:deep(.button-vue) {\n\t\t\tborder-radius: var(--border-radius-large) !important;\n\t\t\tspan {\n\t\t\t\tfont-weight: initial;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__empty-content {\n\t\tmargin-top: calc(var(--default-grid-baseline) * 3);\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.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!./SearchableList.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!./SearchableList.vue?vue&type=style&index=0&id=62560aa0&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!./SearchableList.vue?vue&type=style&index=0&id=62560aa0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchableList.vue?vue&type=template&id=62560aa0&scoped=true\"\nimport script from \"./SearchableList.vue?vue&type=script&lang=js\"\nexport * from \"./SearchableList.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchableList.vue?vue&type=style&index=0&id=62560aa0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62560aa0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcPopover',{attrs:{\"shown\":_vm.opened},on:{\"show\":function($event){_vm.opened = true},\"hide\":function($event){_vm.opened = false}},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_vm._t(\"trigger\")]},proxy:true}],null,true)},[_vm._v(\" \"),_c('div',{staticClass:\"searchable-list__wrapper\"},[_c('NcTextField',{attrs:{\"value\":_vm.searchTerm,\"label\":_vm.labelText,\"trailing-button-icon\":\"close\",\"show-trailing-button\":_vm.searchTerm !== ''},on:{\"update:value\":[function($event){_vm.searchTerm=$event},_vm.searchTermChanged],\"trailing-button-click\":_vm.clearSearch}},[_c('Magnify',{attrs:{\"size\":20}})],1),_vm._v(\" \"),(_vm.filteredList.length > 0)?_c('ul',{staticClass:\"searchable-list__list\"},_vm._l((_vm.filteredList),function(element){return _c('li',{key:element.id,attrs:{\"title\":element.displayName,\"role\":\"button\"}},[_c('NcButton',{attrs:{\"alignment\":\"start\",\"type\":\"tertiary\",\"wide\":true},on:{\"click\":function($event){return _vm.itemSelected(element)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(element.isUser)?_c('NcAvatar',{attrs:{\"user\":element.user,\"show-user-status\":false}}):_c('NcAvatar',{attrs:{\"is-no-user\":true,\"display-name\":element.displayName,\"show-user-status\":false}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(element.displayName)+\"\\n\\t\\t\\t\\t\")])],1)}),0):_c('div',{staticClass:\"searchable-list__empty-content\"},[_c('NcEmptyContent',{attrs:{\"name\":_vm.emptyContentText},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AlertCircleOutline')]},proxy:true}])})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.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!./SearchResult.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcListItem class=\"result-items__item\"\n\t\t:name=\"title\"\n\t\t:bold=\"false\"\n\t\t:href=\"resourceUrl\"\n\t\ttarget=\"_self\">\n\t\t<template #icon>\n\t\t\t<div aria-hidden=\"true\"\n\t\t\t\tclass=\"result-items__item-icon\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t'result-items__item-icon--rounded': rounded,\n\t\t\t\t\t'result-items__item-icon--no-preview': !isValidIconOrPreviewUrl(thumbnailUrl),\n\t\t\t\t\t'result-items__item-icon--with-thumbnail': isValidIconOrPreviewUrl(thumbnailUrl),\n\t\t\t\t\t[icon]: !isValidIconOrPreviewUrl(icon),\n\t\t\t\t}\"\n\t\t\t\t:style=\"{\n\t\t\t\t\tbackgroundImage: isValidIconOrPreviewUrl(icon) ? `url(${icon})` : '',\n\t\t\t\t}\">\n\t\t\t\t<img v-if=\"isValidIconOrPreviewUrl(thumbnailUrl) && !thumbnailHasError\"\n\t\t\t\t\t:src=\"thumbnailUrl\"\n\t\t\t\t\t@error=\"thumbnailErrorHandler\">\n\t\t\t</div>\n\t\t</template>\n\t\t<template #subname>\n\t\t\t{{ subline }}\n\t\t</template>\n\t</NcListItem>\n</template>\n\n<script>\nimport NcListItem from '@nextcloud/vue/dist/Components/NcListItem.js'\n\nexport default {\n\tname: 'SearchResult',\n\tcomponents: {\n\t\tNcListItem,\n\t},\n\tprops: {\n\t\tthumbnailUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tsubline: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tresourceUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\trounded: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tquery: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Only used for the first result as a visual feedback\n\t\t * so we can keep the search input focused but pressing\n\t\t * enter still opens the first result\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tthumbnailHasError: false,\n\t\t}\n\t},\n\twatch: {\n\t\tthumbnailUrl() {\n\t\t\tthis.thumbnailHasError = false\n\t\t},\n\t},\n\tmethods: {\n\t\tisValidIconOrPreviewUrl(url) {\n\t\t\treturn /^https?:\\/\\//.test(url) || url.startsWith('/')\n\t\t},\n\t\tthumbnailErrorHandler() {\n\t\t\tthis.thumbnailHasError = true\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use \"sass:math\";\n$clickable-area: 44px;\n$margin: 10px;\n\n.result-items {\n &__item {\n\n ::v-deep a {\n border-radius: 12px;\n border: 2px solid transparent;\n border-radius: var(--border-radius-large) !important;\n\n &--focused {\n background-color: var(--color-background-hover);\n }\n\n &:active,\n &:hover,\n &:focus {\n background-color: var(--color-background-hover);\n border: 2px solid var(--color-border-maxcontrast);\n }\n\n * {\n cursor: pointer;\n }\n\n }\n\n &-icon {\n overflow: hidden;\n width: $clickable-area;\n height: $clickable-area;\n border-radius: var(--border-radius);\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 32px;\n\n &--rounded {\n border-radius: math.div($clickable-area, 2);\n }\n\n &--no-preview {\n background-size: 32px;\n }\n\n &--with-thumbnail {\n background-size: cover;\n }\n\n &--with-thumbnail:not(&--rounded) {\n // compensate for border\n max-width: $clickable-area - 2px;\n max-height: $clickable-area - 2px;\n border: 1px solid var(--color-border);\n }\n\n img {\n // Make sure to keep ratio\n width: 100%;\n height: 100%;\n\n object-fit: cover;\n object-position: center;\n }\n }\n\n }\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResult.vue?vue&type=style&index=0&id=60a5b225&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!./SearchResult.vue?vue&type=style&index=0&id=60a5b225&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchResult.vue?vue&type=template&id=60a5b225&scoped=true\"\nimport script from \"./SearchResult.vue?vue&type=script&lang=js\"\nexport * from \"./SearchResult.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchResult.vue?vue&type=style&index=0&id=60a5b225&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"60a5b225\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcListItem',{staticClass:\"result-items__item\",attrs:{\"name\":_vm.title,\"bold\":false,\"href\":_vm.resourceUrl,\"target\":\"_self\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"result-items__item-icon\",class:{\n\t\t\t\t'result-items__item-icon--rounded': _vm.rounded,\n\t\t\t\t'result-items__item-icon--no-preview': !_vm.isValidIconOrPreviewUrl(_vm.thumbnailUrl),\n\t\t\t\t'result-items__item-icon--with-thumbnail': _vm.isValidIconOrPreviewUrl(_vm.thumbnailUrl),\n\t\t\t\t[_vm.icon]: !_vm.isValidIconOrPreviewUrl(_vm.icon),\n\t\t\t},style:({\n\t\t\t\tbackgroundImage: _vm.isValidIconOrPreviewUrl(_vm.icon) ? `url(${_vm.icon})` : '',\n\t\t\t}),attrs:{\"aria-hidden\":\"true\"}},[(_vm.isValidIconOrPreviewUrl(_vm.thumbnailUrl) && !_vm.thumbnailHasError)?_c('img',{attrs:{\"src\":_vm.thumbnailUrl},on:{\"error\":_vm.thumbnailErrorHandler}}):_vm._e()])]},proxy:true},{key:\"subname\",fn:function(){return [_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.subline)+\"\\n\\t\")]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\n\n/**\n * Create a cancel token\n *\n * @return {import('axios').CancelTokenSource}\n */\nconst createCancelToken = () => axios.CancelToken.source()\n\n/**\n * Get the list of available search providers\n *\n * @return {Promise<Array>}\n */\nexport async function getProviders() {\n\ttry {\n\t\tconst { data } = await axios.get(generateOcsUrl('search/providers'), {\n\t\t\tparams: {\n\t\t\t\t// Sending which location we're currently at\n\t\t\t\tfrom: window.location.pathname.replace('/index.php', '') + window.location.search,\n\t\t\t},\n\t\t})\n\t\tif ('ocs' in data && 'data' in data.ocs && Array.isArray(data.ocs.data) && data.ocs.data.length > 0) {\n\t\t\t// Providers are sorted by the api based on their order key\n\t\t\treturn data.ocs.data\n\t\t}\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n\treturn []\n}\n\n/**\n * Get the list of available search providers\n *\n * @param {object} options destructuring object\n * @param {string} options.type the type to search\n * @param {string} options.query the search\n * @param {number|string|undefined} options.cursor the offset for paginated searches\n * @param {string} options.since the search\n * @param {string} options.until the search\n * @param {string} options.limit the search\n * @param {string} options.person the search\n * @param {object} options.extraQueries additional queries to filter search results\n * @return {object} {request: Promise, cancel: Promise}\n */\nexport function search({ type, query, cursor, since, until, limit, person, extraQueries = {} }) {\n\t/**\n\t * Generate an axios cancel token\n\t */\n\tconst cancelToken = createCancelToken()\n\n\tconst request = async () => axios.get(generateOcsUrl('search/providers/{type}/search', { type }), {\n\t\tcancelToken: cancelToken.token,\n\t\tparams: {\n\t\t\tterm: query,\n\t\t\tcursor,\n\t\t\tsince,\n\t\t\tuntil,\n\t\t\tlimit,\n\t\t\tperson,\n\t\t\t// Sending which location we're currently at\n\t\t\tfrom: window.location.pathname.replace('/index.php', '') + window.location.search,\n\t\t\t...extraQueries,\n\t\t},\n\t})\n\n\treturn {\n\t\trequest,\n\t\tcancel: cancelToken.cancel,\n\t}\n}\n\n/**\n * Get the list of active contacts\n *\n * @param {object} filter filter contacts by string\n * @param filter.searchTerm\n * @return {object} {request: Promise}\n */\nexport async function getContacts({ searchTerm }) {\n\tconst { data: { contacts } } = await axios.post(generateUrl('/contactsmenu/contacts'), {\n\t\tfilter: searchTerm,\n\t})\n\t/*\n\t * Add authenticated user to list of contacts for search filter\n\t * If authtenicated user is searching/filtering, do not add them to the list\n\t */\n\tif (!searchTerm) {\n\t\tlet authenticatedUser = getCurrentUser()\n\t\tauthenticatedUser = {\n\t\t\tid: authenticatedUser.uid,\n\t\t\tfullName: authenticatedUser.displayName,\n\t\t\temailAddresses: [],\n\t\t }\n\t\tcontacts.unshift(authenticatedUser)\n\t\treturn contacts\n\t }\n\n\treturn contacts\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia'\n\nexport const useSearchStore = defineStore({\n\tid: 'search',\n\n\tstate: () => ({\n\t\texternalFilters: [],\n\t}),\n\n\tactions: {\n\t\tregisterExternalFilter({ id, appId, label, callback, icon }) {\n\t\t\tthis.externalFilters.push({ id, appId, name: label, callback, icon, isPluginFilter: true })\n\t\t},\n\t},\n})\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcModal id=\"unified-search\"\n\t\tref=\"unifiedSearchModal\"\n\t\t:show.sync=\"internalIsVisible\"\n\t\t:clear-view-delay=\"0\"\n\t\t@close=\"closeModal\">\n\t\t<CustomDateRangeModal :is-open=\"showDateRangeModal\"\n\t\t\tclass=\"unified-search__date-range\"\n\t\t\t@set:custom-date-range=\"setCustomDateRange\"\n\t\t\t@update:is-open=\"showDateRangeModal = $event\" />\n\t\t<!-- Unified search form -->\n\t\t<div ref=\"unifiedSearch\" class=\"unified-search-modal\">\n\t\t\t<div class=\"unified-search-modal__header\">\n\t\t\t\t<h2>{{ t('core', 'Unified search') }}</h2>\n\t\t\t\t<NcInputField ref=\"searchInput\"\n\t\t\t\t\tdata-cy-unified-search-input\n\t\t\t\t\t:value.sync=\"searchQuery\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t:label=\"t('core', 'Search apps, files, tags, messages') + '...'\"\n\t\t\t\t\t@update:value=\"debouncedFind\" />\n\t\t\t\t<div class=\"unified-search-modal__filters\" data-cy-unified-search-filters>\n\t\t\t\t\t<NcActions :menu-name=\"t('core', 'Places')\" :open.sync=\"providerActionMenuIsOpen\" data-cy-unified-search-filter=\"places\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ListBox :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<!-- Provider id's may be duplicated since, plugin filters could depend on a provider that is already in the defaults.\n\t\t\t\t\t\tprovider.id concatenated to provider.name is used to create the item id, if same then, there should be an issue. -->\n\t\t\t\t\t\t<NcActionButton v-for=\"provider in providers\"\n\t\t\t\t\t\t\t:key=\"`${provider.id}-${provider.name.replace(/\\s/g, '')}`\"\n\t\t\t\t\t\t\t@click=\"addProviderFilter(provider)\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<img :src=\"provider.icon\" class=\"filter-button__icon\" alt=\"\">\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t{{ provider.name }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t</NcActions>\n\t\t\t\t\t<NcActions :menu-name=\"t('core', 'Date')\" :open.sync=\"dateActionMenuIsOpen\" data-cy-unified-search-filter=\"date\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<CalendarRangeIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<NcActionButton :close-after-click=\"true\" @click=\"applyQuickDateRange('today')\">\n\t\t\t\t\t\t\t{{ t('core', 'Today') }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<NcActionButton :close-after-click=\"true\" @click=\"applyQuickDateRange('7days')\">\n\t\t\t\t\t\t\t{{ t('core', 'Last 7 days') }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<NcActionButton :close-after-click=\"true\" @click=\"applyQuickDateRange('30days')\">\n\t\t\t\t\t\t\t{{ t('core', 'Last 30 days') }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<NcActionButton :close-after-click=\"true\" @click=\"applyQuickDateRange('thisyear')\">\n\t\t\t\t\t\t\t{{ t('core', 'This year') }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<NcActionButton :close-after-click=\"true\" @click=\"applyQuickDateRange('lastyear')\">\n\t\t\t\t\t\t\t{{ t('core', 'Last year') }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<NcActionButton :close-after-click=\"true\" @click=\"applyQuickDateRange('custom')\">\n\t\t\t\t\t\t\t{{ t('core', 'Custom date range') }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t</NcActions>\n\t\t\t\t\t<SearchableList :label-text=\"t('core', 'Search people')\"\n\t\t\t\t\t\t:search-list=\"userContacts\"\n\t\t\t\t\t\t:empty-content-text=\"t('core', 'Not found')\"\n\t\t\t\t\t\tdata-cy-unified-search-filter=\"people\"\n\t\t\t\t\t\t@search-term-change=\"debouncedFilterContacts\"\n\t\t\t\t\t\t@item-selected=\"applyPersonFilter\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton>\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<AccountGroup :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t{{ t('core', 'People') }}\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</SearchableList>\n\t\t\t\t\t<NcButton v-if=\"supportFiltering\" data-cy-unified-search-filter=\"current-view\" @click=\"closeModal\">\n\t\t\t\t\t\t{{ t('core', 'Filter in current view') }}\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<FilterIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"unified-search-modal__filters-applied\">\n\t\t\t\t\t<FilterChip v-for=\"filter in filters\"\n\t\t\t\t\t\t:key=\"filter.id\"\n\t\t\t\t\t\t:text=\"filter.name ?? filter.text\"\n\t\t\t\t\t\t:pretext=\"''\"\n\t\t\t\t\t\t@delete=\"removeFilter(filter)\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcAvatar v-if=\"filter.type === 'person'\"\n\t\t\t\t\t\t\t\t:user=\"filter.user\"\n\t\t\t\t\t\t\t\t:size=\"24\"\n\t\t\t\t\t\t\t\t:disable-menu=\"true\"\n\t\t\t\t\t\t\t\t:show-user-status=\"false\"\n\t\t\t\t\t\t\t\t:hide-favorite=\"false\" />\n\t\t\t\t\t\t\t<CalendarRangeIcon v-else-if=\"filter.type === 'date'\" />\n\t\t\t\t\t\t\t<img v-else :src=\"filter.icon\" alt=\"\">\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</FilterChip>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-if=\"noContentInfo.show\" class=\"unified-search-modal__no-content\">\n\t\t\t\t<NcEmptyContent :name=\"noContentInfo.text\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<component :is=\"noContentInfo.icon\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\t\t\t<div v-else class=\"unified-search-modal__results\">\n\t\t\t\t<div v-for=\"providerResult in results\" :key=\"providerResult.id\" class=\"result\">\n\t\t\t\t\t<div class=\"result-title\">\n\t\t\t\t\t\t<span>{{ providerResult.provider }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<ul class=\"result-items\">\n\t\t\t\t\t\t<SearchResult v-for=\"(result, index) in providerResult.results\" :key=\"index\" v-bind=\"result\" />\n\t\t\t\t\t</ul>\n\t\t\t\t\t<div class=\"result-footer\">\n\t\t\t\t\t\t<NcButton type=\"tertiary-no-background\" @click=\"loadMoreResultsForProvider(providerResult.id)\">\n\t\t\t\t\t\t\t{{ t('core', 'Load more results') }}\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<DotsHorizontalIcon :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t<NcButton v-if=\"providerResult.inAppSearch\" alignment=\"end-reverse\" type=\"tertiary-no-background\">\n\t\t\t\t\t\t\t{{ t('core', 'Search in') }} {{ providerResult.provider }}\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<ArrowRight :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</NcModal>\n</template>\n\n<script>\nimport ArrowRight from 'vue-material-design-icons/ArrowRight.vue'\nimport AccountGroup from 'vue-material-design-icons/AccountGroup.vue'\nimport CalendarRangeIcon from 'vue-material-design-icons/CalendarRange.vue'\nimport CustomDateRangeModal from '../components/UnifiedSearch/CustomDateRangeModal.vue'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\nimport FilterIcon from 'vue-material-design-icons/Filter.vue'\nimport FilterChip from '../components/UnifiedSearch/SearchFilterChip.vue'\nimport ListBox from 'vue-material-design-icons/ListBox.vue'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\nimport MagnifyIcon from 'vue-material-design-icons/Magnify.vue'\nimport SearchableList from '../components/UnifiedSearch/SearchableList.vue'\nimport SearchResult from '../components/UnifiedSearch/SearchResult.vue'\n\nimport debounce from 'debounce'\nimport { emit, subscribe } from '@nextcloud/event-bus'\nimport { useBrowserLocation } from '@vueuse/core'\nimport { getProviders, search as unifiedSearch, getContacts } from '../services/UnifiedSearchService.js'\nimport { useSearchStore } from '../store/unified-search-external-filters.js'\n\nexport default {\n\tname: 'UnifiedSearchModal',\n\tcomponents: {\n\t\tArrowRight,\n\t\tAccountGroup,\n\t\tCalendarRangeIcon,\n\t\tCustomDateRangeModal,\n\t\tDotsHorizontalIcon,\n\t\tFilterIcon,\n\t\tFilterChip,\n\t\tListBox,\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tNcEmptyContent,\n\t\tNcModal,\n\t\tNcInputField,\n\t\tMagnifyIcon,\n\t\tSearchableList,\n\t\tSearchResult,\n\t},\n\tprops: {\n\t\tisVisible: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tsetup() {\n\t\t/**\n\t\t * Reactive version of window.location\n\t\t */\n\t\tconst currentLocation = useBrowserLocation()\n\t\tconst searchStore = useSearchStore()\n\t\treturn {\n\t\t\tcurrentLocation,\n\t\t\texternalFilters: searchStore.externalFilters,\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tproviders: [],\n\t\t\tproviderActionMenuIsOpen: false,\n\t\t\tdateActionMenuIsOpen: false,\n\t\t\tproviderResultLimit: 5,\n\t\t\tdateFilter: { id: 'date', type: 'date', text: '', startFrom: null, endAt: null },\n\t\t\tpersonFilter: { id: 'person', type: 'person', name: '' },\n\t\t\tdateFilterIsApplied: false,\n\t\t\tpersonFilterIsApplied: false,\n\t\t\tfilteredProviders: [],\n\t\t\tsearching: false,\n\t\t\tsearchQuery: '',\n\t\t\tplacessearchTerm: '',\n\t\t\tdateTimeFilter: null,\n\t\t\tfilters: [],\n\t\t\tresults: [],\n\t\t\tcontacts: [],\n\t\t\tdebouncedFind: debounce(this.find, 300),\n\t\t\tdebouncedFilterContacts: debounce(this.filterContacts, 300),\n\t\t\tshowDateRangeModal: false,\n\t\t\tinternalIsVisible: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tuserContacts() {\n\t\t\treturn this.contacts\n\t\t},\n\t\tnoContentInfo() {\n\t\t\tconst isEmptySearch = this.searchQuery.length === 0\n\t\t\tconst hasNoResults = this.searchQuery.length > 0 && this.results.length === 0\n\t\t\treturn {\n\t\t\t\tshow: isEmptySearch || hasNoResults,\n\t\t\t\ttext: this.searching && hasNoResults ? t('core', 'Searching …') : (isEmptySearch ? t('core', 'Start typing to search') : t('core', 'No matching results')),\n\t\t\t\ticon: MagnifyIcon,\n\t\t\t}\n\t\t},\n\t\tsupportFiltering() {\n\t\t\t/* Hard coded apps for the moment this would be improved in coming updates. */\n\t\t\tconst providerPaths = ['/settings/users', '/apps/files', '/apps/deck']\n\t\t\treturn providerPaths.some((path) => this.currentLocation.pathname?.includes?.(path))\n\t\t},\n\t},\n\twatch: {\n\t\tisVisible(value) {\n\t\t\tif (value) {\n\t\t\t\t/*\n\t\t\t\t * Before setting the search UI to visible, reset previous search event emissions.\n\t\t\t\t * This allows apps to restore defaults after \"Filter in current view\" if the user opens the search interface once more.\n\t\t\t\t * Additionally, it's a new search, so it's better to reset all previous events emitted.\n\t\t\t\t */\n\t\t\t\temit('nextcloud:unified-search.reset', { query: '' })\n\t\t\t}\n\t\t\tthis.internalIsVisible = value\n\t\t},\n\t\tinternalIsVisible(value) {\n\t\t\tthis.$emit('update:isVisible', value)\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tif (value) {\n\t\t\t\t\tthis.focusInput()\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t},\n\tmounted() {\n\t\tsubscribe('nextcloud:unified-search:add-filter', this.handlePluginFilter)\n\t\tgetProviders().then((providers) => {\n\t\t\tthis.providers = providers\n\t\t\tthis.externalFilters.forEach(filter => {\n\t\t\t\tthis.providers.push(filter)\n\t\t\t})\n\t\t\tthis.providers = this.groupProvidersByApp(this.providers)\n\t\t\tconsole.debug('Search providers', this.providers)\n\t\t})\n\t\tgetContacts({ searchTerm: '' }).then((contacts) => {\n\t\t\tthis.contacts = this.mapContacts(contacts)\n\t\t\tconsole.debug('Contacts', this.contacts)\n\t\t})\n\t},\n\tmethods: {\n\t\tfind(query) {\n\t\t\tthis.searching = true\n\t\t\tif (query.length === 0) {\n\t\t\t\tthis.results = []\n\t\t\t\tthis.searching = false\n\t\t\t\temit('nextcloud:unified-search.reset', { query })\n\t\t\t\treturn\n\t\t\t}\n\t\t\temit('nextcloud:unified-search.search', { query })\n\t\t\tconst newResults = []\n\t\t\tconst providersToSearch = this.filteredProviders.length > 0 ? this.filteredProviders : this.providers\n\t\t\tconst searchProvider = (provider, filters) => {\n\t\t\t\tconst params = {\n\t\t\t\t\ttype: provider.id,\n\t\t\t\t\tquery,\n\t\t\t\t\tcursor: null,\n\t\t\t\t\textraQueries: provider.extraParams,\n\t\t\t\t}\n\n\t\t\t\tif (filters.dateFilterIsApplied) {\n\t\t\t\t\tif (provider.filters.since && provider.filters.until) {\n\t\t\t\t\t\tparams.since = this.dateFilter.startFrom\n\t\t\t\t\t\tparams.until = this.dateFilter.endAt\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Date filter is applied but provider does not support it, no need to search provider\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (filters.personFilterIsApplied) {\n\t\t\t\t\tif (provider.filters.person) {\n\t\t\t\t\t\tparams.person = this.personFilter.user\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Person filter is applied but provider does not support it, no need to search provider\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.providerResultLimit > 5) {\n\t\t\t\t\tparams.limit = this.providerResultLimit\n\t\t\t\t}\n\n\t\t\t\tconst request = unifiedSearch(params).request\n\n\t\t\t\trequest().then((response) => {\n\t\t\t\t\tnewResults.push({\n\t\t\t\t\t\tid: provider.id,\n\t\t\t\t\t\tprovider: provider.name,\n\t\t\t\t\t\tinAppSearch: provider.inAppSearch,\n\t\t\t\t\t\tresults: response.data.ocs.data.entries,\n\t\t\t\t\t})\n\n\t\t\t\t\tconsole.debug('New results', newResults)\n\t\t\t\t\tconsole.debug('Unified search results:', this.results)\n\n\t\t\t\t\tthis.updateResults(newResults)\n\t\t\t\t\tthis.searching = false\n\t\t\t\t})\n\t\t\t}\n\t\t\tprovidersToSearch.forEach(provider => {\n\t\t\t\tconst dateFilterIsApplied = this.dateFilterIsApplied\n\t\t\t\tconst personFilterIsApplied = this.personFilterIsApplied\n\t\t\t\tsearchProvider(provider, { dateFilterIsApplied, personFilterIsApplied })\n\t\t\t})\n\n\t\t},\n\t\tupdateResults(newResults) {\n\t\t\tlet updatedResults = [...this.results]\n\t\t\t// If filters are applied, remove any previous results for providers that are not in current filters\n\t\t\tif (this.filters.length > 0) {\n\t\t\t\tupdatedResults = updatedResults.filter(result => {\n\t\t\t\t\treturn this.filters.some(filter => filter.id === result.id)\n\t\t\t\t})\n\t\t\t}\n\t\t\t// Process the new results\n\t\t\tnewResults.forEach(newResult => {\n\t\t\t\tconst existingResultIndex = updatedResults.findIndex(result => result.id === newResult.id)\n\t\t\t\tif (existingResultIndex !== -1) {\n\t\t\t\t\tif (newResult.results.length === 0) {\n\t\t\t\t\t\t// If the new results data has no matches for and existing result, remove the existing result\n\t\t\t\t\t\tupdatedResults.splice(existingResultIndex, 1)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If input triggered a change in existing results, update existing result\n\t\t\t\t\t\tupdatedResults.splice(existingResultIndex, 1, newResult)\n\t\t\t\t\t}\n\t\t\t\t} else if (newResult.results.length > 0) {\n\t\t\t\t\t// Push the new result to the array only if its results array is not empty\n\t\t\t\t\tupdatedResults.push(newResult)\n\t\t\t\t}\n\t\t\t})\n\t\t\tconst sortedResults = updatedResults.slice(0)\n\t\t\t// Order results according to provider preference\n\t\t\tsortedResults.sort((a, b) => {\n\t\t\t\tconst aProvider = this.providers.find(provider => provider.id === a.id)\n\t\t\t\tconst bProvider = this.providers.find(provider => provider.id === b.id)\n\t\t\t\tconst aOrder = aProvider ? aProvider.order : 0\n\t\t\t\tconst bOrder = bProvider ? bProvider.order : 0\n\t\t\t\treturn aOrder - bOrder\n\t\t\t})\n\t\t\tthis.results = sortedResults\n\t\t},\n\t\tmapContacts(contacts) {\n\t\t\treturn contacts.map(contact => {\n\t\t\t\treturn {\n\t\t\t\t\t// id: contact.id,\n\t\t\t\t\t// name: '',\n\t\t\t\t\tdisplayName: contact.fullName,\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: contact.emailAddresses[0] ? contact.emailAddresses[0] : '',\n\t\t\t\t\ticon: '',\n\t\t\t\t\tuser: contact.id,\n\t\t\t\t\tisUser: contact.isUser,\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t\tfilterContacts(query) {\n\t\t\tgetContacts({ searchTerm: query }).then((contacts) => {\n\t\t\t\tthis.contacts = this.mapContacts(contacts)\n\t\t\t\tconsole.debug(`Contacts filtered by ${query}`, this.contacts)\n\t\t\t})\n\t\t},\n\t\tapplyPersonFilter(person) {\n\t\t\tthis.personFilterIsApplied = true\n\t\t\tconst existingPersonFilter = this.filters.findIndex(filter => filter.id === person.id)\n\t\t\tif (existingPersonFilter === -1) {\n\t\t\t\tthis.personFilter.id = person.id\n\t\t\t\tthis.personFilter.user = person.user\n\t\t\t\tthis.personFilter.name = person.displayName\n\t\t\t\tthis.filters.push(this.personFilter)\n\t\t\t} else {\n\t\t\t\tthis.filters[existingPersonFilter].id = person.id\n\t\t\t\tthis.filters[existingPersonFilter].user = person.user\n\t\t\t\tthis.filters[existingPersonFilter].name = person.displayName\n\t\t\t}\n\n\t\t\tthis.debouncedFind(this.searchQuery)\n\t\t\tconsole.debug('Person filter applied', person)\n\t\t},\n\t\tloadMoreResultsForProvider(providerId) {\n\t\t\tthis.providerResultLimit += 5\n\t\t\tthis.filters = this.filters.filter(filter => filter.type !== 'provider')\n\t\t\tconst provider = this.providers.find(provider => provider.id === providerId)\n\t\t\tthis.addProviderFilter(provider, true)\n\t\t},\n\t\taddProviderFilter(providerFilter, loadMoreResultsForProvider = false) {\n\t\t\tif (!providerFilter.id) return\n\t\t\tif (providerFilter.isPluginFilter) {\n\t\t\t\tproviderFilter.callback()\n\t\t\t}\n\t\t\tthis.providerResultLimit = loadMoreResultsForProvider ? this.providerResultLimit : 5\n\t\t\tthis.providerActionMenuIsOpen = false\n\t\t\t// With the possibility for other apps to add new filters\n\t\t\t// Resulting in a possible id/provider collision\n\t\t\t// If a user tries to apply a filter that seems to already exist, we remove the current one and add the new one.\n\t\t\tconst existingFilterIndex = this.filteredProviders.findIndex(existing => existing.id === providerFilter.id)\n\t\t\tif (existingFilterIndex > -1) {\n\t\t\t\tthis.filteredProviders.splice(existingFilterIndex, 1)\n\t\t\t\tthis.filters = this.syncProviderFilters(this.filters, this.filteredProviders)\n\t\t\t}\n\t\t\tthis.filteredProviders.push({\n\t\t\t\tid: providerFilter.id,\n\t\t\t\tname: providerFilter.name,\n\t\t\t\ticon: providerFilter.icon,\n\t\t\t\ttype: providerFilter.type || 'provider',\n\t\t\t\tfilters: providerFilter.filters,\n\t\t\t\tisPluginFilter: providerFilter.isPluginFilter || false,\n\t\t\t})\n\t\t\tthis.filters = this.syncProviderFilters(this.filters, this.filteredProviders)\n\t\t\tconsole.debug('Search filters (newly added)', this.filters)\n\t\t\tthis.debouncedFind(this.searchQuery)\n\t\t},\n\t\tremoveFilter(filter) {\n\t\t\tif (filter.type === 'provider') {\n\t\t\t\tfor (let i = 0; i < this.filteredProviders.length; i++) {\n\t\t\t\t\tif (this.filteredProviders[i].id === filter.id) {\n\t\t\t\t\t\tthis.filteredProviders.splice(i, 1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.filters = this.syncProviderFilters(this.filters, this.filteredProviders)\n\t\t\t\tconsole.debug('Search filters (recently removed)', this.filters)\n\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < this.filters.length; i++) {\n\t\t\t\t\t// Remove date and person filter\n\t\t\t\t\tif (this.filters[i].id === 'date' || this.filters[i].id === filter.id) {\n\t\t\t\t\t\tthis.dateFilterIsApplied = false\n\t\t\t\t\t\tthis.filters.splice(i, 1)\n\t\t\t\t\t\tif (filter.type === 'person') {\n\t\t\t\t\t\t\tthis.personFilterIsApplied = false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.debouncedFind(this.searchQuery)\n\t\t},\n\t\tsyncProviderFilters(firstArray, secondArray) {\n\t\t\t// Create a copy of the first array to avoid modifying it directly.\n\t\t\tconst synchronizedArray = firstArray.slice()\n\t\t\t// Remove items from the synchronizedArray that are not in the secondArray.\n\t\t\tsynchronizedArray.forEach((item, index) => {\n\t\t\t\tconst itemId = item.id\n\t\t\t\tif (item.type === 'provider') {\n\t\t\t\t\tif (!secondArray.some(secondItem => secondItem.id === itemId)) {\n\t\t\t\t\t\tsynchronizedArray.splice(index, 1)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Add items to the synchronizedArray that are in the secondArray but not in the firstArray.\n\t\t\tsecondArray.forEach(secondItem => {\n\t\t\t\tconst itemId = secondItem.id\n\t\t\t\tif (secondItem.type === 'provider') {\n\t\t\t\t\tif (!synchronizedArray.some(item => item.id === itemId)) {\n\t\t\t\t\t\tsynchronizedArray.push(secondItem)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn synchronizedArray\n\t\t},\n\t\tupdateDateFilter() {\n\t\t\tconst currFilterIndex = this.filters.findIndex(filter => filter.id === 'date')\n\t\t\tif (currFilterIndex !== -1) {\n\t\t\t\tthis.filters[currFilterIndex] = this.dateFilter\n\t\t\t} else {\n\t\t\t\tthis.filters.push(this.dateFilter)\n\t\t\t}\n\t\t\tthis.dateFilterIsApplied = true\n\t\t\tthis.debouncedFind(this.searchQuery)\n\t\t},\n\t\tapplyQuickDateRange(range) {\n\t\t\tthis.dateActionMenuIsOpen = false\n\t\t\tconst today = new Date()\n\t\t\tlet startDate\n\t\t\tlet endDate\n\n\t\t\tswitch (range) {\n\t\t\tcase 'today':\n\t\t\t\t// For 'Today', both start and end are set to today\n\t\t\t\tstartDate = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0, 0)\n\t\t\t\tendDate = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 23, 59, 59, 999)\n\t\t\t\tthis.dateFilter.text = t('core', 'Today')\n\t\t\t\tbreak\n\t\t\tcase '7days':\n\t\t\t\t// For 'Last 7 days', start date is 7 days ago, end is today\n\t\t\t\tstartDate = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 6, 0, 0, 0, 0)\n\t\t\t\tthis.dateFilter.text = t('core', 'Last 7 days')\n\t\t\t\tbreak\n\t\t\tcase '30days':\n\t\t\t\t// For 'Last 30 days', start date is 30 days ago, end is today\n\t\t\t\tstartDate = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 29, 0, 0, 0, 0)\n\t\t\t\tthis.dateFilter.text = t('core', 'Last 30 days')\n\t\t\t\tbreak\n\t\t\tcase 'thisyear':\n\t\t\t\t// For 'This year', start date is the first day of the year, end is the last day of the year\n\t\t\t\tstartDate = new Date(today.getFullYear(), 0, 1, 0, 0, 0, 0)\n\t\t\t\tendDate = new Date(today.getFullYear(), 11, 31, 23, 59, 59, 999)\n\t\t\t\tthis.dateFilter.text = t('core', 'This year')\n\t\t\t\tbreak\n\t\t\tcase 'lastyear':\n\t\t\t\t// For 'Last year', start date is the first day of the previous year, end is the last day of the previous year\n\t\t\t\tstartDate = new Date(today.getFullYear() - 1, 0, 1, 0, 0, 0, 0)\n\t\t\t\tendDate = new Date(today.getFullYear() - 1, 11, 31, 23, 59, 59, 999)\n\t\t\t\tthis.dateFilter.text = t('core', 'Last year')\n\t\t\t\tbreak\n\t\t\tcase 'custom':\n\t\t\t\tthis.showDateRangeModal = true\n\t\t\t\treturn\n\t\t\tdefault:\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.dateFilter.startFrom = startDate\n\t\t\tthis.dateFilter.endAt = endDate\n\t\t\tthis.updateDateFilter()\n\n\t\t},\n\t\tsetCustomDateRange(event) {\n\t\t\tconsole.debug('Custom date range', event)\n\t\t\tthis.dateFilter.startFrom = event.startFrom\n\t\t\tthis.dateFilter.endAt = event.endAt\n\t\t\tthis.dateFilter.text = t('core', `Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}`)\n\t\t\tthis.updateDateFilter()\n\t\t},\n\t\thandlePluginFilter(addFilterEvent) {\n\t\t\tfor (let i = 0; i < this.filteredProviders.length; i++) {\n\t\t\t\tconst provider = this.filteredProviders[i]\n\t\t\t\tif (provider.id === addFilterEvent.id) {\n\t\t\t\t\tprovider.name = addFilterEvent.filterUpdateText\n\t\t\t\t\t// Filters attached may only make sense with certain providers,\n\t\t\t\t\t// So, find the provider attached, add apply the extra parameters to those providers only\n\t\t\t\t\tconst compatibleProviderIndex = this.providers.findIndex(provider => provider.id === addFilterEvent.id)\n\t\t\t\t\tif (compatibleProviderIndex > -1) {\n\t\t\t\t\t\tprovider.extraParams = addFilterEvent.filterParams\n\t\t\t\t\t\tthis.filteredProviders[i] = provider\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.debouncedFind(this.searchQuery)\n\t\t},\n\t\tgroupProvidersByApp(filters) {\n\t\t\tconst groupedByProviderApp = {}\n\n\t\t\tfilters.forEach(filter => {\n\t\t\t\tconst provider = filter.appId ? filter.appId : 'general'\n\t\t\t\tif (!groupedByProviderApp[provider]) {\n\t\t\t\t\tgroupedByProviderApp[provider] = []\n\t\t\t\t}\n\t\t\t\tgroupedByProviderApp[provider].push(filter)\n\t\t\t})\n\n\t\t\tconst flattenedArray = []\n\t\t\tObject.values(groupedByProviderApp).forEach(group => {\n\t\t\t\tflattenedArray.push(...group)\n\t\t\t})\n\n\t\t\treturn flattenedArray\n\t\t},\n\t\tfocusInput() {\n\t\t\tthis.$refs.searchInput.$el.children[0].children[0].focus()\n\t\t},\n\t\tcloseModal() {\n\t\t\tthis.internalIsVisible = false\n\t\t\tthis.searchQuery = ''\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.unified-search-modal {\n\tbox-sizing: border-box;\n\theight: 100%;\n\tmin-height: 80vh;\n\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding-block: 10px 0;\n\n\t// inline padding on direct children to make sure the scrollbar is on the modal container\n\t>* {\n\t\tpadding-inline: 20px;\n\t}\n\n\t&__header {\n\t\tpadding-block-end: 8px;\n\t}\n\n\t&__heading {\n\t\tfont-size: 16px;\n\t\tfont-weight: bolder;\n\t\tline-height: 2em;\n\t\tmargin-bottom: 0;\n\t}\n\n\t&__filters {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tgap: 4px;\n\t\tjustify-content: start;\n\t\tpadding-top: 4px;\n\t}\n\n\t&__filters-applied {\n\t\tpadding-top: 4px;\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\t&__no-content {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\theight: 100%;\n\t}\n\n\t&__results {\n\t\toverflow: hidden scroll;\n\t\tpadding-block: 0 10px;\n\n\t\t.result {\n\t\t\t&-title {\n\t\t\t\tspan {\n\t\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\t\tfont-weight: bolder;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-footer {\n\t\t\t\tjustify-content: space-between;\n\t\t\t\talign-items: center;\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\t\t}\n\n\t}\n}\n\n.filter-button__icon {\n\theight: 20px;\n\twidth: 20px;\n\tobject-fit: contain;\n\tfilter: var(--background-invert-if-bright);\n\tpadding: 11px; // align with text to fit at least 44px\n}\n\n// Ensure modal is accessible on small devices\n@media only screen and (max-height: 400px) {\n\t.unified-search-modal__results {\n\t\toverflow: unset;\n\t}\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearchModal.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!./UnifiedSearchModal.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!./UnifiedSearchModal.vue?vue&type=style&index=0&id=6ace1280&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!./UnifiedSearchModal.vue?vue&type=style&index=0&id=6ace1280&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnifiedSearchModal.vue?vue&type=template&id=6ace1280&scoped=true\"\nimport script from \"./UnifiedSearchModal.vue?vue&type=script&lang=js\"\nexport * from \"./UnifiedSearchModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./UnifiedSearchModal.vue?vue&type=style&index=0&id=6ace1280&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6ace1280\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcModal',{ref:\"unifiedSearchModal\",attrs:{\"id\":\"unified-search\",\"show\":_vm.internalIsVisible,\"clear-view-delay\":0},on:{\"update:show\":function($event){_vm.internalIsVisible=$event},\"close\":_vm.closeModal}},[_c('CustomDateRangeModal',{staticClass:\"unified-search__date-range\",attrs:{\"is-open\":_vm.showDateRangeModal},on:{\"set:custom-date-range\":_vm.setCustomDateRange,\"update:is-open\":function($event){_vm.showDateRangeModal = $event}}}),_vm._v(\" \"),_c('div',{ref:\"unifiedSearch\",staticClass:\"unified-search-modal\"},[_c('div',{staticClass:\"unified-search-modal__header\"},[_c('h2',[_vm._v(_vm._s(_vm.t('core', 'Unified search')))]),_vm._v(\" \"),_c('NcInputField',{ref:\"searchInput\",attrs:{\"data-cy-unified-search-input\":\"\",\"value\":_vm.searchQuery,\"type\":\"text\",\"label\":_vm.t('core', 'Search apps, files, tags, messages') + '...'},on:{\"update:value\":[function($event){_vm.searchQuery=$event},_vm.debouncedFind]}}),_vm._v(\" \"),_c('div',{staticClass:\"unified-search-modal__filters\",attrs:{\"data-cy-unified-search-filters\":\"\"}},[_c('NcActions',{attrs:{\"menu-name\":_vm.t('core', 'Places'),\"open\":_vm.providerActionMenuIsOpen,\"data-cy-unified-search-filter\":\"places\"},on:{\"update:open\":function($event){_vm.providerActionMenuIsOpen=$event}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ListBox',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\" \"),_vm._l((_vm.providers),function(provider){return _c('NcActionButton',{key:`${provider.id}-${provider.name.replace(/\\s/g, '')}`,on:{\"click\":function($event){return _vm.addProviderFilter(provider)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('img',{staticClass:\"filter-button__icon\",attrs:{\"src\":provider.icon,\"alt\":\"\"}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(provider.name)+\"\\n\\t\\t\\t\\t\\t\")])})],2),_vm._v(\" \"),_c('NcActions',{attrs:{\"menu-name\":_vm.t('core', 'Date'),\"open\":_vm.dateActionMenuIsOpen,\"data-cy-unified-search-filter\":\"date\"},on:{\"update:open\":function($event){_vm.dateActionMenuIsOpen=$event}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CalendarRangeIcon',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('today')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Today'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('7days')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Last 7 days'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('30days')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Last 30 days'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('thisyear')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'This year'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('lastyear')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Last year'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){return _vm.applyQuickDateRange('custom')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Custom date range'))+\"\\n\\t\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('SearchableList',{attrs:{\"label-text\":_vm.t('core', 'Search people'),\"search-list\":_vm.userContacts,\"empty-content-text\":_vm.t('core', 'Not found'),\"data-cy-unified-search-filter\":\"people\"},on:{\"search-term-change\":_vm.debouncedFilterContacts,\"item-selected\":_vm.applyPersonFilter},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountGroup',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'People'))+\"\\n\\t\\t\\t\\t\\t\\t\")])]},proxy:true}])}),_vm._v(\" \"),(_vm.supportFiltering)?_c('NcButton',{attrs:{\"data-cy-unified-search-filter\":\"current-view\"},on:{\"click\":_vm.closeModal},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('FilterIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2021673347)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Filter in current view'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"unified-search-modal__filters-applied\"},_vm._l((_vm.filters),function(filter){return _c('FilterChip',{key:filter.id,attrs:{\"text\":filter.name ?? filter.text,\"pretext\":''},on:{\"delete\":function($event){return _vm.removeFilter(filter)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(filter.type === 'person')?_c('NcAvatar',{attrs:{\"user\":filter.user,\"size\":24,\"disable-menu\":true,\"show-user-status\":false,\"hide-favorite\":false}}):(filter.type === 'date')?_c('CalendarRangeIcon'):_c('img',{attrs:{\"src\":filter.icon,\"alt\":\"\"}})]},proxy:true}],null,true)})}),1)],1),_vm._v(\" \"),(_vm.noContentInfo.show)?_c('div',{staticClass:\"unified-search-modal__no-content\"},[_c('NcEmptyContent',{attrs:{\"name\":_vm.noContentInfo.text},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_vm.noContentInfo.icon,{tag:\"component\"})]},proxy:true}],null,false,604901229)})],1):_c('div',{staticClass:\"unified-search-modal__results\"},_vm._l((_vm.results),function(providerResult){return _c('div',{key:providerResult.id,staticClass:\"result\"},[_c('div',{staticClass:\"result-title\"},[_c('span',[_vm._v(_vm._s(providerResult.provider))])]),_vm._v(\" \"),_c('ul',{staticClass:\"result-items\"},_vm._l((providerResult.results),function(result,index){return _c('SearchResult',_vm._b({key:index},'SearchResult',result,false))}),1),_vm._v(\" \"),_c('div',{staticClass:\"result-footer\"},[_c('NcButton',{attrs:{\"type\":\"tertiary-no-background\"},on:{\"click\":function($event){return _vm.loadMoreResultsForProvider(providerResult.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Load more results'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(providerResult.inAppSearch)?_c('NcButton',{attrs:{\"alignment\":\"end-reverse\",\"type\":\"tertiary-no-background\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowRight',{attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Search in'))+\" \"+_vm._s(providerResult.provider)+\"\\n\\t\\t\\t\\t\\t\\t\")]):_vm._e()],1)])}),0)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div class=\"header-menu unified-search-menu\">\n\t\t<NcButton class=\"header-menu__trigger\"\n\t\t\t:aria-label=\"t('core', 'Unified search')\"\n\t\t\ttype=\"tertiary-no-background\"\n\t\t\t@click=\"toggleUnifiedSearch\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify class=\"header-menu__trigger-icon\" :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<UnifiedSearchModal :is-visible=\"showUnifiedSearch\" @update:isVisible=\"handleModalVisibilityChange\" />\n\t</div>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport Magnify from 'vue-material-design-icons/Magnify.vue'\nimport UnifiedSearchModal from './UnifiedSearchModal.vue'\n\nexport default {\n\tname: 'UnifiedSearch',\n\tcomponents: {\n\t\tNcButton,\n\t\tMagnify,\n\t\tUnifiedSearchModal,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tshowUnifiedSearch: false,\n\t\t}\n\t},\n\tmounted() {\n\t\tconsole.debug('Unified search initialized!')\n\t},\n\tmethods: {\n\t\ttoggleUnifiedSearch() {\n\t\t\tthis.showUnifiedSearch = !this.showUnifiedSearch\n\t\t},\n\t\thandleModalVisibilityChange(newVisibilityVal) {\n\t\t\tthis.showUnifiedSearch = newVisibilityVal\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// this is needed to allow us overriding component styles (focus-visible)\n#header {\n\t.header-menu {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\t&__trigger {\n\t\t\theight: var(--header-height);\n\t\t\twidth: var(--header-height) !important;\n\n\t\t\t&:focus-visible {\n\t\t\t\t// align with other header menu entries\n\t\t\t\toutline: none !important;\n\t\t\t\tbox-shadow: none !important;\n\t\t\t}\n\n\t\t\t&:not(:hover,:focus,:focus-visible) {\n\t\t\t\topacity: .85;\n\t\t\t}\n\n\t\t\t&-icon {\n\t\t\t\t// ensure the icon has the correct color\n\t\t\t\tcolor: var(--color-background-plain-text) !important;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedSearch.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!./UnifiedSearch.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!./UnifiedSearch.vue?vue&type=style&index=0&id=fb25074a&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!./UnifiedSearch.vue?vue&type=style&index=0&id=fb25074a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnifiedSearch.vue?vue&type=template&id=fb25074a&scoped=true\"\nimport script from \"./UnifiedSearch.vue?vue&type=script&lang=js\"\nexport * from \"./UnifiedSearch.vue?vue&type=script&lang=js\"\nimport style0 from \"./UnifiedSearch.vue?vue&type=style&index=0&id=fb25074a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fb25074a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"header-menu unified-search-menu\"},[_c('NcButton',{staticClass:\"header-menu__trigger\",attrs:{\"aria-label\":_vm.t('core', 'Unified search'),\"type\":\"tertiary-no-background\"},on:{\"click\":_vm.toggleUnifiedSearch},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Magnify',{staticClass:\"header-menu__trigger-icon\",attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('UnifiedSearchModal',{attrs:{\"is-visible\":_vm.showUnifiedSearch},on:{\"update:isVisible\":_vm.handleModalVisibilityChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nimport { getRequestToken } from '@nextcloud/auth';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport Vue from 'vue';\nimport UnifiedSearch from './views/UnifiedSearch.vue';\nimport { useSearchStore } from '../src/store/unified-search-external-filters.js';\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken());\nconst logger = getLoggerBuilder()\n .setApp('unified-search')\n .detectUser()\n .build();\nVue.mixin({\n data() {\n return {\n logger,\n };\n },\n methods: {\n t,\n n,\n },\n});\n// Register the add/register filter action API globally\nwindow.OCA = window.OCA || {};\nwindow.OCA.UnifiedSearch = {\n registerFilterAction: ({ id, appId, label, callback, icon }) => {\n const searchStore = useSearchStore();\n searchStore.registerExternalFilter({ id, appId, label, callback, icon });\n },\n};\nVue.use(PiniaVuePlugin);\nconst pinia = createPinia();\nexport default new Vue({\n el: '#unified-search',\n pinia,\n // eslint-disable-next-line vue/match-component-file-name\n name: 'UnifiedSearchRoot',\n render: h => h(UnifiedSearch),\n});\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, `.unified-search-custom-date-modal[data-v-54c43949]{padding:10px 20px 10px 20px}.unified-search-custom-date-modal h1[data-v-54c43949]{font-size:16px;font-weight:bolder;line-height:2em}.unified-search-custom-date-modal__pickers[data-v-54c43949]{display:flex;flex-direction:column}.unified-search-custom-date-modal__footer[data-v-54c43949]{display:flex;justify-content:end}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/CustomDateRangeModal.vue\"],\"names\":[],\"mappings\":\"AACA,mDACC,2BAAA,CAEA,sDACC,cAAA,CACA,kBAAA,CACA,eAAA,CAGD,4DACC,YAAA,CACA,qBAAA,CAGD,2DACC,YAAA,CACA,mBAAA\",\"sourcesContent\":[\"\\n.unified-search-custom-date-modal {\\n\\tpadding: 10px 20px 10px 20px;\\n\\n\\th1 {\\n\\t\\tfont-size: 16px;\\n\\t\\tfont-weight: bolder;\\n\\t\\tline-height: 2em;\\n\\t}\\n\\n\\t&__pickers {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n\\t&__footer {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: end;\\n\\t}\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chip[data-v-9a2b627a]{display:flex;align-items:center;padding:2px 4px;border:1px solid var(--color-primary-element-light);border-radius:20px;background-color:var(--color-primary-element-light);margin:2px}.chip .icon[data-v-9a2b627a]{display:flex;align-items:center;padding-right:5px}.chip .icon img[data-v-9a2b627a]{width:20px;padding:2px;border-radius:20px;filter:var(--background-invert-if-bright)}.chip .text[data-v-9a2b627a]{margin:0 2px}.chip .close-icon[data-v-9a2b627a]{cursor:pointer}.chip .close-icon[data-v-9a2b627a] :hover{filter:invert(20%)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/SearchFilterChip.vue\"],\"names\":[],\"mappings\":\"AACA,uBACI,YAAA,CACA,kBAAA,CACA,eAAA,CACA,mDAAA,CACA,kBAAA,CACA,mDAAA,CACA,UAAA,CAEA,6BACI,YAAA,CACA,kBAAA,CACA,iBAAA,CAEA,iCACI,UAAA,CACA,WAAA,CACA,kBAAA,CACA,yCAAA,CAIR,6BACI,YAAA,CAGJ,mCACI,cAAA,CAEA,0CACI,kBAAA\",\"sourcesContent\":[\"\\n.chip {\\n display: flex;\\n align-items: center;\\n padding: 2px 4px;\\n border: 1px solid var(--color-primary-element-light);\\n border-radius: 20px;\\n background-color: var(--color-primary-element-light);\\n margin: 2px;\\n\\n .icon {\\n display: flex;\\n align-items: center;\\n padding-right: 5px;\\n\\n img {\\n width: 20px;\\n padding: 2px;\\n border-radius: 20px;\\n filter: var(--background-invert-if-bright);\\n }\\n }\\n\\n .text {\\n margin: 0 2px;\\n }\\n\\n .close-icon {\\n cursor: pointer ;\\n\\n :hover {\\n filter: invert(20%);\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.result-items__item[data-v-60a5b225] a{border-radius:12px;border:2px solid rgba(0,0,0,0);border-radius:var(--border-radius-large) !important}.result-items__item[data-v-60a5b225] a--focused{background-color:var(--color-background-hover)}.result-items__item[data-v-60a5b225] a:active,.result-items__item[data-v-60a5b225] a:hover,.result-items__item[data-v-60a5b225] a:focus{background-color:var(--color-background-hover);border:2px solid var(--color-border-maxcontrast)}.result-items__item[data-v-60a5b225] a *{cursor:pointer}.result-items__item-icon[data-v-60a5b225]{overflow:hidden;width:44px;height:44px;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center center;background-size:32px}.result-items__item-icon--rounded[data-v-60a5b225]{border-radius:22px}.result-items__item-icon--no-preview[data-v-60a5b225]{background-size:32px}.result-items__item-icon--with-thumbnail[data-v-60a5b225]{background-size:cover}.result-items__item-icon--with-thumbnail[data-v-60a5b225]:not(.result-items__item-icon--rounded){max-width:42px;max-height:42px;border:1px solid var(--color-border)}.result-items__item-icon img[data-v-60a5b225]{width:100%;height:100%;object-fit:cover;object-position:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/SearchResult.vue\"],\"names\":[],\"mappings\":\"AAQI,uCACQ,kBAAA,CACA,8BAAA,CACA,mDAAA,CAEA,gDACI,8CAAA,CAGJ,wIAGI,8CAAA,CACA,gDAAA,CAGJ,yCACI,cAAA,CAKR,0CACI,eAAA,CACA,UA9BK,CA+BL,WA/BK,CAgCL,kCAAA,CACA,2BAAA,CACA,iCAAA,CACA,oBAAA,CAEA,mDACI,kBAAA,CAGJ,sDACI,oBAAA,CAGJ,0DACI,qBAAA,CAGJ,iGAEI,cAAA,CACA,eAAA,CACA,oCAAA,CAGJ,8CAEI,UAAA,CACA,WAAA,CAEA,gBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n$clickable-area: 44px;\\n$margin: 10px;\\n\\n.result-items {\\n &__item {\\n\\n ::v-deep a {\\n border-radius: 12px;\\n border: 2px solid transparent;\\n border-radius: var(--border-radius-large) !important;\\n\\n &--focused {\\n background-color: var(--color-background-hover);\\n }\\n\\n &:active,\\n &:hover,\\n &:focus {\\n background-color: var(--color-background-hover);\\n border: 2px solid var(--color-border-maxcontrast);\\n }\\n\\n * {\\n cursor: pointer;\\n }\\n\\n }\\n\\n &-icon {\\n overflow: hidden;\\n width: $clickable-area;\\n height: $clickable-area;\\n border-radius: var(--border-radius);\\n background-repeat: no-repeat;\\n background-position: center center;\\n background-size: 32px;\\n\\n &--rounded {\\n border-radius: math.div($clickable-area, 2);\\n }\\n\\n &--no-preview {\\n background-size: 32px;\\n }\\n\\n &--with-thumbnail {\\n background-size: cover;\\n }\\n\\n &--with-thumbnail:not(&--rounded) {\\n // compensate for border\\n max-width: $clickable-area - 2px;\\n max-height: $clickable-area - 2px;\\n border: 1px solid var(--color-border);\\n }\\n\\n img {\\n // Make sure to keep ratio\\n width: 100%;\\n height: 100%;\\n\\n object-fit: cover;\\n object-position: center;\\n }\\n }\\n\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.searchable-list__wrapper[data-v-62560aa0]{padding:calc(var(--default-grid-baseline)*3);display:flex;flex-direction:column;align-items:center;width:250px}.searchable-list__list[data-v-62560aa0]{width:100%;max-height:284px;overflow-y:auto;margin-top:var(--default-grid-baseline);padding:var(--default-grid-baseline)}.searchable-list__list[data-v-62560aa0] .button-vue{border-radius:var(--border-radius-large) !important}.searchable-list__list[data-v-62560aa0] .button-vue span{font-weight:initial}.searchable-list__empty-content[data-v-62560aa0]{margin-top:calc(var(--default-grid-baseline)*3)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/SearchableList.vue\"],\"names\":[],\"mappings\":\"AAEC,2CACC,4CAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,WAAA,CAGD,wCACC,UAAA,CACA,gBAAA,CACA,eAAA,CACA,uCAAA,CACA,oCAAA,CAEA,oDACC,mDAAA,CACA,yDACC,mBAAA,CAKH,iDACC,+CAAA\",\"sourcesContent\":[\"\\n.searchable-list {\\n\\t&__wrapper {\\n\\t\\tpadding: calc(var(--default-grid-baseline) * 3);\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\twidth: 250px;\\n\\t}\\n\\n\\t&__list {\\n\\t\\twidth: 100%;\\n\\t\\tmax-height: 284px;\\n\\t\\toverflow-y: auto;\\n\\t\\tmargin-top: var(--default-grid-baseline);\\n\\t\\tpadding: var(--default-grid-baseline);\\n\\n\\t\\t:deep(.button-vue) {\\n\\t\\t\\tborder-radius: var(--border-radius-large) !important;\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tfont-weight: initial;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__empty-content {\\n\\t\\tmargin-top: calc(var(--default-grid-baseline) * 3);\\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, `#header .header-menu[data-v-fb25074a]{display:flex;align-items:center;justify-content:center}#header .header-menu__trigger[data-v-fb25074a]{height:var(--header-height);width:var(--header-height) !important}#header .header-menu__trigger[data-v-fb25074a]:focus-visible{outline:none !important;box-shadow:none !important}#header .header-menu__trigger[data-v-fb25074a]:not(:hover,:focus,:focus-visible){opacity:.85}#header .header-menu__trigger-icon[data-v-fb25074a]{color:var(--color-background-plain-text) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnifiedSearch.vue\"],\"names\":[],\"mappings\":\"AAGC,sCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,+CACC,2BAAA,CACA,qCAAA,CAEA,6DAEC,uBAAA,CACA,0BAAA,CAGD,iFACC,WAAA,CAGD,oDAEC,mDAAA\",\"sourcesContent\":[\"\\n// this is needed to allow us overriding component styles (focus-visible)\\n#header {\\n\\t.header-menu {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\n\\t\\t&__trigger {\\n\\t\\t\\theight: var(--header-height);\\n\\t\\t\\twidth: var(--header-height) !important;\\n\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\t// align with other header menu entries\\n\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\tbox-shadow: none !important;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:not(:hover,:focus,:focus-visible) {\\n\\t\\t\\t\\topacity: .85;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-icon {\\n\\t\\t\\t\\t// ensure the icon has the correct color\\n\\t\\t\\t\\tcolor: var(--color-background-plain-text) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search-modal[data-v-6ace1280]{box-sizing:border-box;height:100%;min-height:80vh;display:flex;flex-direction:column;padding-block:10px 0}.unified-search-modal>*[data-v-6ace1280]{padding-inline:20px}.unified-search-modal__header[data-v-6ace1280]{padding-block-end:8px}.unified-search-modal__heading[data-v-6ace1280]{font-size:16px;font-weight:bolder;line-height:2em;margin-bottom:0}.unified-search-modal__filters[data-v-6ace1280]{display:flex;flex-wrap:wrap;gap:4px;justify-content:start;padding-top:4px}.unified-search-modal__filters-applied[data-v-6ace1280]{padding-top:4px;display:flex;flex-wrap:wrap}.unified-search-modal__no-content[data-v-6ace1280]{display:flex;align-items:center;height:100%}.unified-search-modal__results[data-v-6ace1280]{overflow:hidden scroll;padding-block:0 10px}.unified-search-modal__results .result-title span[data-v-6ace1280]{color:var(--color-primary-element);font-weight:bolder;font-size:16px}.unified-search-modal__results .result-footer[data-v-6ace1280]{justify-content:space-between;align-items:center;display:flex}.filter-button__icon[data-v-6ace1280]{height:20px;width:20px;object-fit:contain;filter:var(--background-invert-if-bright);padding:11px}@media only screen and (max-height: 400px){.unified-search-modal__results[data-v-6ace1280]{overflow:unset}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnifiedSearchModal.vue\"],\"names\":[],\"mappings\":\"AACA,uCACC,qBAAA,CACA,WAAA,CACA,eAAA,CAEA,YAAA,CACA,qBAAA,CACA,oBAAA,CAGA,yCACC,mBAAA,CAGD,+CACC,qBAAA,CAGD,gDACC,cAAA,CACA,kBAAA,CACA,eAAA,CACA,eAAA,CAGD,gDACC,YAAA,CACA,cAAA,CACA,OAAA,CACA,qBAAA,CACA,eAAA,CAGD,wDACC,eAAA,CACA,YAAA,CACA,cAAA,CAGD,mDACC,YAAA,CACA,kBAAA,CACA,WAAA,CAGD,gDACC,sBAAA,CACA,oBAAA,CAIE,mEACC,kCAAA,CACA,kBAAA,CACA,cAAA,CAIF,+DACC,6BAAA,CACA,kBAAA,CACA,YAAA,CAOJ,sCACC,WAAA,CACA,UAAA,CACA,kBAAA,CACA,yCAAA,CACA,YAAA,CAID,2CACC,gDACC,cAAA,CAAA\",\"sourcesContent\":[\"\\n.unified-search-modal {\\n\\tbox-sizing: border-box;\\n\\theight: 100%;\\n\\tmin-height: 80vh;\\n\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tpadding-block: 10px 0;\\n\\n\\t// inline padding on direct children to make sure the scrollbar is on the modal container\\n\\t>* {\\n\\t\\tpadding-inline: 20px;\\n\\t}\\n\\n\\t&__header {\\n\\t\\tpadding-block-end: 8px;\\n\\t}\\n\\n\\t&__heading {\\n\\t\\tfont-size: 16px;\\n\\t\\tfont-weight: bolder;\\n\\t\\tline-height: 2em;\\n\\t\\tmargin-bottom: 0;\\n\\t}\\n\\n\\t&__filters {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tgap: 4px;\\n\\t\\tjustify-content: start;\\n\\t\\tpadding-top: 4px;\\n\\t}\\n\\n\\t&__filters-applied {\\n\\t\\tpadding-top: 4px;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t}\\n\\n\\t&__no-content {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\theight: 100%;\\n\\t}\\n\\n\\t&__results {\\n\\t\\toverflow: hidden scroll;\\n\\t\\tpadding-block: 0 10px;\\n\\n\\t\\t.result {\\n\\t\\t\\t&-title {\\n\\t\\t\\t\\tspan {\\n\\t\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t\\t\\tfont-weight: bolder;\\n\\t\\t\\t\\t\\tfont-size: 16px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-footer {\\n\\t\\t\\t\\tjustify-content: space-between;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t}\\n}\\n\\n.filter-button__icon {\\n\\theight: 20px;\\n\\twidth: 20px;\\n\\tobject-fit: contain;\\n\\tfilter: var(--background-invert-if-bright);\\n\\tpadding: 11px; // align with text to fit at least 44px\\n}\\n\\n// Ensure modal is accessible on small devices\\n@media only screen and (max-height: 400px) {\\n\\t.unified-search-modal__results {\\n\\t\\toverflow: unset;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\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 = 6776;","__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\t6776: 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, [4208], () => (__webpack_require__(42557)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","components","NcButton","NcModal","CalendarRangeIcon","NcDateTimePicker","isOpen","Boolean","required","data","dateFilter","startFrom","endAt","computed","isModalOpen","get","set","value","methods","closeModal","applyCustomRange","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","t","model","callback","$$v","$set","expression","scopedSlots","_u","key","fn","proxy","CloseIcon","text","pretext","deleteChip","filter","_t","length","A","N","Symbol","toStringTag","NcPopover","NcTextField","Magnify","AlertCircleOutline","NcAvatar","NcEmptyContent","labelText","searchList","Array","emptyContentText","opened","error","searchTerm","filteredList","element","toLowerCase","some","prop","includes","clearSearch","itemSelected","searchTermChanged","term","_l","id","displayName","isUser","user","NcListItem","thumbnailUrl","subline","resourceUrl","icon","rounded","query","focused","thumbnailHasError","watch","isValidIconOrPreviewUrl","url","test","startsWith","thumbnailErrorHandler","class","style","backgroundImage","concat","async","getContacts","_ref2","contacts","axios","post","generateUrl","authenticatedUser","getCurrentUser","uid","fullName","emailAddresses","unshift","useSearchStore","defineStore","state","externalFilters","actions","registerExternalFilter","_ref","appId","label","push","isPluginFilter","ArrowRight","AccountGroup","CustomDateRangeModal","DotsHorizontalIcon","FilterIcon","FilterChip","ListBox","NcActions","NcActionButton","NcInputField","MagnifyIcon","SearchableList","SearchResult","isVisible","setup","currentLocation","useBrowserLocation","providers","providerActionMenuIsOpen","dateActionMenuIsOpen","providerResultLimit","personFilter","dateFilterIsApplied","personFilterIsApplied","filteredProviders","searching","searchQuery","placessearchTerm","dateTimeFilter","filters","results","debouncedFind","debounce","find","debouncedFilterContacts","filterContacts","showDateRangeModal","internalIsVisible","userContacts","noContentInfo","isEmptySearch","hasNoResults","show","supportFiltering","path","_this$currentLocation","_this$currentLocation2","pathname","call","emit","$nextTick","focusInput","mounted","subscribe","handlePluginFilter","generateOcsUrl","params","from","window","location","replace","search","ocs","isArray","console","getProviders","then","forEach","groupProvidersByApp","debug","mapContacts","newResults","providersToSearch","searchProvider","provider","cursor","extraQueries","extraParams","since","until","person","limit","request","cancelToken","CancelToken","source","token","cancel","unifiedSearch","response","inAppSearch","entries","updateResults","updatedResults","result","newResult","existingResultIndex","findIndex","splice","sortedResults","slice","sort","a","b","aProvider","bProvider","order","map","contact","isNoUser","subname","applyPersonFilter","existingPersonFilter","loadMoreResultsForProvider","providerId","addProviderFilter","providerFilter","arguments","undefined","existingFilterIndex","existing","syncProviderFilters","removeFilter","i","firstArray","secondArray","synchronizedArray","item","index","itemId","secondItem","updateDateFilter","currFilterIndex","applyQuickDateRange","range","today","Date","startDate","endDate","getFullYear","getMonth","getDate","setCustomDateRange","event","toLocaleDateString","addFilterEvent","filterUpdateText","compatibleProviderIndex","filterParams","groupedByProviderApp","flattenedArray","Object","values","group","$refs","searchInput","$el","children","focus","ref","_filter$name","tag","providerResult","UnifiedSearchModal","showUnifiedSearch","toggleUnifiedSearch","handleModalVisibilityChange","newVisibilityVal","__webpack_nonce__","btoa","getRequestToken","logger","getLoggerBuilder","setApp","detectUser","build","Vue","mixin","n","OCA","UnifiedSearch","registerFilterAction","use","PiniaVuePlugin","pinia","createPinia","el","render","h","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","keys","every","r","getter","__esModule","d","definition","o","defineProperty","enumerable","e","Promise","resolve","g","globalThis","Function","obj","prototype","hasOwnProperty","nmd","paths","document","baseURI","self","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","bind","nc","__webpack_exports__"],"sourceRoot":""}