mirror of
https://github.com/nextcloud/server.git
synced 2024-08-15 02:11:48 +02:00
1 line
163 KiB
Plaintext
1 line
163 KiB
Plaintext
{"version":3,"file":"core-unified-search.js?v=a6444e81caeab5aac1bd","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?7b1c","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?3702","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/node_modules/vue-material-design-icons/AlertCircleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AlertCircleOutline.vue?730b","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue?vue&type=template&id=4aed4486","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchableList.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchableList.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchableList.vue?58c9","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?5240","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?4c6c","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?77ea","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=99abc4fc&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchFilterChip.vue?vue&type=style&index=0&id=5dc4d462&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResult.vue?vue&type=style&index=0&id=67d9a3cf&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchableList.vue?vue&type=style&index=0&id=7cf71a2c&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/views/UnifiedSearch.vue?vue&type=style&index=0&id=4621f4fc&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/views/UnifiedSearchModal.vue?vue&type=style&index=0&id=45d54e50&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 }","<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=99abc4fc&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=99abc4fc&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=99abc4fc&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=99abc4fc&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 \"99abc4fc\",\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\"","<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=5dc4d462&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=5dc4d462&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=5dc4d462&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=5dc4d462&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 \"5dc4d462\",\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-D2BBsB-_.css';\nimport i from \"./Components/NcActionButton.mjs\";\nimport { N as e } from \"./chunks/NcActionButtonGroup-jODsi2kz.mjs\";\nimport m from \"./Components/NcActionCaption.mjs\";\nimport a from \"./Components/NcActionCheckbox.mjs\";\nimport { N as p } from \"./chunks/NcActionInput-BJSgHPYh.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-B1Ue3gj8.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-BkVLz0T8.mjs\";\nimport g from \"./Components/NcAppContentDetails.mjs\";\nimport A from \"./Components/NcAppContentList.mjs\";\nimport { N as S } from \"./chunks/NcAppNavigation-BxaQQTmk.mjs\";\nimport { N as b } from \"./chunks/NcAppNavigationCaption-BQsUUBUS.mjs\";\nimport v from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as T } from \"./chunks/NcAppNavigationItem-Cheox0NI.mjs\";\nimport k from \"./Components/NcAppNavigationList.mjs\";\nimport P from \"./Components/NcAppNavigationNew.mjs\";\nimport { N as x } from \"./chunks/NcAppNavigationNewItem-Dmb8qw0g.mjs\";\nimport { N as C } from \"./chunks/NcAppNavigationSettings-_O0oYU8k.mjs\";\nimport I from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as h } from \"./chunks/NcAppSettingsDialog-CECnsnfv.mjs\";\nimport E from \"./Components/NcAppSettingsSection.mjs\";\nimport { N as B } from \"./chunks/NcAppSidebar-9W8ytMkj.mjs\";\nimport R from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as L } from \"./chunks/NcAvatar-GULQurjA.mjs\";\nimport { u as ct } from \"./chunks/NcAvatar-GULQurjA.mjs\";\nimport { N as y } from \"./chunks/NcBreadcrumb-BerOYeSO.mjs\";\nimport { N as M } from \"./chunks/NcBreadcrumbs-BypDKcgj.mjs\";\nimport O from \"./Components/NcButton.mjs\";\nimport { N as D } from \"./chunks/NcCheckboxRadioSwitch-BcwXUfkk.mjs\";\nimport { N as _ } from \"./chunks/NcColorPicker-C29EJ5Gw.mjs\";\nimport { N as j } from \"./chunks/NcContent-CQk_EERB.mjs\";\nimport F from \"./Components/NcCounterBubble.mjs\";\nimport { N as W } from \"./chunks/NcDashboardWidget-B5kIIXjc.mjs\";\nimport { N as w } from \"./chunks/NcDashboardWidgetItem-xj-DfJjn.mjs\";\nimport { N as z } from \"./chunks/NcDateTime-BeI2IjH3.mjs\";\nimport { u as Nt } from \"./chunks/NcDateTime-BeI2IjH3.mjs\";\nimport G from \"./Components/NcDateTimePicker.mjs\";\nimport V from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as H } from \"./chunks/NcDialog-D6YSjidf.mjs\";\nimport { N as K } from \"./chunks/NcDialogButton-DQFoaN7q.mjs\";\nimport { N as U } from \"./chunks/NcEmojiPicker-028V7lKH.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-DUrmhUuv.mjs\";\nimport { N as Z } from \"./chunks/NcListItemIcon-9um1JI9_.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-BE4xwMjQ.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-CuvKC8Is.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-Bo4te1z-.mjs\";\nimport { N as No } from \"./chunks/NcRichText-DUCudV4J.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-DJNSkODj.mjs\";\nimport \"unist-util-visit\";\nimport \"unist-builder\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/axios\";\n/* empty css */\nimport { N as no } from \"./chunks/NcSelect-DRVEZt73.mjs\";\nimport { N as fo } from \"./chunks/NcTextField-BAKyJTQ0.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as lo } from \"./chunks/NcSavingIndicatorIcon-Bf0SEmgS.mjs\";\nimport { N as uo } from \"./chunks/NcSelectTags-35nlauoq.mjs\";\nimport { N as go } from \"./chunks/NcSettingsInputText-BxsnpVjM.mjs\";\nimport { N as Ao } from \"./chunks/NcSettingsSection-BntYMcIt.mjs\";\nimport { N as So } from \"./chunks/NcSettingsSelectGroup-CehQI4oG.mjs\";\nimport { N as bo } from \"./chunks/NcTimezonePicker-8juQvyGU.mjs\";\nimport { N as vo } from \"./chunks/NcUserBubble-6o5fw3gB.mjs\";\nimport { N as To } from \"./chunks/NcUserStatusIcon-D_ItGF5U.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-CgqbKJ4t.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","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon alert-circle-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AlertCircleOutlineIcon\",\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!./AlertCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AlertCircleOutline.vue?vue&type=template&id=4aed4486\"\nimport script from \"./AlertCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AlertCircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon alert-circle-outline-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\":\"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\"}},[(_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!./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 - @copyright 2023 Marco Ambrosini <marcoambrosini@proton.me>\n -\n - @author Marco Ambrosini <marcoambrosini@proton.me>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n-->\n\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 :user=\"element.user\" :show-user-status=\"false\" :hide-favorite=\"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","\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=7cf71a2c&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=7cf71a2c&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=7cf71a2c&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=7cf71a2c&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 \"7cf71a2c\",\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 [_c('NcAvatar',{attrs:{\"user\":element.user,\"show-user-status\":false,\"hide-favorite\":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\"","<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=67d9a3cf&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=67d9a3cf&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=67d9a3cf&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=67d9a3cf&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 \"67d9a3cf\",\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 * @copyright 2023, Fon E. Noel NFEBE <fenn25.fn@gmail.com>\n *\n * @author Fon E. Noel NFEBE <fenn25.fn@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 */\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 * @copyright Copyright (c) 2024 Fon E. Noel NFEBE <opensource@nfebe.com>\n *\n * @author Fon E. Noel NFEBE <opensource@nfebe.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\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","<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\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\">\n\t\t\t\t\t<NcActions :menu-name=\"t('core', 'Places')\" :open.sync=\"providerActionMenuIsOpen\">\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\">\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\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\" @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}\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=45d54e50&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=45d54e50&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=45d54e50&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=45d54e50&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 \"45d54e50\",\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:{\"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\"},[_c('NcActions',{attrs:{\"menu-name\":_vm.t('core', 'Places'),\"open\":_vm.providerActionMenuIsOpen},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},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')},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',{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 - @copyright Copyright (c) 2020 Fon E. Noel NFEBE <fenn25.fn@gmail.com>\n -\n - @author Fon E. Noel NFEBE <fenn25.fn@gmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<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-primary-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=4621f4fc&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=4621f4fc&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=4621f4fc&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=4621f4fc&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 \"4621f4fc\",\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 * @copyright Copyright (c) 2024 Fon E. Noel NFEBE <opensource@nfebe.com>\n *\n * @author Fon E. Noel NFEBE <opensource@nfebe.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 */\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-99abc4fc]{padding:10px 20px 10px 20px}.unified-search-custom-date-modal h1[data-v-99abc4fc]{font-size:16px;font-weight:bolder;line-height:2em}.unified-search-custom-date-modal__pickers[data-v-99abc4fc]{display:flex;flex-direction:column}.unified-search-custom-date-modal__footer[data-v-99abc4fc]{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-5dc4d462]{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-5dc4d462]{display:flex;align-items:center;padding-right:5px}.chip .icon img[data-v-5dc4d462]{width:20px;padding:2px;border-radius:20px;filter:var(--background-invert-if-bright)}.chip .text[data-v-5dc4d462]{margin:0 2px}.chip .close-icon[data-v-5dc4d462]{cursor:pointer}.chip .close-icon[data-v-5dc4d462] :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-67d9a3cf] a{border-radius:12px;border:2px solid rgba(0,0,0,0);border-radius:var(--border-radius-large) !important}.result-items__item[data-v-67d9a3cf] a--focused{background-color:var(--color-background-hover)}.result-items__item[data-v-67d9a3cf] a:active,.result-items__item[data-v-67d9a3cf] a:hover,.result-items__item[data-v-67d9a3cf] a:focus{background-color:var(--color-background-hover);border:2px solid var(--color-border-maxcontrast)}.result-items__item[data-v-67d9a3cf] a *{cursor:pointer}.result-items__item-icon[data-v-67d9a3cf]{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-67d9a3cf]{border-radius:22px}.result-items__item-icon--no-preview[data-v-67d9a3cf]{background-size:32px}.result-items__item-icon--with-thumbnail[data-v-67d9a3cf]{background-size:cover}.result-items__item-icon--with-thumbnail[data-v-67d9a3cf]: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-67d9a3cf]{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-7cf71a2c]{padding:calc(var(--default-grid-baseline)*3);display:flex;flex-direction:column;align-items:center;width:250px}.searchable-list__list[data-v-7cf71a2c]{width:100%;max-height:284px;overflow-y:auto;margin-top:var(--default-grid-baseline);padding:var(--default-grid-baseline)}.searchable-list__list[data-v-7cf71a2c] .button-vue{border-radius:var(--border-radius-large) !important}.searchable-list__list[data-v-7cf71a2c] .button-vue span{font-weight:initial}.searchable-list__empty-content[data-v-7cf71a2c]{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-4621f4fc]{display:flex;align-items:center;justify-content:center}#header .header-menu__trigger[data-v-4621f4fc]{height:var(--header-height);width:var(--header-height) !important}#header .header-menu__trigger[data-v-4621f4fc]:focus-visible{outline:none !important;box-shadow:none !important}#header .header-menu__trigger[data-v-4621f4fc]:not(:hover,:focus,:focus-visible){opacity:.85}#header .header-menu__trigger-icon[data-v-4621f4fc]{color:var(--color-primary-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,0CAAA\",\"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-primary-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-45d54e50]{box-sizing:border-box;height:100%;min-height:80vh;display:flex;flex-direction:column;padding-block:10px 0}.unified-search-modal>*[data-v-45d54e50]{padding-inline:20px}.unified-search-modal__header[data-v-45d54e50]{padding-block-end:8px}.unified-search-modal__heading[data-v-45d54e50]{font-size:16px;font-weight:bolder;line-height:2em;margin-bottom:0}.unified-search-modal__filters[data-v-45d54e50]{display:flex;flex-wrap:wrap;gap:4px;justify-content:start;padding-top:4px}.unified-search-modal__filters-applied[data-v-45d54e50]{padding-top:4px;display:flex;flex-wrap:wrap}.unified-search-modal__no-content[data-v-45d54e50]{display:flex;align-items:center;height:100%}.unified-search-modal__results[data-v-45d54e50]{overflow:hidden scroll;padding-block:0 10px}.unified-search-modal__results .result-title span[data-v-45d54e50]{color:var(--color-primary-element);font-weight:bolder;font-size:16px}.unified-search-modal__results .result-footer[data-v-45d54e50]{justify-content:space-between;align-items:center;display:flex}.filter-button__icon[data-v-45d54e50]{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-45d54e50]{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__(94710)))\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","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":""} |