/
notifications-node_modules_moment_locale_sync_recursive_-src_NotificationsApp_vue-data_image_svg_xml_base64-ab95a3.js.map
1 lines (1 loc) · 102 KB
/
notifications-node_modules_moment_locale_sync_recursive_-src_NotificationsApp_vue-data_image_svg_xml_base64-ab95a3.js.map
1
{"version":3,"file":"notifications-node_modules_moment_locale_sync_recursive_-src_NotificationsApp_vue-data_image_svg_xml_base64-ab95a3.js?v=d2bcd364ee99056941f0","mappings":"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","sources":["webpack:///notifications/src/Components/Notification.vue?vue&type=style&index=0&id=7bac7eb4&prod&lang=scss&scoped=true","webpack:///notifications/src/Components/Parameters/DefaultParameter.vue?vue&type=style&index=0&id=39222bd6&prod&lang=scss&scoped=true","webpack:///notifications/src/Components/Parameters/User.vue?vue&type=style&index=0&id=b064c4b8&prod&lang=scss&scoped=true","webpack:///notifications/src/NotificationsApp.vue?vue&type=style&index=0&id=280ff602&prod&scoped=true&lang=scss","webpack:///notifications/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack://notifications/./src/NotificationsApp.vue?e839","webpack:///notifications/src/Components/Action.vue","webpack:///notifications/src/Components/Action.vue?vue&type=script&lang=js","webpack://notifications/./src/Components/Action.vue?e46d","webpack://notifications/./src/Components/Action.vue?cc92","webpack:///notifications/src/Components/Parameters/DefaultParameter.vue","webpack:///notifications/src/Components/Parameters/DefaultParameter.vue?vue&type=script&lang=js","webpack://notifications/./src/Components/Parameters/DefaultParameter.vue?94fa","webpack://notifications/./src/Components/Parameters/DefaultParameter.vue?6164","webpack://notifications/./src/Components/Parameters/DefaultParameter.vue?deb7","webpack:///notifications/src/Components/Parameters/File.vue","webpack:///notifications/src/Components/Parameters/File.vue?vue&type=script&lang=js","webpack://notifications/./src/Components/Parameters/File.vue?a096","webpack://notifications/./src/Components/Parameters/File.vue?9962","webpack:///notifications/src/Components/Parameters/User.vue","webpack:///notifications/src/Components/Parameters/User.vue?vue&type=script&lang=js","webpack://notifications/./src/Components/Parameters/User.vue?f42a","webpack://notifications/./src/Components/Parameters/User.vue?9ce0","webpack://notifications/./src/Components/Parameters/User.vue?b95d","webpack:///notifications/src/Components/Notification.vue?vue&type=script&lang=js","webpack:///notifications/src/Components/Notification.vue","webpack://notifications/./src/Components/Notification.vue?f47b","webpack://notifications/./src/Components/Notification.vue?7f20","webpack://notifications/./src/Components/Notification.vue?52bf","webpack:///notifications/src/services/BrowserStorage.js","webpack:///notifications/src/services/notificationsService.js","webpack:///notifications/src/NotificationsApp.vue","webpack:///notifications/src/NotificationsApp.vue?vue&type=script&lang=js","webpack://notifications/./src/NotificationsApp.vue?532b","webpack://notifications/./src/NotificationsApp.vue?aadb"],"sourcesContent":["// 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, `.notification[data-v-7bac7eb4]{background-color:var(--color-main-background)}.notification[data-v-7bac7eb4] img.notification-icon{display:flex;width:32px;height:32px;filter:var(--background-invert-if-dark)}.notification[data-v-7bac7eb4] .rich-text--wrapper{white-space:pre-wrap;word-break:break-word}.notification .notification-subject[data-v-7bac7eb4]{padding:4px}.notification a.notification-subject[data-v-7bac7eb4]:focus-visible{box-shadow:inset 0 0 0 2px var(--color-main-text) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/Components/Notification.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,6CAAA,CAEA,qDACC,YAAA,CACA,UAAA,CACA,WAAA,CACA,uCAAA,CAED,mDACC,oBAAA,CACA,qBAAA,CAGD,qDACC,WAAA,CAGD,oEACC,4DAAA\",\"sourcesContent\":[\"\\n.notification {\\n\\tbackground-color: var(--color-main-background);\\n\\n\\t:deep(img.notification-icon) {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tfilter: var(--background-invert-if-dark);\\n\\t}\\n\\t:deep(.rich-text--wrapper) {\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tword-break: break-word;\\n\\t}\\n\\n\\t.notification-subject {\\n\\t\\tpadding: 4px;\\n\\t}\\n\\n\\ta.notification-subject:focus-visible {\\n\\t\\tbox-shadow: inset 0 0 0 2px var(--color-main-text) !important; // override rule in core/css/headers.scss #header a:focus-visible\\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, `.external[data-v-39222bd6]:after{content:\" ↗\"}`, \"\",{\"version\":3,\"sources\":[\"webpack://./DefaultParameter.vue\",\"webpack://./src/Components/Parameters/DefaultParameter.vue\"],\"names\":[],\"mappings\":\"AAAA,iCCCA,YACC\",\"sourcesContent\":[\".external:after{content:\\\" ↗\\\"}\",\"\\n.external:after {\\n\\tcontent: ' ↗';\\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, `.mention[data-v-b064c4b8]{display:contents;white-space:nowrap}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/Components/Parameters/User.vue\"],\"names\":[],\"mappings\":\"AACA,0BACC,gBAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.mention {\\n\\tdisplay: contents;\\n\\twhite-space: nowrap;\\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, `.notification-container[data-v-280ff602]{overflow:hidden}.notification-wrapper[data-v-280ff602]{max-height:calc(100vh - 200px);overflow:auto}[data-v-280ff602] .empty-content{margin:12vh 10px}[data-v-280ff602] .empty-content p{color:var(--color-text-maxcontrast)}.icon-alert-outline[data-v-280ff602]{background-size:64px;width:64px;height:64px}.fade-enter-active[data-v-280ff602],.fade-leave-active[data-v-280ff602]{transition:opacity var(--animation-quick) ease}.fade-enter-from[data-v-280ff602],.fade-leave-to[data-v-280ff602]{opacity:0}.list-move[data-v-280ff602],.list-enter-active[data-v-280ff602],.list-leave-active[data-v-280ff602]{transition:all var(--animation-quick) ease}.list-enter-from[data-v-280ff602],.list-leave-to[data-v-280ff602]{opacity:0;transform:translateX(30px)}.list-leave-active[data-v-280ff602]{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/NotificationsApp.vue\"],\"names\":[],\"mappings\":\"AACA,yCAEC,eAAA,CAGD,uCACC,8BAAA,CACA,aAAA,CAGD,iCACC,gBAAA,CAEA,mCACC,mCAAA,CAIF,qCACC,oBAAA,CACA,UAAA,CACA,WAAA,CAGD,wEAEC,8CAAA,CAGD,kEAEC,SAAA,CAGD,oGAGC,0CAAA,CAGD,kEAEC,SAAA,CACA,0BAAA,CAGD,oCACC,UAAA\",\"sourcesContent\":[\"\\n.notification-container {\\n\\t/* Prevent slide animation to go out of the div */\\n\\toverflow: hidden;\\n}\\n\\n.notification-wrapper {\\n\\tmax-height: calc(100vh - 50px * 4);\\n\\toverflow: auto;\\n}\\n\\n::v-deep .empty-content {\\n\\tmargin: 12vh 10px;\\n\\n\\tp {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\\n.icon-alert-outline {\\n\\tbackground-size: 64px;\\n\\twidth: 64px;\\n\\theight: 64px;\\n}\\n\\n.fade-enter-active,\\n.fade-leave-active {\\n\\ttransition: opacity var(--animation-quick) ease;\\n}\\n\\n.fade-enter-from,\\n.fade-leave-to {\\n\\topacity: 0;\\n}\\n\\n.list-move,\\n.list-enter-active,\\n.list-leave-active {\\n\\ttransition: all var(--animation-quick) ease;\\n}\\n\\n.list-enter-from,\\n.list-leave-to {\\n\\topacity: 0;\\n\\ttransform: translateX(30px);\\n}\\n\\n.list-leave-active {\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 15596,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 15596,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.shutdown)?_c('NcHeaderMenu',{staticClass:\"notifications-button\",attrs:{\"id\":\"notifications\",\"exclude-click-outside-selectors\":['.popover'],\"open\":_vm.open,\"aria-label\":_vm.t('notifications', 'Notifications')},on:{\"update:open\":function($event){_vm.open=$event},\"open\":_vm.onOpen},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [(_vm.notifications.length === 0 && _vm.webNotificationsGranted !== null && !_vm.hasThrottledPushNotifications)?_c('Bell',{staticClass:\"notifications-button__icon\",attrs:{\"size\":20,\"title\":_vm.t('notifications', 'Notifications')}}):_c('svg',{staticClass:\"notifications-button__icon\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"version\":\"1.1\",\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\"}},[_c('path',{attrs:{\"d\":\"M 19,11.79 C 18.5,11.92 18,12 17.5,12 14.47,12 12,9.53 12,6.5 12,5.03 12.58,3.7 13.5,2.71 13.15,2.28 12.61,2 12,2 10.9,2 10,2.9 10,4 V 4.29 C 7.03,5.17 5,7.9 5,11 v 6 l -2,2 v 1 H 21 V 19 L 19,17 V 11.79 M 12,23 c 1.11,0 2,-0.89 2,-2 h -4 c 0,1.11 0.9,2 2,2 z\"}}),_vm._v(\" \"),_c('path',{staticClass:\"notification__dot\",class:_vm.isRedThemed ? 'notification__dot--white' : '',attrs:{\"d\":\"M 21,6.5 C 21,8.43 19.43,10 17.5,10 15.57,10 14,8.43 14,6.5 14,4.57 15.57,3 17.5,3 19.43,3 21,4.57 21,6.5\"}}),_vm._v(\" \"),(_vm.hasThrottledPushNotifications)?_c('path',{staticClass:\"notification__dot notification__dot--warning\",class:_vm.isOrangeThemed ? 'notification__dot--white' : '',attrs:{\"d\":\"M 21,6.5 C 21,8.43 19.43,10 17.5,10 15.57,10 14,8.43 14,6.5 14,4.57 15.57,3 17.5,3 19.43,3 21,4.57 21,6.5\"}}):_vm._e()])]},proxy:true}],null,false,760905135)},[_vm._v(\" \"),_c('div',{ref:\"container\",staticClass:\"notification-container\"},[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.notifications.length > 0)?_c('div',[_c('transition-group',{staticClass:\"notification-wrapper\",attrs:{\"name\":\"list\",\"tag\":\"ul\"}},[(_vm.hasThrottledPushNotifications)?_c('Notification',{key:-2016,attrs:{\"datetime\":\"warning\",\"app\":\"core\",\"icon\":_vm.warningIcon,\"external-link\":\"https://nextcloud.com/fairusepolicy\",\"message\":_vm.emptyContentDescription,\"subject\":_vm.emptyContentMessage,\"index\":2016}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.notifications),function(n,index){return _c('Notification',_vm._b({key:n.notificationId,attrs:{\"index\":index},on:{\"remove\":_vm.onRemove}},'Notification',n,false))})],2),_vm._v(\" \"),(_vm.notifications.length > 0)?_c('span',{staticClass:\"dismiss-all\",on:{\"click\":_vm.onDismissAll}},[_c('NcButton',{attrs:{\"type\":\"tertiary\"},on:{\"click\":_vm.onDismissAll},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Close',{attrs:{\"size\":20}})]},proxy:true}],null,false,2121748766)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('notifications', 'Dismiss all notifications'))+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e()],1):_c('NcEmptyContent',{attrs:{\"name\":_vm.emptyContentMessage,\"description\":_vm.emptyContentDescription},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!_vm.hasThrottledPushNotifications)?_c('Bell'):_c('span',{staticClass:\"icon icon-alert-outline\"})]},proxy:true},(_vm.hasThrottledPushNotifications)?{key:\"action\",fn:function(){return [_c('NcButton',{attrs:{\"type\":\"primary\",\"href\":\"https://nextcloud.com/fairusepolicy\",\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Message',{attrs:{\"size\":20}})]},proxy:true}],null,false,1386745923)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('notifications', 'Contact Nextcloud GmbH'))+\" ↗\\n\\t\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)})],1)],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<NcButton v-if=\"isWebLink\"\n\t\ttype=\"primary\"\n\t\tclass=\"action-button pull-right\"\n\t\t:href=\"link\"\n\t\t@click=\"onClickActionButtonWeb\">\n\t\t{{ label }}\n\t</NcButton>\n\t<NcButton v-else-if=\"!isWebLink\"\n\t\t:type=\"buttonType\"\n\t\tclass=\"action-button pull-right\"\n\t\t@click=\"onClickActionButton\">\n\t\t{{ label }}\n\t</NcButton>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport { emit } from '@nextcloud/event-bus'\n\nexport default {\n\tname: 'Action',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\trequired: true,\n\t\t},\n\t\tlink: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\trequired: true,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t\trequired: true,\n\t\t},\n\t\tnotificationIndex: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\ttabbed: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisWebLink() {\n\t\t\treturn this.typeWithDefault === 'WEB'\n\t\t},\n\n\t\ttypeWithDefault() {\n\t\t\treturn this.type || 'GET'\n\t\t},\n\n\t\tbuttonType() {\n\t\t\treturn this.primary ? 'primary' : 'secondary'\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync onClickActionButtonWeb(e) {\n\t\t\ttry {\n\t\t\t\tconst event = {\n\t\t\t\t\tcancelAction: false,\n\t\t\t\t\tnotification: this.$parent.$props,\n\t\t\t\t\taction: {\n\t\t\t\t\t\turl: this.link,\n\t\t\t\t\t\ttype: this.typeWithDefault,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\tawait emit('notifications:action:execute', event)\n\n\t\t\t\tif (event.cancelAction) {\n\t\t\t\t\t// Action cancelled by event\n\t\t\t\t\te.preventDefault()\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to perform action', error)\n\t\t\t\tshowError(t('notifications', 'Failed to perform action'))\n\t\t\t}\n\t\t},\n\n\t\tasync onClickActionButton() {\n\t\t\ttry {\n\t\t\t\tconst event = {\n\t\t\t\t\tcancelAction: false,\n\t\t\t\t\tnotification: this.$parent.$props,\n\t\t\t\t\taction: {\n\t\t\t\t\t\turl: this.link,\n\t\t\t\t\t\ttype: this.typeWithDefault,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\tawait emit('notifications:action:execute', event)\n\n\t\t\t\tif (event.cancelAction) {\n\t\t\t\t\t// Action cancelled by event\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\t// execute action\n\t\t\t\tawait axios({\n\t\t\t\t\tmethod: this.typeWithDefault,\n\t\t\t\t\turl: this.link,\n\t\t\t\t})\n\n\t\t\t\t// emit event to current app\n\t\t\t\tthis.$parent._$el.fadeOut(OC.menuSpeed)\n\t\t\t\tthis.$parent.$emit('remove', this.notificationIndex)\n\n\t\t\t\temit('notifications:action:executed', event)\n\n\t\t\t\ttry {\n\t\t\t\t\t$('body').trigger(new $.Event('OCA.Notification.Action', {\n\t\t\t\t\t\tnotification: this.$parent,\n\t\t\t\t\t\taction: {\n\t\t\t\t\t\t\turl: this.link,\n\t\t\t\t\t\t\ttype: this.typeWithDefault,\n\t\t\t\t\t\t},\n\t\t\t\t\t}))\n\t\t\t\t// do not do anything but log, the action went fine\n\t\t\t\t// only the event bus listener failed, this is not our problem\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to perform action', error)\n\t\t\t\tshowError(t('notifications', 'Failed to perform action'))\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Action.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!./Action.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Action.vue?vue&type=template&id=589bf766\"\nimport script from \"./Action.vue?vue&type=script&lang=js\"\nexport * from \"./Action.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isWebLink)?_c('NcButton',{staticClass:\"action-button pull-right\",attrs:{\"type\":\"primary\",\"href\":_vm.link},on:{\"click\":_vm.onClickActionButtonWeb}},[_vm._v(\"\\n\\t\"+_vm._s(_vm.label)+\"\\n\")]):(!_vm.isWebLink)?_c('NcButton',{staticClass:\"action-button pull-right\",attrs:{\"type\":_vm.buttonType},on:{\"click\":_vm.onClickActionButton}},[_vm._v(\"\\n\\t\"+_vm._s(_vm.label)+\"\\n\")]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 Joas Schilling <coding@schilljs.com>\n -\n - @author Joas Schilling <coding@schilljs.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<a v-if=\"hasInternalLink\"\n\t\t:href=\"link\">\n\t\t<strong>{{ name }}</strong>\n\t</a>\n\t<a v-else-if=\"link\"\n\t\t:href=\"link\"\n\t\tclass=\"external\"\n\t\ttarget=\"_blank\"\n\t\trel=\"noopener noreferrer\">\n\t\t<strong>{{ name }}</strong>\n\t</a>\n\t<strong v-else>{{ name }}</strong>\n</template>\n\n<script>\nexport default {\n\tname: 'DefaultParameter',\n\tprops: {\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tid: {\n\t\t\ttype: [Number, String],\n\t\t\trequired: true,\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tlink: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tcomputed: {\n\t\thasInternalLink() {\n\t\t\treturn this.link && (\n\t\t\t\tthis.type === 'deck-board'\n\t\t\t\t|| this.type === 'deck-card'\n\t\t\t)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.external:after {\n\tcontent: ' ↗';\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultParameter.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!./DefaultParameter.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!./DefaultParameter.vue?vue&type=style&index=0&id=39222bd6&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!./DefaultParameter.vue?vue&type=style&index=0&id=39222bd6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DefaultParameter.vue?vue&type=template&id=39222bd6&scoped=true\"\nimport script from \"./DefaultParameter.vue?vue&type=script&lang=js\"\nexport * from \"./DefaultParameter.vue?vue&type=script&lang=js\"\nimport style0 from \"./DefaultParameter.vue?vue&type=style&index=0&id=39222bd6&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 \"39222bd6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.hasInternalLink)?_c('a',{attrs:{\"href\":_vm.link}},[_c('strong',[_vm._v(_vm._s(_vm.name))])]):(_vm.link)?_c('a',{staticClass:\"external\",attrs:{\"href\":_vm.link,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_c('strong',[_vm._v(_vm._s(_vm.name))])]):_c('strong',[_vm._v(_vm._s(_vm.name))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 Joas Schilling <coding@schilljs.com>\n -\n - @author Joas Schilling <coding@schilljs.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<a :title=\"title\"\n\t\tclass=\"filename\"\n\t\t:href=\"link\">{{ name }}</a>\n</template>\n\n<script>\n\nexport default {\n\tname: 'File',\n\n\tprops: {\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tid: {\n\t\t\ttype: [Number, String],\n\t\t\trequired: true,\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tpath: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tlink: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tcomputed: {\n\t\ttitle() {\n\t\t\tconst lastSlashPosition = this.path.lastIndexOf('/')\n\t\t\tconst firstSlashPosition = this.path.indexOf('/')\n\t\t\tconst path = this.path.substring(firstSlashPosition === 0 ? 1 : 0, lastSlashPosition)\n\n\t\t\tif (path.length === 0) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn t('notifications', 'in {path}', {\n\t\t\t\tpath,\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./File.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!./File.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./File.vue?vue&type=template&id=5a5ee8cb\"\nimport script from \"./File.vue?vue&type=script&lang=js\"\nexport * from \"./File.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',{staticClass:\"filename\",attrs:{\"title\":_vm.title,\"href\":_vm.link}},[_vm._v(_vm._s(_vm.name))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 Joas Schilling <coding@schilljs.com>\n -\n - @author Joas Schilling <coding@schilljs.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=\"mention\">\n\t\t<NcUserBubble v-if=\"!cloudId\"\n\t\t\t:display-name=\"name\"\n\t\t\t:user=\"id\" />\n\t\t<strong v-else\n\t\t\t:title=\"cloudId\">\n\t\t\t{{ name }}\n\t\t</strong>\n\t</div>\n</template>\n\n<script>\n\nimport NcUserBubble from '@nextcloud/vue/dist/Components/NcUserBubble.js'\n\nexport default {\n\tname: 'User',\n\n\tcomponents: {\n\t\tNcUserBubble,\n\t},\n\n\tprops: {\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tserver: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tcloudId() {\n\t\t\treturn this.server ? (this.id + '@' + this.server) : ''\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.mention {\n\tdisplay: contents;\n\twhite-space: nowrap;\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./User.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!./User.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!./User.vue?vue&type=style&index=0&id=b064c4b8&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!./User.vue?vue&type=style&index=0&id=b064c4b8&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./User.vue?vue&type=template&id=b064c4b8&scoped=true\"\nimport script from \"./User.vue?vue&type=script&lang=js\"\nexport * from \"./User.vue?vue&type=script&lang=js\"\nimport style0 from \"./User.vue?vue&type=style&index=0&id=b064c4b8&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 \"b064c4b8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"mention\"},[(!_vm.cloudId)?_c('NcUserBubble',{attrs:{\"display-name\":_vm.name,\"user\":_vm.id}}):_c('strong',{attrs:{\"title\":_vm.cloudId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.name)+\"\\n\\t\")])],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!./Notification.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!./Notification.vue?vue&type=script&lang=js\"","<template>\n\t<li class=\"notification\"\n\t\t:data-id=\"notificationId\"\n\t\t:data-timestamp=\"timestamp\"\n\t\t:data-object-type=\"objectType\"\n\t\t:data-app=\"app\">\n\t\t<div class=\"notification-heading\">\n\t\t\t<span class=\"hidden-visually\">{{ absoluteDate }}</span>\n\t\t\t<span v-if=\"timestamp\"\n\t\t\t\t:title=\"absoluteDate\"\n\t\t\t\tclass=\"notification-time live-relative-timestamp\"\n\t\t\t\t:data-timestamp=\"timestamp\">{{ relativeDate }}</span>\n\t\t\t<NcButton v-if=\"timestamp\"\n\t\t\t\tclass=\"notification-dismiss-button\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\t:aria-label=\"t('notifications', 'Dismiss')\"\n\t\t\t\t@click=\"onDismissNotification\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Close :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t</div>\n\n\t\t<a v-if=\"externalLink\"\n\t\t\t:href=\"externalLink\"\n\t\t\tclass=\"notification-subject full-subject-link external\"\n\t\t\ttarget=\"_blank\"\n\t\t\trel=\"noreferrer noopener\">\n\t\t\t<span class=\"image\"><img :src=\"icon\" class=\"notification-icon\" alt=\"\"></span>\n\t\t\t<span class=\"subject\">{{ subject }} ↗</span>\n\t\t</a>\n\t\t<a v-else-if=\"useLink\" :href=\"link\" class=\"notification-subject full-subject-link\">\n\t\t\t<span v-if=\"icon\" class=\"image\"><img :src=\"icon\" class=\"notification-icon\" alt=\"\"></span>\n\t\t\t<NcRichText v-if=\"subjectRich\"\n\t\t\t\t:text=\"subjectRich\"\n\t\t\t\t:arguments=\"preparedSubjectParameters\" />\n\t\t\t<span v-else class=\"subject\">{{ subject }}</span>\n\t\t</a>\n\t\t<div v-else class=\"notification-subject\">\n\t\t\t<span v-if=\"icon\" class=\"image\"><img :src=\"icon\" class=\"notification-icon\" alt=\"\"></span>\n\t\t\t<NcRichText v-if=\"subjectRich\"\n\t\t\t\t:text=\"subjectRich\"\n\t\t\t\t:arguments=\"preparedSubjectParameters\" />\n\t\t\t<span v-else class=\"subject\">{{ subject }}</span>\n\t\t</div>\n\n\t\t<div v-if=\"message\" class=\"notification-message\" @click=\"onClickMessage\">\n\t\t\t<div class=\"message-container\" :class=\"{ collapsed: isCollapsedMessage }\">\n\t\t\t\t<NcRichText v-if=\"messageRich\"\n\t\t\t\t\t:text=\"messageRich\"\n\t\t\t\t\t:arguments=\"preparedMessageParameters\"\n\t\t\t\t\t:autolink=\"true\" />\n\t\t\t\t<span v-else>{{ message }}</span>\n\t\t\t</div>\n\t\t\t<div v-if=\"isCollapsedMessage\" class=\"notification-overflow\" />\n\t\t</div>\n\n\t\t<div v-if=\"actions.length\" class=\"notification-actions\">\n\t\t\t<Action v-for=\"(a, i) in actions\"\n\t\t\t\t:key=\"i\"\n\t\t\t\tv-bind=\"a\"\n\t\t\t\t:notification-index=\"index\" />\n\t\t</div>\n\t\t<div v-else-if=\"externalLink\" class=\"notification-actions\">\n\t\t\t<NcButton type=\"primary\"\n\t\t\t\thref=\"https://nextcloud.com/fairusepolicy\"\n\t\t\t\tclass=\"action-button pull-right\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer noopener\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Message :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('notifications', 'Contact Nextcloud GmbH') }} ↗\n\t\t\t</NcButton>\n\t\t</div>\n\t</li>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcRichText from '@nextcloud/vue/dist/Components/NcRichText.js'\nimport Close from 'vue-material-design-icons/Close.vue'\nimport Message from 'vue-material-design-icons/Message.vue'\nimport { showError } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { Howl } from 'howler'\nimport Action from './Action.vue'\nimport { generateOcsUrl, generateFilePath } from '@nextcloud/router'\nimport moment from '@nextcloud/moment'\nimport DefaultParameter from './Parameters/DefaultParameter.vue'\nimport File from './Parameters/File.vue'\nimport User from './Parameters/User.vue'\nimport { emit } from '@nextcloud/event-bus'\n\nexport default {\n\tname: 'Notification',\n\n\tcomponents: {\n\t\tAction,\n\t\tNcButton,\n\t\tClose,\n\t\tMessage,\n\t\tNcRichText,\n\t},\n\n\tprops: {\n\t\tnotificationId: {\n\t\t\ttype: Number,\n\t\t\tdefault: -1,\n\t\t},\n\t\tdatetime: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tapp: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tlink: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\texternalLink: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tmessageRich: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tmessageRichParameters: {\n\t\t\ttype: [Object, Array],\n\t\t\tdefault() {\n\t\t\t\treturn {}\n\t\t\t},\n\t\t},\n\t\tsubject: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tsubjectRich: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tsubjectRichParameters: {\n\t\t\ttype: [Object, Array],\n\t\t\tdefault() {\n\t\t\t\treturn {}\n\t\t\t},\n\t\t},\n\t\tobjectType: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tobjectId: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tshouldNotify: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tactions: {\n\t\t\ttype: Array,\n\t\t\tdefault() {\n\t\t\t\treturn []\n\t\t\t},\n\t\t},\n\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\tdefault: -1,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshowFullMessage: false,\n\t\t}\n\t},\n\n\t_$el: null,\n\n\tcomputed: {\n\t\ttimestamp() {\n\t\t\tif (this.datetime === 'warning') {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\treturn (new Date(this.datetime)).valueOf()\n\t\t},\n\t\tabsoluteDate() {\n\t\t\tif (this.datetime === 'warning') {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\treturn moment(this.timestamp).format('LLL')\n\t\t},\n\t\trelativeDate() {\n\t\t\tif (this.datetime === 'warning') {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\tconst diff = moment().diff(moment(this.timestamp))\n\t\t\tif (diff >= 0 && diff < 45000) {\n\t\t\t\treturn t('core', 'seconds ago')\n\t\t\t}\n\t\t\treturn moment(this.timestamp).fromNow()\n\t\t},\n\t\tuseLink() {\n\t\t\tif (!this.link) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tlet parametersHaveLink = false\n\t\t\tObject.keys(this.subjectRichParameters).forEach(p => {\n\t\t\t\tif (this.subjectRichParameters[p].link) {\n\t\t\t\t\tparametersHaveLink = true\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn !parametersHaveLink\n\t\t},\n\n\t\tpreparedSubjectParameters() {\n\t\t\treturn this.prepareParameters(this.subjectRichParameters)\n\t\t},\n\n\t\tpreparedMessageParameters() {\n\t\t\treturn this.prepareParameters(this.messageRichParameters)\n\t\t},\n\n\t\tisCollapsedMessage() {\n\t\t\treturn this.message.length > 200 && !this.showFullMessage\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis._$el = $(this.$el)\n\n\t\t// Parents: TransitionGroup > Transition > HeaderMenu\n\t\tif (typeof this.$parent.$parent.$parent.showBrowserNotifications === 'undefined') {\n\t\t\tconsole.error('Failed to read showBrowserNotifications property from App component')\n\t\t}\n\n\t\tif (this.$parent.$parent.$parent.backgroundFetching) {\n\t\t\t// Can not rely on showBrowserNotifications because each tab should\n\t\t\t// be able to utilize the data from the notification in events.\n\t\t\tconst event = {\n\t\t\t\tnotification: this.$props,\n\t\t\t}\n\n\t\t\temit('notifications:notification:received', event)\n\t\t}\n\n\t\tif (this.shouldNotify && this.$parent.$parent.$parent.showBrowserNotifications) {\n\t\t\tthis._createWebNotification()\n\n\t\t\tif (this.app === 'spreed' && this.objectType === 'call') {\n\t\t\t\tif (loadState('notifications', 'sound_talk')) {\n\t\t\t\t\tconst sound = new Howl({\n\t\t\t\t\t\tsrc: [\n\t\t\t\t\t\t\tgenerateFilePath('notifications', 'img', 'talk.ogg'),\n\t\t\t\t\t\t],\n\t\t\t\t\t\tvolume: 0.5,\n\t\t\t\t\t})\n\n\t\t\t\t\tsound.play()\n\t\t\t\t}\n\t\t\t} else if (loadState('notifications', 'sound_notification')) {\n\t\t\t\tconst sound = new Howl({\n\t\t\t\t\tsrc: [\n\t\t\t\t\t\tgenerateFilePath('notifications', 'img', 'notification.ogg'),\n\t\t\t\t\t],\n\t\t\t\t\tvolume: 0.5,\n\t\t\t\t})\n\n\t\t\t\tsound.play()\n\t\t\t}\n\t\t}\n\t},\n\n\tmethods: {\n\t\tprepareParameters(parameters) {\n\t\t\tconst richParameters = {}\n\t\t\tObject.keys(parameters).forEach(p => {\n\t\t\t\tconst type = parameters[p].type\n\t\t\t\tif (type === 'user') {\n\t\t\t\t\trichParameters[p] = {\n\t\t\t\t\t\tcomponent: User,\n\t\t\t\t\t\tprops: parameters[p],\n\t\t\t\t\t}\n\t\t\t\t} else if (type === 'file') {\n\t\t\t\t\trichParameters[p] = {\n\t\t\t\t\t\tcomponent: File,\n\t\t\t\t\t\tprops: parameters[p],\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\trichParameters[p] = {\n\t\t\t\t\t\tcomponent: DefaultParameter,\n\t\t\t\t\t\tprops: parameters[p],\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn richParameters\n\t\t},\n\n\t\tonClickMessage(e) {\n\t\t\tif (e.target.closest('.rich-text--wrapper')) {\n\t\t\t\t// Vue RichText\n\t\t\t\tthis.showFullMessage = !this.showFullMessage\n\t\t\t} else if (!this.messageRich && !!this.message) {\n\t\t\t\t// Plain text\n\t\t\t\tthis.showFullMessage = !this.showFullMessage\n\t\t\t}\n\t\t},\n\n\t\tonDismissNotification() {\n\t\t\taxios\n\t\t\t\t.delete(generateOcsUrl('apps/notifications/api/v2/notifications/{id}', { id: this.notificationId }))\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.$emit('remove', this.index)\n\t\t\t\t})\n\t\t\t\t.catch(() => {\n\t\t\t\t\tshowError(t('notifications', 'Failed to dismiss notification'))\n\t\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Create a browser notification\n\t\t *\n\t\t * @see https://developer.mozilla.org/en/docs/Web/API/notification\n\t\t */\n\t\t_createWebNotification() {\n\t\t\tconst n = new Notification(this.subject, {\n\t\t\t\ttitle: this.subject,\n\t\t\t\tlang: OC.getLocale(),\n\t\t\t\tbody: this.message,\n\t\t\t\ticon: this.icon,\n\t\t\t\ttag: this.notificationId,\n\t\t\t})\n\n\t\t\tif (this.link) {\n\t\t\t\tn.onclick = async function(e) {\n\t\t\t\t\tconst event = {\n\t\t\t\t\t\tcancelAction: false,\n\t\t\t\t\t\tnotification: this.$props,\n\t\t\t\t\t\taction: {\n\t\t\t\t\t\t\turl: this.link,\n\t\t\t\t\t\t\ttype: 'WEB',\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t\tawait emit('notifications:action:execute', event)\n\n\t\t\t\t\tif (!event.cancelAction) {\n\t\t\t\t\t\tconsole.debug('Redirecting because of a click onto a notification', this.link)\n\t\t\t\t\t\twindow.location.href = this.link\n\t\t\t\t\t}\n\n\t\t\t\t\t// Best effort try to bring the tab to the foreground (works at least in Chrome, not in Firefox)\n\t\t\t\t\twindow.focus()\n\t\t\t\t}.bind(this)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.notification {\n\tbackground-color: var(--color-main-background);\n\n\t:deep(img.notification-icon) {\n\t\tdisplay: flex;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\t:deep(.rich-text--wrapper) {\n\t\twhite-space: pre-wrap;\n\t\tword-break: break-word;\n\t}\n\n\t.notification-subject {\n\t\tpadding: 4px;\n\t}\n\n\ta.notification-subject:focus-visible {\n\t\tbox-shadow: inset 0 0 0 2px var(--color-main-text) !important; // override rule in core/css/headers.scss #header a:focus-visible\n\t}\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!./Notification.vue?vue&type=style&index=0&id=7bac7eb4&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!./Notification.vue?vue&type=style&index=0&id=7bac7eb4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Notification.vue?vue&type=template&id=7bac7eb4&scoped=true\"\nimport script from \"./Notification.vue?vue&type=script&lang=js\"\nexport * from \"./Notification.vue?vue&type=script&lang=js\"\nimport style0 from \"./Notification.vue?vue&type=style&index=0&id=7bac7eb4&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 \"7bac7eb4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"notification\",attrs:{\"data-id\":_vm.notificationId,\"data-timestamp\":_vm.timestamp,\"data-object-type\":_vm.objectType,\"data-app\":_vm.app}},[_c('div',{staticClass:\"notification-heading\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.absoluteDate))]),_vm._v(\" \"),(_vm.timestamp)?_c('span',{staticClass:\"notification-time live-relative-timestamp\",attrs:{\"title\":_vm.absoluteDate,\"data-timestamp\":_vm.timestamp}},[_vm._v(_vm._s(_vm.relativeDate))]):_vm._e(),_vm._v(\" \"),(_vm.timestamp)?_c('NcButton',{staticClass:\"notification-dismiss-button\",attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('notifications', 'Dismiss')},on:{\"click\":_vm.onDismissNotification},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Close',{attrs:{\"size\":20}})]},proxy:true}],null,false,2121748766)}):_vm._e()],1),_vm._v(\" \"),(_vm.externalLink)?_c('a',{staticClass:\"notification-subject full-subject-link external\",attrs:{\"href\":_vm.externalLink,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_c('span',{staticClass:\"image\"},[_c('img',{staticClass:\"notification-icon\",attrs:{\"src\":_vm.icon,\"alt\":\"\"}})]),_vm._v(\" \"),_c('span',{staticClass:\"subject\"},[_vm._v(_vm._s(_vm.subject)+\" ↗\")])]):(_vm.useLink)?_c('a',{staticClass:\"notification-subject full-subject-link\",attrs:{\"href\":_vm.link}},[(_vm.icon)?_c('span',{staticClass:\"image\"},[_c('img',{staticClass:\"notification-icon\",attrs:{\"src\":_vm.icon,\"alt\":\"\"}})]):_vm._e(),_vm._v(\" \"),(_vm.subjectRich)?_c('NcRichText',{attrs:{\"text\":_vm.subjectRich,\"arguments\":_vm.preparedSubjectParameters}}):_c('span',{staticClass:\"subject\"},[_vm._v(_vm._s(_vm.subject))])],1):_c('div',{staticClass:\"notification-subject\"},[(_vm.icon)?_c('span',{staticClass:\"image\"},[_c('img',{staticClass:\"notification-icon\",attrs:{\"src\":_vm.icon,\"alt\":\"\"}})]):_vm._e(),_vm._v(\" \"),(_vm.subjectRich)?_c('NcRichText',{attrs:{\"text\":_vm.subjectRich,\"arguments\":_vm.preparedSubjectParameters}}):_c('span',{staticClass:\"subject\"},[_vm._v(_vm._s(_vm.subject))])],1),_vm._v(\" \"),(_vm.message)?_c('div',{staticClass:\"notification-message\",on:{\"click\":_vm.onClickMessage}},[_c('div',{staticClass:\"message-container\",class:{ collapsed: _vm.isCollapsedMessage }},[(_vm.messageRich)?_c('NcRichText',{attrs:{\"text\":_vm.messageRich,\"arguments\":_vm.preparedMessageParameters,\"autolink\":true}}):_c('span',[_vm._v(_vm._s(_vm.message))])],1),_vm._v(\" \"),(_vm.isCollapsedMessage)?_c('div',{staticClass:\"notification-overflow\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.actions.length)?_c('div',{staticClass:\"notification-actions\"},_vm._l((_vm.actions),function(a,i){return _c('Action',_vm._b({key:i,attrs:{\"notification-index\":_vm.index}},'Action',a,false))}),1):(_vm.externalLink)?_c('div',{staticClass:\"notification-actions\"},[_c('NcButton',{staticClass:\"action-button pull-right\",attrs:{\"type\":\"primary\",\"href\":\"https://nextcloud.com/fairusepolicy\",\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Message',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('notifications', 'Contact Nextcloud GmbH'))+\" ↗\\n\\t\\t\")])],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2020 Joas Schilling <coding@schilljs.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 { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('notifications').clearOnLogout().persist().build()\n","/**\n * @copyright Copyright (c) 2020 Joas Schilling <coding@schilljs.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 moment from '@nextcloud/moment'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport BrowserStorage from './BrowserStorage.js'\n\nconst getNotificationsData = async (tabId, lastETag, forceRefresh, hasNotifyPush) => {\n\tconst lastUpdated = parseInt(BrowserStorage.getItem('lastUpdated'), 10)\n\tconst lastTab = BrowserStorage.getItem('tabId')\n\tconst now = moment().format('X')\n\n\tif (forceRefresh\n\t\t// Allow the same tab to refresh with less than the timeout,\n\t\t|| (lastTab === tabId && lastUpdated + 25 < now)\n\t\t// Allow the same tab to refresh with notify push,\n\t\t|| (lastTab === tabId && hasNotifyPush)\n\t\t// and at the same time give it some more time against other tabs.\n\t\t|| lastUpdated + 35 < now) {\n\t\tBrowserStorage.setItem('tabId', tabId)\n\t\tBrowserStorage.setItem('lastUpdated', now)\n\t\t// console.debug('Refetching data in ' + tabId + ' (prev: ' + lastTab + ' age: ' + (now - lastUpdated) + ')')\n\t\tawait refreshData(lastETag)\n\t// } else {\n\t// console.debug('Reusing data in ' + tabId + ' (prev: ' + lastTab + ' age: ' + (now - lastUpdated) + ')')\n\t}\n\n\treturn {\n\t\tstatus: parseInt(BrowserStorage.getItem('status'), 10),\n\t\theaders: JSON.parse(BrowserStorage.getItem('headers') || '[]'),\n\t\tdata: JSON.parse(BrowserStorage.getItem('data') || '[]'),\n\t\ttabId: BrowserStorage.getItem('tabId'),\n\t\tlastUpdated: parseInt(BrowserStorage.getItem('lastUpdated'), 10),\n\t}\n}\n\nconst remapAttributes = (notification) => {\n\tnotification.notificationId = notification.notification_id\n\tnotification.objectId = notification.object_id\n\tnotification.objectType = notification.object_type\n\n\tdelete notification.notification_id\n\tdelete notification.object_id\n\tdelete notification.object_type\n\n\treturn notification\n}\n\nconst refreshData = async (lastETag) => {\n\tlet requestConfig = {}\n\tif (lastETag) {\n\t\trequestConfig = {\n\t\t\theaders: {\n\t\t\t\t'If-None-Match': lastETag,\n\t\t\t},\n\t\t}\n\t}\n\n\ttry {\n\t\tconst response = await axios.get(generateOcsUrl('apps/notifications/api/v2/notifications'), requestConfig)\n\n\t\tBrowserStorage.setItem('status', '' + response.status)\n\t\tif (response.status !== 204) {\n\t\t\tBrowserStorage.setItem('headers', JSON.stringify(response.headers))\n\t\t\tBrowserStorage.setItem('data', JSON.stringify(response.data.ocs.data.map(remapAttributes)))\n\t\t}\n\t} catch (error) {\n\t\tif (error?.response?.status) {\n\t\t\tBrowserStorage.setItem('status', '' + error.response.status)\n\t\t} else {\n\t\t\t// Setting to 500 in case no request was made so it's retried on the next attempt\n\t\t\tBrowserStorage.setItem('status', '500')\n\t\t}\n\t}\n}\n\nexport {\n\tgetNotificationsData,\n}\n","<template>\n\t<NcHeaderMenu v-if=\"!shutdown\"\n\t\tid=\"notifications\"\n\t\tclass=\"notifications-button\"\n\t\t:exclude-click-outside-selectors=\"['.popover']\"\n\t\t:open.sync=\"open\"\n\t\t:aria-label=\"t('notifications', 'Notifications')\"\n\t\t@open=\"onOpen\">\n\t\t<template #trigger>\n\t\t\t<Bell v-if=\"notifications.length === 0 && webNotificationsGranted !== null && !hasThrottledPushNotifications\"\n\t\t\t\tclass=\"notifications-button__icon\"\n\t\t\t\t:size=\"20\"\n\t\t\t\t:title=\"t('notifications', 'Notifications')\" />\n\t\t\t<!-- From material design icons -->\n\t\t\t<svg v-else\n\t\t\t\tclass=\"notifications-button__icon\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\"\n\t\t\t\tversion=\"1.1\"\n\t\t\t\twidth=\"20\"\n\t\t\t\theight=\"20\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\tfill=\"currentColor\">\n\t\t\t\t<path d=\"M 19,11.79 C 18.5,11.92 18,12 17.5,12 14.47,12 12,9.53 12,6.5 12,5.03 12.58,3.7 13.5,2.71 13.15,2.28 12.61,2 12,2 10.9,2 10,2.9 10,4 V 4.29 C 7.03,5.17 5,7.9 5,11 v 6 l -2,2 v 1 H 21 V 19 L 19,17 V 11.79 M 12,23 c 1.11,0 2,-0.89 2,-2 h -4 c 0,1.11 0.9,2 2,2 z\" />\n\t\t\t\t<path :class=\"isRedThemed ? 'notification__dot--white' : ''\" class=\"notification__dot\" d=\"M 21,6.5 C 21,8.43 19.43,10 17.5,10 15.57,10 14,8.43 14,6.5 14,4.57 15.57,3 17.5,3 19.43,3 21,4.57 21,6.5\" />\n\t\t\t\t<path v-if=\"hasThrottledPushNotifications\"\n\t\t\t\t\t:class=\"isOrangeThemed ? 'notification__dot--white' : ''\"\n\t\t\t\t\tclass=\"notification__dot notification__dot--warning\"\n\t\t\t\t\td=\"M 21,6.5 C 21,8.43 19.43,10 17.5,10 15.57,10 14,8.43 14,6.5 14,4.57 15.57,3 17.5,3 19.43,3 21,4.57 21,6.5\" />\n\t\t\t</svg>\n\t\t</template>\n\n\t\t<!-- Notifications list content -->\n\t\t<div ref=\"container\" class=\"notification-container\">\n\t\t\t<transition name=\"fade\" mode=\"out-in\">\n\t\t\t\t<div v-if=\"notifications.length > 0\">\n\t\t\t\t\t<transition-group class=\"notification-wrapper\"\n\t\t\t\t\t\tname=\"list\"\n\t\t\t\t\t\ttag=\"ul\">\n\t\t\t\t\t\t<Notification v-if=\"hasThrottledPushNotifications\"\n\t\t\t\t\t\t\t:key=\"-2016\"\n\t\t\t\t\t\t\tdatetime=\"warning\"\n\t\t\t\t\t\t\tapp=\"core\"\n\t\t\t\t\t\t\t:icon=\"warningIcon\"\n\t\t\t\t\t\t\texternal-link=\"https://nextcloud.com/fairusepolicy\"\n\t\t\t\t\t\t\t:message=\"emptyContentDescription\"\n\t\t\t\t\t\t\t:subject=\"emptyContentMessage\"\n\t\t\t\t\t\t\t:index=\"2016\" />\n\t\t\t\t\t\t<Notification v-for=\"(n, index) in notifications\"\n\t\t\t\t\t\t\t:key=\"n.notificationId\"\n\t\t\t\t\t\t\tv-bind=\"n\"\n\t\t\t\t\t\t\t:index=\"index\"\n\t\t\t\t\t\t\t@remove=\"onRemove\" />\n\t\t\t\t\t</transition-group>\n\n\t\t\t\t\t<!-- Dismiss all -->\n\t\t\t\t\t<span v-if=\"notifications.length > 0\"\n\t\t\t\t\t\tclass=\"dismiss-all\"\n\t\t\t\t\t\t@click=\"onDismissAll\">\n\t\t\t\t\t\t<NcButton type=\"tertiary\"\n\t\t\t\t\t\t\t@click=\"onDismissAll\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<Close :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t{{ t('notifications', 'Dismiss all notifications') }}\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- No notifications -->\n\t\t\t\t<NcEmptyContent v-else\n\t\t\t\t\t:name=\"emptyContentMessage\"\n\t\t\t\t\t:description=\"emptyContentDescription\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Bell v-if=\"!hasThrottledPushNotifications\" />\n\t\t\t\t\t\t<span v-else class=\"icon icon-alert-outline\" />\n\t\t\t\t\t</template>\n\n\t\t\t\t\t<template v-if=\"hasThrottledPushNotifications\" #action>\n\t\t\t\t\t\t<NcButton type=\"primary\"\n\t\t\t\t\t\t\thref=\"https://nextcloud.com/fairusepolicy\"\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noreferrer noopener\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<Message :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t{{ t('notifications', 'Contact Nextcloud GmbH') }} ↗\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</transition>\n\t\t</div>\n\t</NcHeaderMenu>\n</template>\n\n<script>\nimport Notification from './Components/Notification.vue'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport Close from 'vue-material-design-icons/Close.vue'\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { showError } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport {\n\tgenerateOcsUrl,\n\timagePath,\n} from '@nextcloud/router'\nimport { getNotificationsData } from './services/notificationsService.js'\nimport { listen } from '@nextcloud/notify_push'\nimport Bell from 'vue-material-design-icons/Bell.vue'\nimport Message from 'vue-material-design-icons/Message.vue'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport NcHeaderMenu from '@nextcloud/vue/dist/Components/NcHeaderMenu.js'\n\nexport default {\n\tname: 'NotificationsApp',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tClose,\n\t\tBell,\n\t\tMessage,\n\t\tNcEmptyContent,\n\t\tNcHeaderMenu,\n\t\tNotification,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\twebNotificationsGranted: false,\n\t\t\tbackgroundFetching: false,\n\t\t\thasNotifyPush: false,\n\t\t\tshutdown: false,\n\t\t\ttheming: getCapabilities()?.theming || {},\n\t\t\thasThrottledPushNotifications: loadState('notifications', 'throttled_push_notifications'),\n\t\t\tnotifications: [],\n\t\t\tlastETag: null,\n\t\t\tlastTabId: null,\n\t\t\tuserStatus: null,\n\t\t\ttabId: null,\n\n\t\t\t/** @type {number} */\n\t\t\tpollIntervalBase: 30000, // milliseconds\n\t\t\t/** @type {number} */\n\t\t\tpollIntervalCurrent: 30000, // milliseconds\n\n\t\t\t/** @type {number|null} */\n\t\t\tinterval: null,\n\t\t\tpushEndpoints: null,\n\n\t\t\topen: false,\n\t\t}\n\t},\n\n\t_$icon: null,\n\n\tcomputed: {\n\t\tisRedThemed() {\n\t\t\tif (this.theming?.color) {\n\t\t\t\tconst hsl = this.rgbToHsl(this.theming.color.substring(1, 3),\n\t\t\t\t\tthis.theming.color.substring(3, 5),\n\t\t\t\t\tthis.theming.color.substring(5, 7))\n\t\t\t\tconst h = hsl[0] * 360\n\t\t\t\treturn (h >= 330 || h <= 15) && hsl[1] > 0.4 && (hsl[2] > 0.1 || hsl[2] < 0.6)\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tisOrangeThemed() {\n\t\t\tif (this.theming?.color) {\n\t\t\t\tconst hsl = this.rgbToHsl(this.theming.color.substring(1, 3),\n\t\t\t\t\tthis.theming.color.substring(3, 5),\n\t\t\t\t\tthis.theming.color.substring(5, 7))\n\t\t\t\tconst h = hsl[0] * 360\n\t\t\t\treturn (h >= 305 || h <= 64) && hsl[1] > 0.7 && (hsl[2] > 0.1 || hsl[2] < 0.6)\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\tshowBrowserNotifications() {\n\t\t\treturn this.backgroundFetching\n\t\t\t\t&& this.webNotificationsGranted\n\t\t\t\t&& this.userStatus !== 'dnd'\n\t\t\t\t&& this.tabId === this.lastTabId\n\t\t},\n\n\t\temptyContentMessage() {\n\t\t\tif (this.webNotificationsGranted === null) {\n\t\t\t\treturn t('notifications', 'Requesting browser permissions to show notifications')\n\t\t\t}\n\n\t\t\tif (this.hasThrottledPushNotifications) {\n\t\t\t\treturn t('notifications', 'Push notifications might be unreliable')\n\t\t\t}\n\n\t\t\treturn t('notifications', 'No notifications')\n\t\t},\n\n\t\temptyContentDescription() {\n\t\t\tif (this.hasThrottledPushNotifications) {\n\t\t\t\treturn t('notifications', 'Nextcloud GmbH sponsors a free push notification gateway for private users. To ensure good service, the gateway limits the number of push notifications per server. For enterprise users, a more scalable gateway is available. Contact Nextcloud GmbH for more information.')\n\t\t\t}\n\n\t\t\treturn ''\n\t\t},\n\n\t\twarningIcon() {\n\t\t\treturn imagePath('core', 'actions/alert-outline.svg')\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.tabId = OC.requestToken || ('' + Math.random())\n\t\tthis._$icon = $(this.$refs.icon)\n\t\tthis._oldcount = 0\n\n\t\t// Bind the button click event\n\t\tconsole.debug('Registering notifications container as a menu')\n\t\tOC.registerMenu($(this.$refs.button), $(this.$refs.container), undefined, true)\n\n\t\tthis.checkWebNotificationPermissions()\n\n\t\t// Initial call to the notification endpoint\n\t\tthis._fetch()\n\n\t\tconst hasPush = listen('notify_notification', () => {\n\t\t\tthis._fetchAfterNotifyPush()\n\t\t})\n\t\tif (hasPush) {\n\t\t\tconsole.debug('Has notify_push enabled, slowing polling to 15 minutes')\n\t\t\tthis.pollIntervalBase = 15 * 60 * 1000\n\t\t\tthis.hasNotifyPush = true\n\t\t}\n\n\t\t// Set up the background checker\n\t\tthis._setPollingInterval(this.pollIntervalBase)\n\n\t\tthis._watchTabVisibility()\n\t\tsubscribe('networkOffline', this.handleNetworkOffline)\n\t\tsubscribe('networkOnline', this.handleNetworkOnline)\n\t\tsubscribe('user_status:status.updated', this.userStatusUpdated)\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('user_status:status.updated', this.userStatusUpdated)\n\t\tunsubscribe('networkOffline', this.handleNetworkOffline)\n\t\tunsubscribe('networkOnline', this.handleNetworkOnline)\n\t},\n\n\tmethods: {\n\t\tuserStatusUpdated(state) {\n\t\t\tif (getCurrentUser().uid === state.userId) {\n\t\t\t\tthis.userStatus = state.status\n\t\t\t}\n\t\t},\n\n\t\tonOpen() {\n\t\t\tthis.requestWebNotificationPermissions()\n\t\t},\n\n\t\thandleNetworkOffline() {\n\t\t\tconsole.debug('Network is offline, slowing down pollingInterval to ' + this.pollIntervalBase * 10)\n\t\t\tthis._setPollingInterval(this.pollIntervalBase * 10)\n\t\t},\n\n\t\thandleNetworkOnline() {\n\t\t\tthis._fetch()\n\t\t\tconsole.debug('Network is online, reseting pollingInterval to ' + this.pollIntervalBase)\n\t\t\tthis._setPollingInterval(this.pollIntervalBase)\n\t\t},\n\n\t\tsetupBackgroundFetcher() {\n\t\t\tif (OC.config.session_keepalive) {\n\t\t\t\tconsole.debug('Started background fetcher as session_keepalive is enabled')\n\t\t\t\tthis.interval = window.setInterval(this._backgroundFetch.bind(this), this.pollIntervalCurrent)\n\t\t\t} else {\n\t\t\t\tconsole.debug('Did not start background fetcher as session_keepalive is off')\n\t\t\t}\n\t\t},\n\n\t\tonDismissAll() {\n\t\t\taxios\n\t\t\t\t.delete(generateOcsUrl('apps/notifications/api/v2/notifications'))\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.notifications = []\n\t\t\t\t})\n\t\t\t\t.catch(() => {\n\t\t\t\t\tshowError(t('notifications', 'Failed to dismiss all notifications'))\n\t\t\t\t})\n\t\t},\n\t\tonRemove(index) {\n\t\t\tthis.notifications.splice(index, 1)\n\t\t},\n\n\t\trgbToHsl(r, g, b) {\n\t\t\tr = parseInt(r, 16) / 255; g = parseInt(g, 16) / 255; b = parseInt(b, 16) / 255\n\t\t\tconst max = Math.max(r, g, b); const min = Math.min(r, g, b)\n\t\t\tlet h; let s; const l = (max + min) / 2\n\n\t\t\tif (max === min) {\n\t\t\t\th = s = 0\n\t\t\t} else {\n\t\t\t\tconst d = max - min\n\t\t\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n\t\t\t\tswitch (max) {\n\t\t\t\tcase r: h = (g - b) / d + (g < b ? 6 : 0); break\n\t\t\t\tcase g: h = (b - r) / d + 2; break\n\t\t\t\tcase b: h = (r - g) / d + 4; break\n\t\t\t\t}\n\t\t\t\th /= 6\n\t\t\t}\n\n\t\t\treturn [h, s, l]\n\t\t},\n\n\t\t/**\n\t\t * Update the title to show * if there are new notifications\n\t\t *\n\t\t * @param {object} notifications The list of notifications\n\t\t */\n\t\t_updateDocTitleOnNewNotifications(notifications) {\n\t\t\tif (notifications.length > this._oldcount) {\n\t\t\t\tthis._oldcount = notifications.length\n\t\t\t\tif (this.backgroundFetching && document.hidden) {\n\t\t\t\t\t// If we didn't already highlight, store the title so we can restore on tab-view\n\t\t\t\t\tif (!document.title.startsWith('* ')) {\n\t\t\t\t\t\tdocument.title = '* ' + document.title\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Restore the title to remove a *\n\t\t * Only restore title if it's still what we set it to,\n\t\t * the Talk might have altered it.\n\t\t */\n\t\t_restoreTitle() {\n\t\t\tif (document.title.startsWith('* ')) {\n\t\t\t\tdocument.title = document.title.substring(2)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Performs the AJAX request to retrieve the notifications\n\t\t */\n\t\t_fetchAfterNotifyPush() {\n\t\t\tthis.backgroundFetching = true\n\t\t\tif (this.hasNotifyPush && this.tabId !== this.lastTabId) {\n\t\t\t\tconsole.debug('Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it')\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis._fetch()\n\t\t\t\t}, 5000)\n\t\t\t} else {\n\t\t\t\tconsole.debug('Refreshing notifications are notify_push event')\n\t\t\t\tthis._fetch()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Performs the AJAX request to retrieve the notifications\n\t\t */\n\t\tasync _fetch() {\n\t\t\tconst response = await getNotificationsData(this.tabId, this.lastETag, !this.backgroundFetching, this.hasNotifyPush)\n\n\t\t\tif (response.status === 204) {\n\t\t\t\t// 204 No Content - Intercept when no notifiers are there.\n\t\t\t\tconsole.debug('Fetching notifications but no content, slowing down polling to ' + this.pollIntervalBase * 10)\n\t\t\t\tthis._setPollingInterval(this.pollIntervalBase * 10)\n\t\t\t} else if (response.status === 200) {\n\t\t\t\tthis.userStatus = response.headers['x-nextcloud-user-status']\n\t\t\t\tthis.lastETag = response.headers.etag\n\t\t\t\tthis.lastTabId = response.tabId\n\t\t\t\tthis.notifications = response.data\n\t\t\t\tconsole.debug('Got notification data, restoring default polling interval.')\n\t\t\t\tthis._setPollingInterval(this.pollIntervalBase)\n\t\t\t\tthis._updateDocTitleOnNewNotifications(this.notifications)\n\t\t\t} else if (response.status === 304) {\n\t\t\t\t// 304 - Not modified\n\t\t\t\tthis._setPollingInterval(this.pollIntervalBase)\n\t\t\t} else if (response.status === 503) {\n\t\t\t\t// 503 - Maintenance mode\n\t\t\t\tconsole.info('Slowing down notifications: instance is in maintenance mode.')\n\t\t\t\tthis._setPollingInterval(this.pollIntervalBase * 10)\n\t\t\t} else if (response.status === 404) {\n\t\t\t\t// 404 - App disabled\n\t\t\t\tconsole.info('Slowing down notifications: app is disabled.')\n\t\t\t\tthis._setPollingInterval(this.pollIntervalBase * 10)\n\t\t\t} else {\n\t\t\t\tconsole.info('Slowing down notifications: Status ' + response.status)\n\t\t\t\tthis._setPollingInterval(this.pollIntervalBase * 10)\n\t\t\t}\n\t\t},\n\n\t\t_backgroundFetch() {\n\t\t\tthis.backgroundFetching = true\n\t\t\tthis._fetch()\n\t\t},\n\n\t\t_watchTabVisibility() {\n\t\t\tdocument.addEventListener('visibilitychange', this._visibilityChange, false)\n\t\t},\n\n\t\t_visibilityChange() {\n\t\t\tif (!document.hidden) {\n\t\t\t\tthis._restoreTitle()\n\t\t\t}\n\t\t},\n\n\t\t_setPollingInterval(pollInterval) {\n\t\t\tif (this.interval && pollInterval === this.pollIntervalCurrent) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconsole.debug('Polling interval updated to ' + pollInterval)\n\n\t\t\tif (this.interval) {\n\t\t\t\twindow.clearInterval(this.interval)\n\t\t\t\tthis.interval = null\n\t\t\t}\n\n\t\t\tthis.pollIntervalCurrent = pollInterval\n\t\t\tthis.setupBackgroundFetcher()\n\t\t},\n\n\t\t/**\n\t\t * The app was disabled or has no notifiers, so we can stop polling\n\t\t * And hide the UI as well\n\t\t *\n\t\t * @param {boolean} temporary If false, the notification bell will be hidden\n\t\t */\n\t\t_shutDownNotifications(temporary) {\n\t\t\tconsole.debug('Shutting down notifications ' + ((temporary) ? 'temporary' : 'bye'))\n\t\t\tif (this.interval) {\n\t\t\t\twindow.clearInterval(this.interval)\n\t\t\t\tthis.interval = null\n\t\t\t}\n\t\t\tthis.shutdown = !temporary\n\t\t},\n\n\t\t/**\n\t\t * Check if we can do web notifications\n\t\t */\n\t\tcheckWebNotificationPermissions() {\n\t\t\tif (!('Notification' in window)) {\n\t\t\t\tconsole.info('Browser does not support notifications')\n\t\t\t\tthis.webNotificationsGranted = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (window.Notification.permission === 'granted') {\n\t\t\t\tconsole.debug('Notifications permissions granted')\n\t\t\t\tthis.webNotificationsGranted = true\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (window.Notification.permission === 'denied') {\n\t\t\t\tconsole.debug('Notifications permissions denied')\n\t\t\t\tthis.webNotificationsGranted = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (window.location.protocol === 'http:') {\n\t\t\t\tconsole.debug('Notifications require HTTPS')\n\t\t\t\tthis.webNotificationsGranted = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconsole.info('Notifications permissions not yet requested')\n\t\t\tthis.webNotificationsGranted = null\n\t\t},\n\n\t\t/**\n\t\t * Check if we can do web notifications\n\t\t */\n\t\tasync requestWebNotificationPermissions() {\n\t\t\tif (this.webNotificationsGranted !== null) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconsole.info('Requesting notifications permissions')\n\t\t\twindow.Notification.requestPermission()\n\t\t\t\t.then((permissions) => {\n\t\t\t\t\tthis.webNotificationsGranted = permissions === 'granted'\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.notification-container {\n\t/* Prevent slide animation to go out of the div */\n\toverflow: hidden;\n}\n\n.notification-wrapper {\n\tmax-height: calc(100vh - 50px * 4);\n\toverflow: auto;\n}\n\n::v-deep .empty-content {\n\tmargin: 12vh 10px;\n\n\tp {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n\n.icon-alert-outline {\n\tbackground-size: 64px;\n\twidth: 64px;\n\theight: 64px;\n}\n\n.fade-enter-active,\n.fade-leave-active {\n\ttransition: opacity var(--animation-quick) ease;\n}\n\n.fade-enter-from,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.list-move,\n.list-enter-active,\n.list-leave-active {\n\ttransition: all var(--animation-quick) ease;\n}\n\n.list-enter-from,\n.list-leave-to {\n\topacity: 0;\n\ttransform: translateX(30px);\n}\n\n.list-leave-active {\n\twidth: 100%;\n}\n</style>\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationsApp.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!./NotificationsApp.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!./NotificationsApp.vue?vue&type=style&index=0&id=280ff602&prod&scoped=true&lang=scss\";\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!./NotificationsApp.vue?vue&type=style&index=0&id=280ff602&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NotificationsApp.vue?vue&type=template&id=280ff602&scoped=true\"\nimport script from \"./NotificationsApp.vue?vue&type=script&lang=js\"\nexport * from \"./NotificationsApp.vue?vue&type=script&lang=js\"\nimport style0 from \"./NotificationsApp.vue?vue&type=style&index=0&id=280ff602&prod&scoped=true&lang=scss\"\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 \"280ff602\",\n null\n \n)\n\nexport default component.exports"],"names":["___CSS_LOADER_EXPORT___","push","module","id","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","exports","name","components","NcButton","props","label","type","String","default","required","link","primary","Boolean","notificationIndex","Number","data","tabbed","computed","isWebLink","typeWithDefault","buttonType","methods","onClickActionButtonWeb","event","cancelAction","notification","$parent","$props","action","url","emit","preventDefault","error","console","showError","t","onClickActionButton","axios","method","_$el","fadeOut","OC","menuSpeed","$emit","$","trigger","Event","_vm","this","_c","_self","staticClass","attrs","on","_v","_s","_e","hasInternalLink","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","path","title","lastSlashPosition","lastIndexOf","firstSlashPosition","indexOf","substring","length","NcUserBubble","server","cloudId","Action","Close","Message","NcRichText","notificationId","datetime","app","icon","externalLink","user","message","messageRich","messageRichParameters","Array","subject","subjectRich","subjectRichParameters","objectType","objectId","shouldNotify","actions","index","showFullMessage","timestamp","Date","valueOf","absoluteDate","moment","format","relativeDate","diff","fromNow","useLink","parametersHaveLink","forEach","p","preparedSubjectParameters","prepareParameters","preparedMessageParameters","isCollapsedMessage","mounted","$el","showBrowserNotifications","backgroundFetching","_createWebNotification","loadState","Howl","src","generateFilePath","volume","play","parameters","richParameters","component","User","File","DefaultParameter","onClickMessage","target","closest","onDismissNotification","delete","generateOcsUrl","then","catch","n","Notification","lang","getLocale","body","tag","onclick","debug","window","location","href","focus","bind","scopedSlots","_u","key","fn","proxy","class","collapsed","_l","a","i","_b","getBuilder","clearOnLogout","persist","build","remapAttributes","notification_id","object_id","object_type","refreshData","async","requestConfig","lastETag","headers","response","get","BrowserStorage","setItem","status","JSON","stringify","ocs","_error$response","Bell","NcEmptyContent","NcHeaderMenu","_getCapabilities","webNotificationsGranted","hasNotifyPush","shutdown","theming","getCapabilities","hasThrottledPushNotifications","notifications","lastTabId","userStatus","tabId","pollIntervalBase","pollIntervalCurrent","interval","pushEndpoints","open","_$icon","isRedThemed","_this$theming","color","hsl","rgbToHsl","h","isOrangeThemed","_this$theming2","emptyContentMessage","emptyContentDescription","warningIcon","imagePath","requestToken","Math","random","$refs","_oldcount","registerMenu","button","container","undefined","checkWebNotificationPermissions","_fetch","listen","_fetchAfterNotifyPush","_setPollingInterval","_watchTabVisibility","subscribe","handleNetworkOffline","handleNetworkOnline","userStatusUpdated","beforeDestroy","unsubscribe","state","getCurrentUser","uid","userId","onOpen","requestWebNotificationPermissions","setupBackgroundFetcher","config","session_keepalive","setInterval","_backgroundFetch","onDismissAll","onRemove","splice","r","g","b","parseInt","max","min","s","l","d","_updateDocTitleOnNewNotifications","document","hidden","startsWith","_restoreTitle","setTimeout","forceRefresh","lastUpdated","getItem","lastTab","now","parse","getNotificationsData","etag","info","addEventListener","_visibilityChange","pollInterval","clearInterval","_shutDownNotifications","temporary","permission","protocol","requestPermission","permissions","$event","ref"],"sourceRoot":""}