diff --git a/dist/user_status-menu.js b/dist/user_status-menu.js index f561078e0da..5593a66d58a 100644 --- a/dist/user_status-menu.js +++ b/dist/user_status-menu.js @@ -1,2 +1,2 @@ -(()=>{var e,s,a,n={2991:(t,e,s)=>{"use strict";s.d(e,{A:()=>i});var a=s(71354),n=s.n(a),r=s(76314),o=s.n(r)()(n());o.push([t.id,".user-status-icon[data-v-262fe2d2]{width:20px;height:20px;margin:calc((var(--default-clickable-area) - 20px)/2);opacity:1 !important;background-size:20px;vertical-align:middle !important}","",{version:3,sources:["webpack://./apps/user_status/src/UserStatus.vue"],names:[],mappings:"AACA,mCACC,UAAA,CACA,WAAA,CACA,qDAAA,CACA,oBAAA,CACA,oBAAA,CACA,gCAAA",sourcesContent:["\n.user-status-icon {\n\twidth: 20px;\n\theight: 20px;\n\tmargin: calc((var(--default-clickable-area) - 20px) / 2); // 20px icon size\n\topacity: 1 !important;\n\tbackground-size: 20px;\n\tvertical-align: middle !important;\n}\n"],sourceRoot:""}]);const i=o},15340:()=>{},33114:(t,e,s)=>{"use strict";s.d(e,{A:()=>i});var a=s(85168),n=s(53334),r=s(95353),o=s(45369);const i={computed:{...(0,r.aH)({statusType:t=>t.userStatus.status,statusIsUserDefined:t=>t.userStatus.statusIsUserDefined,customIcon:t=>t.userStatus.icon,customMessage:t=>t.userStatus.message}),visibleMessage(){if(this.customIcon&&this.customMessage)return`${this.customIcon} ${this.customMessage}`;if(this.customMessage)return this.customMessage;if(this.statusIsUserDefined)switch(this.statusType){case"online":return(0,n.t)("user_status","Online");case"away":case"busy":return(0,n.t)("user_status","Away");case"dnd":return(0,n.t)("user_status","Do not disturb");case"invisible":return(0,n.t)("user_status","Invisible");case"offline":return(0,n.t)("user_status","Offline")}return(0,n.t)("user_status","Set status")}},methods:{async changeStatus(t){try{await this.$store.dispatch("setStatus",{statusType:t})}catch(t){(0,a.Qg)((0,n.t)("user_status","There was an error saving the new status")),o.v.debug(t)}}}}},45369:(t,e,s)=>{"use strict";s.d(e,{v:()=>a});const a=(0,s(35947).YK)().detectLogLevel().setApp("user_status").build()},47790:()=>{},51069:()=>{},53611:(t,e,s)=>{"use strict";s.d(e,{A:()=>a.N});var a=s(49313)},61913:(t,e,s)=>{"use strict";function a(){return new Date}s.d(e,{R:()=>a})},62424:(e,s,a)=>{"use strict";var n=a(21777),r=a(61338),o=a(85471),i=a(46855),u=a(54914),c=a(74095),l=a(1522),d=a(53611),p=a(45369),f=a(33114),m=a(19051),h=a(63814);const g={name:"UserStatus",components:{Fragment:u.F,NcButton:c.A,NcListItem:l.A,NcUserStatusIcon:d.A,SetStatusModal:()=>Promise.all([a.e(4208),a.e(945),a.e(5133)]).then(a.bind(a,29396))},mixins:[f.A],props:{inline:{type:Boolean,default:!1}},data:()=>({heartbeatInterval:null,isAway:!1,isModalOpen:!1,mouseMoveListener:null,setAwayTimeout:null}),mounted(){this.$store.dispatch("loadStatusFromInitialState"),OC.config.session_keepalive&&(this.heartbeatInterval=setInterval(this._backgroundHeartbeat.bind(this),3e5),this.setAwayTimeout=()=>{this.isAway=!0},this.mouseMoveListener=(0,i.A)(()=>{const t=this.isAway;this.isAway=!1,clearTimeout(this.setAwayTimeout),setTimeout(this.setAwayTimeout,12e4),t&&this._backgroundHeartbeat()},2e3,{immediate:!0}),window.addEventListener("mousemove",this.mouseMoveListener,{capture:!0,passive:!0}),this._backgroundHeartbeat()),(0,r.B1)("user_status:status.updated",this.handleUserStatusUpdated)},beforeDestroy(){window.removeEventListener("mouseMove",this.mouseMoveListener),clearInterval(this.heartbeatInterval),(0,r.al)("user_status:status.updated",this.handleUserStatusUpdated)},methods:{openModal(){this.isModalOpen=!0},closeModal(){this.isModalOpen=!1},async _backgroundHeartbeat(){try{const t=await async function(t){const e=(0,h.KT)("apps/user_status/api/v1/heartbeat?format=json");return(await m.Ay.put(e,{status:t?"away":"online"})).data.ocs.data}(this.isAway);t?.userId?this.$store.dispatch("setStatusFromHeartbeat",t):await this.$store.dispatch("reFetchStatusFromServer")}catch(t){p.v.debug("Failed sending heartbeat, got: "+t.response?.status)}},handleUserStatusUpdated(t){(0,n.HW)()?.uid===t.userId&&this.$store.dispatch("setStatusFromObject",{status:t.status,icon:t.icon,message:t.message})}}};var v=a(85072),y=a.n(v),b=a(97825),_=a.n(b),A=a(77659),w=a.n(A),S=a(55056),I=a.n(S),M=a(10540),C=a.n(M),O=a(41113),k=a.n(O),T=a(2991),E={};E.styleTagTransform=k(),E.setAttributes=I(),E.insert=w().bind(null,"head"),E.domAPI=_(),E.insertStyleElement=C(),y()(T.A,E),T.A&&T.A.locals&&T.A.locals;const $=(0,a(14486).A)(g,function(){var t=this,e=t._self._c;return e("Fragment",[t.inline?e("div",[e("NcButton",{on:{click:function(e){return e.stopPropagation(),t.openModal.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("NcUserStatusIcon",{staticClass:"user-status-icon",attrs:{status:t.statusType,"aria-hidden":"true"}})]},proxy:!0}])},[t._v("\n\t\t\t"+t._s(t.visibleMessage)+"\n\t\t")])],1):e("NcListItem",{staticClass:"user-status-menu-item",attrs:{compact:"",name:t.visibleMessage},on:{click:function(e){return e.stopPropagation(),t.openModal.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("NcUserStatusIcon",{staticClass:"user-status-icon",attrs:{status:t.statusType,"aria-hidden":"true"}})]},proxy:!0}],null,!1,2300440294)}),t._v(" "),t.isModalOpen?e("SetStatusModal",{attrs:{inline:t.inline},on:{close:t.closeModal}}):t._e()],1)},[],!1,null,"262fe2d2",null).exports;var j=a(95353);const x={state:{predefinedStatuses:[]},mutations:{addPredefinedStatus(t,e){t.predefinedStatuses=[...t.predefinedStatuses,e]}},getters:{statusesHaveLoaded:t=>t.predefinedStatuses.length>0},actions:{async loadAllPredefinedStatuses({state:t,commit:e}){if(t.predefinedStatuses.length>0)return;const s=await async function(){const t=(0,h.KT)("apps/user_status/api/v1/predefined_statuses?format=json");return(await m.Ay.get(t)).data.ocs.data}();for(const t of s)e("addPredefinedStatus",t)}}},P={state:{status:null,statusIsUserDefined:null,message:null,icon:null,clearAt:null,messageIsPredefined:null,messageId:null},mutations:{loadBackupStatusFromServer(t,{status:e,statusIsUserDefined:s,message:a,icon:n,clearAt:r,messageIsPredefined:o,messageId:i}){t.status=e,t.message=a,t.icon=n,void 0!==s&&(t.statusIsUserDefined=s),void 0!==r&&(t.clearAt=r),void 0!==o&&(t.messageIsPredefined=o),void 0!==i&&(t.messageId=i)}},getters:{},actions:{async fetchBackupFromServer({commit:t}){try{t("loadBackupStatusFromServer",await async function(t){const e=(0,h.KT)("apps/user_status/api/v1/statuses/{userId}",{userId:"_"+t});return(await m.Ay.get(e)).data.ocs.data}((0,n.HW)()?.uid))}catch{}},async revertBackupFromServer({commit:t},{messageId:e}){const s=await async function(t){const e=(0,h.KT)("apps/user_status/api/v1/user_status/revert/{messageId}",{messageId:t});return(await m.Ay.delete(e)).data.ocs.data}(e);s&&(t("loadBackupStatusFromServer",{}),t("loadStatusFromServer",s),(0,r.Ic)("user_status:status.updated",{status:s.status,message:s.message,icon:s.icon,clearAt:s.clearAt,userId:(0,n.HW)()?.uid}))}}};var F=a(81222),L=a(51651),U=a(61913);function N(t){if(null===t)return null;const e=(0,U.R)();if("period"===t.type)return e.setSeconds(e.getSeconds()+t.time),Math.floor(e.getTime()/1e3);if("end-of"===t.type)switch(t.time){case"day":case"week":return Number((0,L.A)(e).endOf(t.time).format("X"))}return"_time"===t.type?t.time:null}const H={state:{status:null,statusIsUserDefined:null,message:null,icon:null,clearAt:null,messageIsPredefined:null,messageId:null},mutations:{setStatus(t,{statusType:e}){t.status=e,t.statusIsUserDefined=!0},setPredefinedMessage(t,{messageId:e,clearAt:s,message:a,icon:n}){t.messageId=e,t.messageIsPredefined=!0,t.message=a,t.icon=n,t.clearAt=s},setCustomMessage(t,{message:e,icon:s,clearAt:a}){t.messageId=null,t.messageIsPredefined=!1,t.message=e,t.icon=s,t.clearAt=a},clearMessage(t){t.messageId=null,t.messageIsPredefined=!1,t.message=null,t.icon=null,t.clearAt=null},loadStatusFromServer(t,{status:e,statusIsUserDefined:s,message:a,icon:n,clearAt:r,messageIsPredefined:o,messageId:i}){t.status=e,t.message=a,t.icon=n,void 0!==s&&(t.statusIsUserDefined=s),void 0!==r&&(t.clearAt=r),void 0!==o&&(t.messageIsPredefined=o),void 0!==i&&(t.messageId=i)}},getters:{},actions:{async setStatus({commit:t,state:e},{statusType:s}){await async function(t){const e=(0,h.KT)("apps/user_status/api/v1/user_status/status");await m.Ay.put(e,{statusType:t})}(s),t("setStatus",{statusType:s}),(0,r.Ic)("user_status:status.updated",{status:e.status,message:e.message,icon:e.icon,clearAt:e.clearAt,userId:(0,n.HW)()?.uid})},async setStatusFromObject({commit:t},e){t("loadStatusFromServer",e)},async setPredefinedMessage({commit:t,rootState:e,state:s},{messageId:a,clearAt:o}){const i=N(o);await async function(t,e=null){const s=(0,h.KT)("apps/user_status/api/v1/user_status/message/predefined?format=json");await m.Ay.put(s,{messageId:t,clearAt:e})}(a,i);const u=e.predefinedStatuses.predefinedStatuses.find(t=>t.id===a),{message:c,icon:l}=u;t("setPredefinedMessage",{messageId:a,clearAt:i,message:c,icon:l}),(0,r.Ic)("user_status:status.updated",{status:s.status,message:s.message,icon:s.icon,clearAt:s.clearAt,userId:(0,n.HW)()?.uid})},async setCustomMessage({commit:t,state:e},{message:s,icon:a,clearAt:o}){const i=N(o);await async function(t,e=null,s=null){const a=(0,h.KT)("apps/user_status/api/v1/user_status/message/custom?format=json");await m.Ay.put(a,{message:t,statusIcon:e,clearAt:s})}(s,a,i),t("setCustomMessage",{message:s,icon:a,clearAt:i}),(0,r.Ic)("user_status:status.updated",{status:e.status,message:e.message,icon:e.icon,clearAt:e.clearAt,userId:(0,n.HW)()?.uid})},async clearMessage({commit:t,state:e}){await async function(){const t=(0,h.KT)("apps/user_status/api/v1/user_status/message?format=json");await m.Ay.delete(t)}(),t("clearMessage"),(0,r.Ic)("user_status:status.updated",{status:e.status,message:e.message,icon:e.icon,clearAt:e.clearAt,userId:(0,n.HW)()?.uid})},async reFetchStatusFromServer({commit:t}){t("loadStatusFromServer",await async function(){const t=(0,h.KT)("apps/user_status/api/v1/user_status");return(await m.Ay.get(t)).data.ocs.data}())},async setStatusFromHeartbeat({commit:t},e){t("loadStatusFromServer",e)},loadStatusFromInitialState({commit:t}){t("loadStatusFromServer",(0,F.C)("user_status","status"))}}};o.Ay.use(j.Ay);const D=new j.il({modules:{predefinedStatuses:x,userStatus:H,userBackupStatus:P},strict:!0});function B(){const t=document.getElementById("user_status-menu-entry");new o.Ay({el:t,render:t=>t($),store:D})}a.nc=(0,n.aV)(),o.Ay.prototype.t=t,o.Ay.prototype.$t=t,document.getElementById("user_status-menu-entry")?B():(0,r.B1)("core:user-menu:mounted",B),document.addEventListener("DOMContentLoaded",function(){OCA.Dashboard&&OCA.Dashboard.registerStatus("status",t=>new(o.Ay.extend($))({propsData:{inline:!0},store:D}).$mount(t))})},63779:()=>{},64688:()=>{},66089:()=>{},73776:()=>{},77199:()=>{},77965:()=>{},78982:()=>{},79368:()=>{},79838:()=>{},95353:(t,e,s)=>{"use strict";s.d(e,{Ay:()=>j,L8:()=>S,aH:()=>A,il:()=>p});var a=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function n(t,e){if(void 0===e&&(e=[]),null===t||"object"!=typeof t)return t;var s,a=(s=function(e){return e.original===t},e.filter(s)[0]);if(a)return a.copy;var r=Array.isArray(t)?[]:{};return e.push({original:t,copy:r}),Object.keys(t).forEach(function(s){r[s]=n(t[s],e)}),r}function r(t,e){Object.keys(t).forEach(function(s){return e(t[s],s)})}function o(t){return null!==t&&"object"==typeof t}var i=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var s=t.state;this.state=("function"==typeof s?s():s)||{}},u={namespaced:{configurable:!0}};u.namespaced.get=function(){return!!this._rawModule.namespaced},i.prototype.addChild=function(t,e){this._children[t]=e},i.prototype.removeChild=function(t){delete this._children[t]},i.prototype.getChild=function(t){return this._children[t]},i.prototype.hasChild=function(t){return t in this._children},i.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},i.prototype.forEachChild=function(t){r(this._children,t)},i.prototype.forEachGetter=function(t){this._rawModule.getters&&r(this._rawModule.getters,t)},i.prototype.forEachAction=function(t){this._rawModule.actions&&r(this._rawModule.actions,t)},i.prototype.forEachMutation=function(t){this._rawModule.mutations&&r(this._rawModule.mutations,t)},Object.defineProperties(i.prototype,u);var c,l=function(t){this.register([],t,!1)};function d(t,e,s){if(e.update(s),s.modules)for(var a in s.modules){if(!e.getChild(a))return;d(t.concat(a),e.getChild(a),s.modules[a])}}l.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},l.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,s){return t+((e=e.getChild(s)).namespaced?s+"/":"")},"")},l.prototype.update=function(t){d([],this.root,t)},l.prototype.register=function(t,e,s){var a=this;void 0===s&&(s=!0);var n=new i(e,s);0===t.length?this.root=n:this.get(t.slice(0,-1)).addChild(t[t.length-1],n),e.modules&&r(e.modules,function(e,n){a.register(t.concat(n),e,s)})},l.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),s=t[t.length-1],a=e.getChild(s);a&&a.runtime&&e.removeChild(s)},l.prototype.isRegistered=function(t){var e=this.get(t.slice(0,-1)),s=t[t.length-1];return!!e&&e.hasChild(s)};var p=function(t){var e=this;void 0===t&&(t={}),!c&&"undefined"!=typeof window&&window.Vue&&_(window.Vue);var s=t.plugins;void 0===s&&(s=[]);var n=t.strict;void 0===n&&(n=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new l(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new c,this._makeLocalGettersCache=Object.create(null);var r=this,o=this.dispatch,i=this.commit;this.dispatch=function(t,e){return o.call(r,t,e)},this.commit=function(t,e,s){return i.call(r,t,e,s)},this.strict=n;var u=this._modules.root.state;v(this,u,[],this._modules.root),g(this,u),s.forEach(function(t){return t(e)}),(void 0!==t.devtools?t.devtools:c.config.devtools)&&function(t){a&&(t._devtoolHook=a,a.emit("vuex:init",t),a.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){a.emit("vuex:mutation",t,e)},{prepend:!0}),t.subscribeAction(function(t,e){a.emit("vuex:action",t,e)},{prepend:!0}))}(this)},f={state:{configurable:!0}};function m(t,e,s){return e.indexOf(t)<0&&(s&&s.prepend?e.unshift(t):e.push(t)),function(){var s=e.indexOf(t);s>-1&&e.splice(s,1)}}function h(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var s=t.state;v(t,s,[],t._modules.root,!0),g(t,s,e)}function g(t,e,s){var a=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);var n=t._wrappedGetters,o={};r(n,function(e,s){o[s]=function(t,e){return function(){return t(e)}}(e,t),Object.defineProperty(t.getters,s,{get:function(){return t._vm[s]},enumerable:!0})});var i=c.config.silent;c.config.silent=!0,t._vm=new c({data:{$$state:e},computed:o}),c.config.silent=i,t.strict&&function(t){t._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}(t),a&&(s&&t._withCommit(function(){a._data.$$state=null}),c.nextTick(function(){return a.$destroy()}))}function v(t,e,s,a,n){var r=!s.length,o=t._modules.getNamespace(s);if(a.namespaced&&(t._modulesNamespaceMap[o],t._modulesNamespaceMap[o]=a),!r&&!n){var i=y(e,s.slice(0,-1)),u=s[s.length-1];t._withCommit(function(){c.set(i,u,a.state)})}var l=a.context=function(t,e,s){var a=""===e,n={dispatch:a?t.dispatch:function(s,a,n){var r=b(s,a,n),o=r.payload,i=r.options,u=r.type;return i&&i.root||(u=e+u),t.dispatch(u,o)},commit:a?t.commit:function(s,a,n){var r=b(s,a,n),o=r.payload,i=r.options,u=r.type;i&&i.root||(u=e+u),t.commit(u,o,i)}};return Object.defineProperties(n,{getters:{get:a?function(){return t.getters}:function(){return function(t,e){if(!t._makeLocalGettersCache[e]){var s={},a=e.length;Object.keys(t.getters).forEach(function(n){if(n.slice(0,a)===e){var r=n.slice(a);Object.defineProperty(s,r,{get:function(){return t.getters[n]},enumerable:!0})}}),t._makeLocalGettersCache[e]=s}return t._makeLocalGettersCache[e]}(t,e)}},state:{get:function(){return y(t.state,s)}}}),n}(t,o,s);a.forEachMutation(function(e,s){!function(t,e,s,a){(t._mutations[e]||(t._mutations[e]=[])).push(function(e){s.call(t,a.state,e)})}(t,o+s,e,l)}),a.forEachAction(function(e,s){var a=e.root?s:o+s,n=e.handler||e;!function(t,e,s,a){(t._actions[e]||(t._actions[e]=[])).push(function(e){var n,r=s.call(t,{dispatch:a.dispatch,commit:a.commit,getters:a.getters,state:a.state,rootGetters:t.getters,rootState:t.state},e);return(n=r)&&"function"==typeof n.then||(r=Promise.resolve(r)),t._devtoolHook?r.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):r})}(t,a,n,l)}),a.forEachGetter(function(e,s){!function(t,e,s,a){t._wrappedGetters[e]||(t._wrappedGetters[e]=function(t){return s(a.state,a.getters,t.state,t.getters)})}(t,o+s,e,l)}),a.forEachChild(function(a,r){v(t,e,s.concat(r),a,n)})}function y(t,e){return e.reduce(function(t,e){return t[e]},t)}function b(t,e,s){return o(t)&&t.type&&(s=e,e=t,t=t.type),{type:t,payload:e,options:s}}function _(t){c&&t===c||function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:s});else{var e=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[s].concat(t.init):s,e.call(this,t)}}function s(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}(c=t)}f.state.get=function(){return this._vm._data.$$state},f.state.set=function(t){},p.prototype.commit=function(t,e,s){var a=this,n=b(t,e,s),r=n.type,o=n.payload,i=(n.options,{type:r,payload:o}),u=this._mutations[r];u&&(this._withCommit(function(){u.forEach(function(t){t(o)})}),this._subscribers.slice().forEach(function(t){return t(i,a.state)}))},p.prototype.dispatch=function(t,e){var s=this,a=b(t,e),n=a.type,r=a.payload,o={type:n,payload:r},i=this._actions[n];if(i){try{this._actionSubscribers.slice().filter(function(t){return t.before}).forEach(function(t){return t.before(o,s.state)})}catch(t){}var u=i.length>1?Promise.all(i.map(function(t){return t(r)})):i[0](r);return new Promise(function(t,e){u.then(function(e){try{s._actionSubscribers.filter(function(t){return t.after}).forEach(function(t){return t.after(o,s.state)})}catch(t){}t(e)},function(t){try{s._actionSubscribers.filter(function(t){return t.error}).forEach(function(e){return e.error(o,s.state,t)})}catch(t){}e(t)})})}},p.prototype.subscribe=function(t,e){return m(t,this._subscribers,e)},p.prototype.subscribeAction=function(t,e){return m("function"==typeof t?{before:t}:t,this._actionSubscribers,e)},p.prototype.watch=function(t,e,s){var a=this;return this._watcherVM.$watch(function(){return t(a.state,a.getters)},e,s)},p.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm._data.$$state=t})},p.prototype.registerModule=function(t,e,s){void 0===s&&(s={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),v(this,this.state,t,this._modules.get(t),s.preserveState),g(this,this.state)},p.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var s=y(e.state,t.slice(0,-1));c.delete(s,t[t.length-1])}),h(this)},p.prototype.hasModule=function(t){return"string"==typeof t&&(t=[t]),this._modules.isRegistered(t)},p.prototype.hotUpdate=function(t){this._modules.update(t),h(this,!0)},p.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(p.prototype,f);var A=C(function(t,e){var s={};return M(e).forEach(function(e){var a=e.key,n=e.val;s[a]=function(){var e=this.$store.state,s=this.$store.getters;if(t){var a=O(this.$store,0,t);if(!a)return;e=a.context.state,s=a.context.getters}return"function"==typeof n?n.call(this,e,s):e[n]},s[a].vuex=!0}),s}),w=C(function(t,e){var s={};return M(e).forEach(function(e){var a=e.key,n=e.val;s[a]=function(){for(var e=[],s=arguments.length;s--;)e[s]=arguments[s];var a=this.$store.commit;if(t){var r=O(this.$store,0,t);if(!r)return;a=r.context.commit}return"function"==typeof n?n.apply(this,[a].concat(e)):a.apply(this.$store,[n].concat(e))}}),s}),S=C(function(t,e){var s={};return M(e).forEach(function(e){var a=e.key,n=e.val;n=t+n,s[a]=function(){if(!t||O(this.$store,0,t))return this.$store.getters[n]},s[a].vuex=!0}),s}),I=C(function(t,e){var s={};return M(e).forEach(function(e){var a=e.key,n=e.val;s[a]=function(){for(var e=[],s=arguments.length;s--;)e[s]=arguments[s];var a=this.$store.dispatch;if(t){var r=O(this.$store,0,t);if(!r)return;a=r.context.dispatch}return"function"==typeof n?n.apply(this,[a].concat(e)):a.apply(this.$store,[n].concat(e))}}),s});function M(t){return function(t){return Array.isArray(t)||o(t)}(t)?Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}}):[]}function C(t){return function(e,s){return"string"!=typeof e?(s=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,s)}}function O(t,e,s){return t._modulesNamespaceMap[s]}function k(t,e,s){var a=s?t.groupCollapsed:t.group;try{a.call(t,e)}catch(s){t.log(e)}}function T(t){try{t.groupEnd()}catch(e){t.log("—— log end ——")}}function E(){var t=new Date;return" @ "+$(t.getHours(),2)+":"+$(t.getMinutes(),2)+":"+$(t.getSeconds(),2)+"."+$(t.getMilliseconds(),3)}function $(t,e){return s=e-t.toString().length,new Array(s+1).join("0")+t;var s}const j={Store:p,install:_,version:"3.6.2",mapState:A,mapMutations:w,mapGetters:S,mapActions:I,createNamespacedHelpers:function(t){return{mapState:A.bind(null,t),mapGetters:S.bind(null,t),mapMutations:w.bind(null,t),mapActions:I.bind(null,t)}},createLogger:function(t){void 0===t&&(t={});var e=t.collapsed;void 0===e&&(e=!0);var s=t.filter;void 0===s&&(s=function(t,e,s){return!0});var a=t.transformer;void 0===a&&(a=function(t){return t});var r=t.mutationTransformer;void 0===r&&(r=function(t){return t});var o=t.actionFilter;void 0===o&&(o=function(t,e){return!0});var i=t.actionTransformer;void 0===i&&(i=function(t){return t});var u=t.logMutations;void 0===u&&(u=!0);var c=t.logActions;void 0===c&&(c=!0);var l=t.logger;return void 0===l&&(l=console),function(t){var d=n(t.state);void 0!==l&&(u&&t.subscribe(function(t,o){var i=n(o);if(s(t,d,i)){var u=E(),c=r(t),p="mutation "+t.type+u;k(l,p,e),l.log("%c prev state","color: #9E9E9E; font-weight: bold",a(d)),l.log("%c mutation","color: #03A9F4; font-weight: bold",c),l.log("%c next state","color: #4CAF50; font-weight: bold",a(i)),T(l)}d=i}),c&&t.subscribeAction(function(t,s){if(o(t,s)){var a=E(),n=i(t),r="action "+t.type+a;k(l,r,e),l.log("%c action","color: #03A9F4; font-weight: bold",n),T(l)}}))}}}}},r={};function o(t){var e=r[t];if(void 0!==e)return e.exports;var s=r[t]={id:t,loaded:!1,exports:{}};return n[t].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}o.m=n,e=[],o.O=(t,s,a,n)=>{if(!s){var r=1/0;for(l=0;l=n)&&Object.keys(o.O).every(t=>o.O[t](s[u]))?s.splice(u--,1):(i=!1,n0&&e[l-1][2]>n;l--)e[l]=e[l-1];e[l]=[s,a,n]},o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var s in e)o.o(e,s)&&!o.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},o.f={},o.e=t=>Promise.all(Object.keys(o.f).reduce((e,s)=>(o.f[s](t,e),e),[])),o.u=t=>(5133===t?"user-status-modal":t)+"-"+t+".js?v="+{594:"2c86902dfae9a5006399",620:"8f7783b39d802f10e22b",945:"589043de83a815d4b46f",2391:"908fc68e4bc9b878c937",2880:"fdf99dc4a6f328ebe498",4325:"67df7ab13a8e8d214551",5133:"9c9849aa3b2d2915c57c",5862:"d020c05f13d21afee82a",7145:"7889fe0b0ebc57e3d5f1",8339:"6cdca71a6b3b2d7bef33"}[t],o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),s={},a="nextcloud-ui-legacy:",o.l=(t,e,n,r)=>{if(s[t])s[t].push(e);else{var i,u;if(void 0!==n)for(var c=document.getElementsByTagName("script"),l=0;l{i.onerror=i.onload=null,clearTimeout(f);var n=s[t];if(delete s[t],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach(t=>t(a)),e)return e(a)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),u&&document.head.appendChild(i)}},o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),o.j=9953,(()=>{var t;globalThis.importScripts&&(t=globalThis.location+"");var e=globalThis.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var s=e.getElementsByTagName("script");if(s.length)for(var a=s.length-1;a>-1&&(!t||!/^http(s?):/.test(t));)t=s[a--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=t})(),(()=>{var t={9953:0};o.f.j=(e,s)=>{var a=o.o(t,e)?t[e]:void 0;if(0!==a)if(a)s.push(a[2]);else{var n=new Promise((s,n)=>a=t[e]=[s,n]);s.push(a[2]=n);var r=o.p+o.u(e),i=new Error;o.l(r,s=>{if(o.o(t,e)&&(0!==(a=t[e])&&(t[e]=void 0),a)){var n=s&&("load"===s.type?"missing":s.type),r=s&&s.target&&s.target.src;i.message="Loading chunk "+e+" failed.\n("+n+": "+r+")",i.name="ChunkLoadError",i.type=n,i.request=r,a[1](i)}},"chunk-"+e,e)}},o.O.j=e=>0===t[e];var e=(e,s)=>{var a,n,[r,i,u]=s,c=0;if(r.some(e=>0!==t[e])){for(a in i)o.o(i,a)&&(o.m[a]=i[a]);if(u)var l=u(o)}for(e&&e(s);co(62424));i=o.O(i)})(); -//# sourceMappingURL=user_status-menu.js.map?v=817623ffc8ff26469be0 \ No newline at end of file +(()=>{var e,s,a,n={2991:(t,e,s)=>{"use strict";s.d(e,{A:()=>i});var a=s(71354),n=s.n(a),r=s(76314),o=s.n(r)()(n());o.push([t.id,".user-status-icon[data-v-262fe2d2]{width:20px;height:20px;margin:calc((var(--default-clickable-area) - 20px)/2);opacity:1 !important;background-size:20px;vertical-align:middle !important}","",{version:3,sources:["webpack://./apps/user_status/src/UserStatus.vue"],names:[],mappings:"AACA,mCACC,UAAA,CACA,WAAA,CACA,qDAAA,CACA,oBAAA,CACA,oBAAA,CACA,gCAAA",sourcesContent:["\n.user-status-icon {\n\twidth: 20px;\n\theight: 20px;\n\tmargin: calc((var(--default-clickable-area) - 20px) / 2); // 20px icon size\n\topacity: 1 !important;\n\tbackground-size: 20px;\n\tvertical-align: middle !important;\n}\n"],sourceRoot:""}]);const i=o},15340:()=>{},33114:(t,e,s)=>{"use strict";s.d(e,{A:()=>i});var a=s(85168),n=s(53334),r=s(95353),o=s(45369);const i={computed:{...(0,r.aH)({statusType:t=>t.userStatus.status,statusIsUserDefined:t=>t.userStatus.statusIsUserDefined,customIcon:t=>t.userStatus.icon,customMessage:t=>t.userStatus.message}),visibleMessage(){if(this.customIcon&&this.customMessage)return`${this.customIcon} ${this.customMessage}`;if(this.customMessage)return this.customMessage;if(this.statusIsUserDefined)switch(this.statusType){case"online":return(0,n.t)("user_status","Online");case"away":return(0,n.t)("user_status","Away");case"busy":return(0,n.t)("user_status","Busy");case"dnd":return(0,n.t)("user_status","Do not disturb");case"invisible":return(0,n.t)("user_status","Invisible");case"offline":return(0,n.t)("user_status","Offline")}return(0,n.t)("user_status","Set status")}},methods:{async changeStatus(t){try{await this.$store.dispatch("setStatus",{statusType:t})}catch(t){(0,a.Qg)((0,n.t)("user_status","There was an error saving the new status")),o.v.debug(t)}}}}},45369:(t,e,s)=>{"use strict";s.d(e,{v:()=>a});const a=(0,s(35947).YK)().detectLogLevel().setApp("user_status").build()},47790:()=>{},51069:()=>{},53611:(t,e,s)=>{"use strict";s.d(e,{A:()=>a.N});var a=s(49313)},61913:(t,e,s)=>{"use strict";function a(){return new Date}s.d(e,{R:()=>a})},62424:(e,s,a)=>{"use strict";var n=a(21777),r=a(61338),o=a(85471),i=a(46855),u=a(54914),c=a(74095),l=a(1522),d=a(53611),p=a(45369),f=a(33114),m=a(19051),h=a(63814);const g={name:"UserStatus",components:{Fragment:u.F,NcButton:c.A,NcListItem:l.A,NcUserStatusIcon:d.A,SetStatusModal:()=>Promise.all([a.e(4208),a.e(945),a.e(5133)]).then(a.bind(a,29396))},mixins:[f.A],props:{inline:{type:Boolean,default:!1}},data:()=>({heartbeatInterval:null,isAway:!1,isModalOpen:!1,mouseMoveListener:null,setAwayTimeout:null}),mounted(){this.$store.dispatch("loadStatusFromInitialState"),OC.config.session_keepalive&&(this.heartbeatInterval=setInterval(this._backgroundHeartbeat.bind(this),3e5),this.setAwayTimeout=()=>{this.isAway=!0},this.mouseMoveListener=(0,i.A)(()=>{const t=this.isAway;this.isAway=!1,clearTimeout(this.setAwayTimeout),setTimeout(this.setAwayTimeout,12e4),t&&this._backgroundHeartbeat()},2e3,{immediate:!0}),window.addEventListener("mousemove",this.mouseMoveListener,{capture:!0,passive:!0}),this._backgroundHeartbeat()),(0,r.B1)("user_status:status.updated",this.handleUserStatusUpdated)},beforeDestroy(){window.removeEventListener("mouseMove",this.mouseMoveListener),clearInterval(this.heartbeatInterval),(0,r.al)("user_status:status.updated",this.handleUserStatusUpdated)},methods:{openModal(){this.isModalOpen=!0},closeModal(){this.isModalOpen=!1},async _backgroundHeartbeat(){try{const t=await async function(t){const e=(0,h.KT)("apps/user_status/api/v1/heartbeat?format=json");return(await m.Ay.put(e,{status:t?"away":"online"})).data.ocs.data}(this.isAway);t?.userId?this.$store.dispatch("setStatusFromHeartbeat",t):await this.$store.dispatch("reFetchStatusFromServer")}catch(t){p.v.debug("Failed sending heartbeat, got: "+t.response?.status)}},handleUserStatusUpdated(t){(0,n.HW)()?.uid===t.userId&&this.$store.dispatch("setStatusFromObject",{status:t.status,icon:t.icon,message:t.message})}}};var v=a(85072),y=a.n(v),b=a(97825),_=a.n(b),A=a(77659),w=a.n(A),S=a(55056),I=a.n(S),M=a(10540),C=a.n(M),O=a(41113),k=a.n(O),T=a(2991),E={};E.styleTagTransform=k(),E.setAttributes=I(),E.insert=w().bind(null,"head"),E.domAPI=_(),E.insertStyleElement=C(),y()(T.A,E),T.A&&T.A.locals&&T.A.locals;const $=(0,a(14486).A)(g,function(){var t=this,e=t._self._c;return e("Fragment",[t.inline?e("div",[e("NcButton",{on:{click:function(e){return e.stopPropagation(),t.openModal.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("NcUserStatusIcon",{staticClass:"user-status-icon",attrs:{status:t.statusType,"aria-hidden":"true"}})]},proxy:!0}])},[t._v("\n\t\t\t"+t._s(t.visibleMessage)+"\n\t\t")])],1):e("NcListItem",{staticClass:"user-status-menu-item",attrs:{compact:"",name:t.visibleMessage},on:{click:function(e){return e.stopPropagation(),t.openModal.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("NcUserStatusIcon",{staticClass:"user-status-icon",attrs:{status:t.statusType,"aria-hidden":"true"}})]},proxy:!0}],null,!1,2300440294)}),t._v(" "),t.isModalOpen?e("SetStatusModal",{attrs:{inline:t.inline},on:{close:t.closeModal}}):t._e()],1)},[],!1,null,"262fe2d2",null).exports;var j=a(95353);const x={state:{predefinedStatuses:[]},mutations:{addPredefinedStatus(t,e){t.predefinedStatuses=[...t.predefinedStatuses,e]}},getters:{statusesHaveLoaded:t=>t.predefinedStatuses.length>0},actions:{async loadAllPredefinedStatuses({state:t,commit:e}){if(t.predefinedStatuses.length>0)return;const s=await async function(){const t=(0,h.KT)("apps/user_status/api/v1/predefined_statuses?format=json");return(await m.Ay.get(t)).data.ocs.data}();for(const t of s)e("addPredefinedStatus",t)}}},P={state:{status:null,statusIsUserDefined:null,message:null,icon:null,clearAt:null,messageIsPredefined:null,messageId:null},mutations:{loadBackupStatusFromServer(t,{status:e,statusIsUserDefined:s,message:a,icon:n,clearAt:r,messageIsPredefined:o,messageId:i}){t.status=e,t.message=a,t.icon=n,void 0!==s&&(t.statusIsUserDefined=s),void 0!==r&&(t.clearAt=r),void 0!==o&&(t.messageIsPredefined=o),void 0!==i&&(t.messageId=i)}},getters:{},actions:{async fetchBackupFromServer({commit:t}){try{t("loadBackupStatusFromServer",await async function(t){const e=(0,h.KT)("apps/user_status/api/v1/statuses/{userId}",{userId:"_"+t});return(await m.Ay.get(e)).data.ocs.data}((0,n.HW)()?.uid))}catch{}},async revertBackupFromServer({commit:t},{messageId:e}){const s=await async function(t){const e=(0,h.KT)("apps/user_status/api/v1/user_status/revert/{messageId}",{messageId:t});return(await m.Ay.delete(e)).data.ocs.data}(e);s&&(t("loadBackupStatusFromServer",{}),t("loadStatusFromServer",s),(0,r.Ic)("user_status:status.updated",{status:s.status,message:s.message,icon:s.icon,clearAt:s.clearAt,userId:(0,n.HW)()?.uid}))}}};var F=a(81222),L=a(51651),U=a(61913);function N(t){if(null===t)return null;const e=(0,U.R)();if("period"===t.type)return e.setSeconds(e.getSeconds()+t.time),Math.floor(e.getTime()/1e3);if("end-of"===t.type)switch(t.time){case"day":case"week":return Number((0,L.A)(e).endOf(t.time).format("X"))}return"_time"===t.type?t.time:null}const H={state:{status:null,statusIsUserDefined:null,message:null,icon:null,clearAt:null,messageIsPredefined:null,messageId:null},mutations:{setStatus(t,{statusType:e}){t.status=e,t.statusIsUserDefined=!0},setPredefinedMessage(t,{messageId:e,clearAt:s,message:a,icon:n}){t.messageId=e,t.messageIsPredefined=!0,t.message=a,t.icon=n,t.clearAt=s},setCustomMessage(t,{message:e,icon:s,clearAt:a}){t.messageId=null,t.messageIsPredefined=!1,t.message=e,t.icon=s,t.clearAt=a},clearMessage(t){t.messageId=null,t.messageIsPredefined=!1,t.message=null,t.icon=null,t.clearAt=null},loadStatusFromServer(t,{status:e,statusIsUserDefined:s,message:a,icon:n,clearAt:r,messageIsPredefined:o,messageId:i}){t.status=e,t.message=a,t.icon=n,void 0!==s&&(t.statusIsUserDefined=s),void 0!==r&&(t.clearAt=r),void 0!==o&&(t.messageIsPredefined=o),void 0!==i&&(t.messageId=i)}},getters:{},actions:{async setStatus({commit:t,state:e},{statusType:s}){await async function(t){const e=(0,h.KT)("apps/user_status/api/v1/user_status/status");await m.Ay.put(e,{statusType:t})}(s),t("setStatus",{statusType:s}),(0,r.Ic)("user_status:status.updated",{status:e.status,message:e.message,icon:e.icon,clearAt:e.clearAt,userId:(0,n.HW)()?.uid})},async setStatusFromObject({commit:t},e){t("loadStatusFromServer",e)},async setPredefinedMessage({commit:t,rootState:e,state:s},{messageId:a,clearAt:o}){const i=N(o);await async function(t,e=null){const s=(0,h.KT)("apps/user_status/api/v1/user_status/message/predefined?format=json");await m.Ay.put(s,{messageId:t,clearAt:e})}(a,i);const u=e.predefinedStatuses.predefinedStatuses.find(t=>t.id===a),{message:c,icon:l}=u;t("setPredefinedMessage",{messageId:a,clearAt:i,message:c,icon:l}),(0,r.Ic)("user_status:status.updated",{status:s.status,message:s.message,icon:s.icon,clearAt:s.clearAt,userId:(0,n.HW)()?.uid})},async setCustomMessage({commit:t,state:e},{message:s,icon:a,clearAt:o}){const i=N(o);await async function(t,e=null,s=null){const a=(0,h.KT)("apps/user_status/api/v1/user_status/message/custom?format=json");await m.Ay.put(a,{message:t,statusIcon:e,clearAt:s})}(s,a,i),t("setCustomMessage",{message:s,icon:a,clearAt:i}),(0,r.Ic)("user_status:status.updated",{status:e.status,message:e.message,icon:e.icon,clearAt:e.clearAt,userId:(0,n.HW)()?.uid})},async clearMessage({commit:t,state:e}){await async function(){const t=(0,h.KT)("apps/user_status/api/v1/user_status/message?format=json");await m.Ay.delete(t)}(),t("clearMessage"),(0,r.Ic)("user_status:status.updated",{status:e.status,message:e.message,icon:e.icon,clearAt:e.clearAt,userId:(0,n.HW)()?.uid})},async reFetchStatusFromServer({commit:t}){t("loadStatusFromServer",await async function(){const t=(0,h.KT)("apps/user_status/api/v1/user_status");return(await m.Ay.get(t)).data.ocs.data}())},async setStatusFromHeartbeat({commit:t},e){t("loadStatusFromServer",e)},loadStatusFromInitialState({commit:t}){t("loadStatusFromServer",(0,F.C)("user_status","status"))}}};o.Ay.use(j.Ay);const D=new j.il({modules:{predefinedStatuses:x,userStatus:H,userBackupStatus:P},strict:!0});function B(){const t=document.getElementById("user_status-menu-entry");new o.Ay({el:t,render:t=>t($),store:D})}a.nc=(0,n.aV)(),o.Ay.prototype.t=t,o.Ay.prototype.$t=t,document.getElementById("user_status-menu-entry")?B():(0,r.B1)("core:user-menu:mounted",B),document.addEventListener("DOMContentLoaded",function(){OCA.Dashboard&&OCA.Dashboard.registerStatus("status",t=>new(o.Ay.extend($))({propsData:{inline:!0},store:D}).$mount(t))})},63779:()=>{},64688:()=>{},66089:()=>{},73776:()=>{},77199:()=>{},77965:()=>{},78982:()=>{},79368:()=>{},79838:()=>{},95353:(t,e,s)=>{"use strict";s.d(e,{Ay:()=>j,L8:()=>S,aH:()=>A,il:()=>p});var a=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function n(t,e){if(void 0===e&&(e=[]),null===t||"object"!=typeof t)return t;var s,a=(s=function(e){return e.original===t},e.filter(s)[0]);if(a)return a.copy;var r=Array.isArray(t)?[]:{};return e.push({original:t,copy:r}),Object.keys(t).forEach(function(s){r[s]=n(t[s],e)}),r}function r(t,e){Object.keys(t).forEach(function(s){return e(t[s],s)})}function o(t){return null!==t&&"object"==typeof t}var i=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var s=t.state;this.state=("function"==typeof s?s():s)||{}},u={namespaced:{configurable:!0}};u.namespaced.get=function(){return!!this._rawModule.namespaced},i.prototype.addChild=function(t,e){this._children[t]=e},i.prototype.removeChild=function(t){delete this._children[t]},i.prototype.getChild=function(t){return this._children[t]},i.prototype.hasChild=function(t){return t in this._children},i.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},i.prototype.forEachChild=function(t){r(this._children,t)},i.prototype.forEachGetter=function(t){this._rawModule.getters&&r(this._rawModule.getters,t)},i.prototype.forEachAction=function(t){this._rawModule.actions&&r(this._rawModule.actions,t)},i.prototype.forEachMutation=function(t){this._rawModule.mutations&&r(this._rawModule.mutations,t)},Object.defineProperties(i.prototype,u);var c,l=function(t){this.register([],t,!1)};function d(t,e,s){if(e.update(s),s.modules)for(var a in s.modules){if(!e.getChild(a))return;d(t.concat(a),e.getChild(a),s.modules[a])}}l.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},l.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,s){return t+((e=e.getChild(s)).namespaced?s+"/":"")},"")},l.prototype.update=function(t){d([],this.root,t)},l.prototype.register=function(t,e,s){var a=this;void 0===s&&(s=!0);var n=new i(e,s);0===t.length?this.root=n:this.get(t.slice(0,-1)).addChild(t[t.length-1],n),e.modules&&r(e.modules,function(e,n){a.register(t.concat(n),e,s)})},l.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),s=t[t.length-1],a=e.getChild(s);a&&a.runtime&&e.removeChild(s)},l.prototype.isRegistered=function(t){var e=this.get(t.slice(0,-1)),s=t[t.length-1];return!!e&&e.hasChild(s)};var p=function(t){var e=this;void 0===t&&(t={}),!c&&"undefined"!=typeof window&&window.Vue&&_(window.Vue);var s=t.plugins;void 0===s&&(s=[]);var n=t.strict;void 0===n&&(n=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new l(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new c,this._makeLocalGettersCache=Object.create(null);var r=this,o=this.dispatch,i=this.commit;this.dispatch=function(t,e){return o.call(r,t,e)},this.commit=function(t,e,s){return i.call(r,t,e,s)},this.strict=n;var u=this._modules.root.state;v(this,u,[],this._modules.root),g(this,u),s.forEach(function(t){return t(e)}),(void 0!==t.devtools?t.devtools:c.config.devtools)&&function(t){a&&(t._devtoolHook=a,a.emit("vuex:init",t),a.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){a.emit("vuex:mutation",t,e)},{prepend:!0}),t.subscribeAction(function(t,e){a.emit("vuex:action",t,e)},{prepend:!0}))}(this)},f={state:{configurable:!0}};function m(t,e,s){return e.indexOf(t)<0&&(s&&s.prepend?e.unshift(t):e.push(t)),function(){var s=e.indexOf(t);s>-1&&e.splice(s,1)}}function h(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var s=t.state;v(t,s,[],t._modules.root,!0),g(t,s,e)}function g(t,e,s){var a=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);var n=t._wrappedGetters,o={};r(n,function(e,s){o[s]=function(t,e){return function(){return t(e)}}(e,t),Object.defineProperty(t.getters,s,{get:function(){return t._vm[s]},enumerable:!0})});var i=c.config.silent;c.config.silent=!0,t._vm=new c({data:{$$state:e},computed:o}),c.config.silent=i,t.strict&&function(t){t._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}(t),a&&(s&&t._withCommit(function(){a._data.$$state=null}),c.nextTick(function(){return a.$destroy()}))}function v(t,e,s,a,n){var r=!s.length,o=t._modules.getNamespace(s);if(a.namespaced&&(t._modulesNamespaceMap[o],t._modulesNamespaceMap[o]=a),!r&&!n){var i=y(e,s.slice(0,-1)),u=s[s.length-1];t._withCommit(function(){c.set(i,u,a.state)})}var l=a.context=function(t,e,s){var a=""===e,n={dispatch:a?t.dispatch:function(s,a,n){var r=b(s,a,n),o=r.payload,i=r.options,u=r.type;return i&&i.root||(u=e+u),t.dispatch(u,o)},commit:a?t.commit:function(s,a,n){var r=b(s,a,n),o=r.payload,i=r.options,u=r.type;i&&i.root||(u=e+u),t.commit(u,o,i)}};return Object.defineProperties(n,{getters:{get:a?function(){return t.getters}:function(){return function(t,e){if(!t._makeLocalGettersCache[e]){var s={},a=e.length;Object.keys(t.getters).forEach(function(n){if(n.slice(0,a)===e){var r=n.slice(a);Object.defineProperty(s,r,{get:function(){return t.getters[n]},enumerable:!0})}}),t._makeLocalGettersCache[e]=s}return t._makeLocalGettersCache[e]}(t,e)}},state:{get:function(){return y(t.state,s)}}}),n}(t,o,s);a.forEachMutation(function(e,s){!function(t,e,s,a){(t._mutations[e]||(t._mutations[e]=[])).push(function(e){s.call(t,a.state,e)})}(t,o+s,e,l)}),a.forEachAction(function(e,s){var a=e.root?s:o+s,n=e.handler||e;!function(t,e,s,a){(t._actions[e]||(t._actions[e]=[])).push(function(e){var n,r=s.call(t,{dispatch:a.dispatch,commit:a.commit,getters:a.getters,state:a.state,rootGetters:t.getters,rootState:t.state},e);return(n=r)&&"function"==typeof n.then||(r=Promise.resolve(r)),t._devtoolHook?r.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):r})}(t,a,n,l)}),a.forEachGetter(function(e,s){!function(t,e,s,a){t._wrappedGetters[e]||(t._wrappedGetters[e]=function(t){return s(a.state,a.getters,t.state,t.getters)})}(t,o+s,e,l)}),a.forEachChild(function(a,r){v(t,e,s.concat(r),a,n)})}function y(t,e){return e.reduce(function(t,e){return t[e]},t)}function b(t,e,s){return o(t)&&t.type&&(s=e,e=t,t=t.type),{type:t,payload:e,options:s}}function _(t){c&&t===c||function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:s});else{var e=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[s].concat(t.init):s,e.call(this,t)}}function s(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}(c=t)}f.state.get=function(){return this._vm._data.$$state},f.state.set=function(t){},p.prototype.commit=function(t,e,s){var a=this,n=b(t,e,s),r=n.type,o=n.payload,i=(n.options,{type:r,payload:o}),u=this._mutations[r];u&&(this._withCommit(function(){u.forEach(function(t){t(o)})}),this._subscribers.slice().forEach(function(t){return t(i,a.state)}))},p.prototype.dispatch=function(t,e){var s=this,a=b(t,e),n=a.type,r=a.payload,o={type:n,payload:r},i=this._actions[n];if(i){try{this._actionSubscribers.slice().filter(function(t){return t.before}).forEach(function(t){return t.before(o,s.state)})}catch(t){}var u=i.length>1?Promise.all(i.map(function(t){return t(r)})):i[0](r);return new Promise(function(t,e){u.then(function(e){try{s._actionSubscribers.filter(function(t){return t.after}).forEach(function(t){return t.after(o,s.state)})}catch(t){}t(e)},function(t){try{s._actionSubscribers.filter(function(t){return t.error}).forEach(function(e){return e.error(o,s.state,t)})}catch(t){}e(t)})})}},p.prototype.subscribe=function(t,e){return m(t,this._subscribers,e)},p.prototype.subscribeAction=function(t,e){return m("function"==typeof t?{before:t}:t,this._actionSubscribers,e)},p.prototype.watch=function(t,e,s){var a=this;return this._watcherVM.$watch(function(){return t(a.state,a.getters)},e,s)},p.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm._data.$$state=t})},p.prototype.registerModule=function(t,e,s){void 0===s&&(s={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),v(this,this.state,t,this._modules.get(t),s.preserveState),g(this,this.state)},p.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var s=y(e.state,t.slice(0,-1));c.delete(s,t[t.length-1])}),h(this)},p.prototype.hasModule=function(t){return"string"==typeof t&&(t=[t]),this._modules.isRegistered(t)},p.prototype.hotUpdate=function(t){this._modules.update(t),h(this,!0)},p.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(p.prototype,f);var A=C(function(t,e){var s={};return M(e).forEach(function(e){var a=e.key,n=e.val;s[a]=function(){var e=this.$store.state,s=this.$store.getters;if(t){var a=O(this.$store,0,t);if(!a)return;e=a.context.state,s=a.context.getters}return"function"==typeof n?n.call(this,e,s):e[n]},s[a].vuex=!0}),s}),w=C(function(t,e){var s={};return M(e).forEach(function(e){var a=e.key,n=e.val;s[a]=function(){for(var e=[],s=arguments.length;s--;)e[s]=arguments[s];var a=this.$store.commit;if(t){var r=O(this.$store,0,t);if(!r)return;a=r.context.commit}return"function"==typeof n?n.apply(this,[a].concat(e)):a.apply(this.$store,[n].concat(e))}}),s}),S=C(function(t,e){var s={};return M(e).forEach(function(e){var a=e.key,n=e.val;n=t+n,s[a]=function(){if(!t||O(this.$store,0,t))return this.$store.getters[n]},s[a].vuex=!0}),s}),I=C(function(t,e){var s={};return M(e).forEach(function(e){var a=e.key,n=e.val;s[a]=function(){for(var e=[],s=arguments.length;s--;)e[s]=arguments[s];var a=this.$store.dispatch;if(t){var r=O(this.$store,0,t);if(!r)return;a=r.context.dispatch}return"function"==typeof n?n.apply(this,[a].concat(e)):a.apply(this.$store,[n].concat(e))}}),s});function M(t){return function(t){return Array.isArray(t)||o(t)}(t)?Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}}):[]}function C(t){return function(e,s){return"string"!=typeof e?(s=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,s)}}function O(t,e,s){return t._modulesNamespaceMap[s]}function k(t,e,s){var a=s?t.groupCollapsed:t.group;try{a.call(t,e)}catch(s){t.log(e)}}function T(t){try{t.groupEnd()}catch(e){t.log("—— log end ——")}}function E(){var t=new Date;return" @ "+$(t.getHours(),2)+":"+$(t.getMinutes(),2)+":"+$(t.getSeconds(),2)+"."+$(t.getMilliseconds(),3)}function $(t,e){return s=e-t.toString().length,new Array(s+1).join("0")+t;var s}const j={Store:p,install:_,version:"3.6.2",mapState:A,mapMutations:w,mapGetters:S,mapActions:I,createNamespacedHelpers:function(t){return{mapState:A.bind(null,t),mapGetters:S.bind(null,t),mapMutations:w.bind(null,t),mapActions:I.bind(null,t)}},createLogger:function(t){void 0===t&&(t={});var e=t.collapsed;void 0===e&&(e=!0);var s=t.filter;void 0===s&&(s=function(t,e,s){return!0});var a=t.transformer;void 0===a&&(a=function(t){return t});var r=t.mutationTransformer;void 0===r&&(r=function(t){return t});var o=t.actionFilter;void 0===o&&(o=function(t,e){return!0});var i=t.actionTransformer;void 0===i&&(i=function(t){return t});var u=t.logMutations;void 0===u&&(u=!0);var c=t.logActions;void 0===c&&(c=!0);var l=t.logger;return void 0===l&&(l=console),function(t){var d=n(t.state);void 0!==l&&(u&&t.subscribe(function(t,o){var i=n(o);if(s(t,d,i)){var u=E(),c=r(t),p="mutation "+t.type+u;k(l,p,e),l.log("%c prev state","color: #9E9E9E; font-weight: bold",a(d)),l.log("%c mutation","color: #03A9F4; font-weight: bold",c),l.log("%c next state","color: #4CAF50; font-weight: bold",a(i)),T(l)}d=i}),c&&t.subscribeAction(function(t,s){if(o(t,s)){var a=E(),n=i(t),r="action "+t.type+a;k(l,r,e),l.log("%c action","color: #03A9F4; font-weight: bold",n),T(l)}}))}}}}},r={};function o(t){var e=r[t];if(void 0!==e)return e.exports;var s=r[t]={id:t,loaded:!1,exports:{}};return n[t].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}o.m=n,e=[],o.O=(t,s,a,n)=>{if(!s){var r=1/0;for(l=0;l=n)&&Object.keys(o.O).every(t=>o.O[t](s[u]))?s.splice(u--,1):(i=!1,n0&&e[l-1][2]>n;l--)e[l]=e[l-1];e[l]=[s,a,n]},o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var s in e)o.o(e,s)&&!o.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},o.f={},o.e=t=>Promise.all(Object.keys(o.f).reduce((e,s)=>(o.f[s](t,e),e),[])),o.u=t=>(5133===t?"user-status-modal":t)+"-"+t+".js?v="+{594:"2c86902dfae9a5006399",620:"8f7783b39d802f10e22b",945:"589043de83a815d4b46f",2391:"908fc68e4bc9b878c937",2880:"fdf99dc4a6f328ebe498",4325:"67df7ab13a8e8d214551",5133:"9c9849aa3b2d2915c57c",5862:"d020c05f13d21afee82a",7145:"7889fe0b0ebc57e3d5f1",8339:"6cdca71a6b3b2d7bef33"}[t],o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),s={},a="nextcloud-ui-legacy:",o.l=(t,e,n,r)=>{if(s[t])s[t].push(e);else{var i,u;if(void 0!==n)for(var c=document.getElementsByTagName("script"),l=0;l{i.onerror=i.onload=null,clearTimeout(f);var n=s[t];if(delete s[t],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach(t=>t(a)),e)return e(a)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),u&&document.head.appendChild(i)}},o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),o.j=9953,(()=>{var t;globalThis.importScripts&&(t=globalThis.location+"");var e=globalThis.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var s=e.getElementsByTagName("script");if(s.length)for(var a=s.length-1;a>-1&&(!t||!/^http(s?):/.test(t));)t=s[a--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=t})(),(()=>{var t={9953:0};o.f.j=(e,s)=>{var a=o.o(t,e)?t[e]:void 0;if(0!==a)if(a)s.push(a[2]);else{var n=new Promise((s,n)=>a=t[e]=[s,n]);s.push(a[2]=n);var r=o.p+o.u(e),i=new Error;o.l(r,s=>{if(o.o(t,e)&&(0!==(a=t[e])&&(t[e]=void 0),a)){var n=s&&("load"===s.type?"missing":s.type),r=s&&s.target&&s.target.src;i.message="Loading chunk "+e+" failed.\n("+n+": "+r+")",i.name="ChunkLoadError",i.type=n,i.request=r,a[1](i)}},"chunk-"+e,e)}},o.O.j=e=>0===t[e];var e=(e,s)=>{var a,n,[r,i,u]=s,c=0;if(r.some(e=>0!==t[e])){for(a in i)o.o(i,a)&&(o.m[a]=i[a]);if(u)var l=u(o)}for(e&&e(s);co(62424));i=o.O(i)})(); +//# sourceMappingURL=user_status-menu.js.map?v=b98f044c440312118d07 \ No newline at end of file diff --git a/dist/user_status-menu.js.map b/dist/user_status-menu.js.map index 80ab6bd3c9c..89ef891fecd 100644 --- a/dist/user_status-menu.js.map +++ b/dist/user_status-menu.js.map @@ -1 +1 @@ -{"version":3,"file":"user_status-menu.js?v=817623ffc8ff26469be0","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/user_status/src/UserStatus.vue?vue&type=style&index=0&id=262fe2d2&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/mixins/OnlineStatusMixin.js","webpack:///nextcloud/apps/user_status/src/logger.ts","webpack:///nextcloud/apps/user_status/src/services/dateService.js","webpack:///nextcloud/apps/user_status/src/UserStatus.vue","webpack:///nextcloud/apps/user_status/src/UserStatus.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/services/heartbeatService.js","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?e0f4","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?d74a","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?e2b3","webpack:///nextcloud/apps/user_status/src/store/predefinedStatuses.js","webpack:///nextcloud/apps/user_status/src/services/predefinedStatusService.js","webpack:///nextcloud/apps/user_status/src/store/userBackupStatus.js","webpack:///nextcloud/apps/user_status/src/services/statusService.js","webpack:///nextcloud/apps/user_status/src/services/clearAtService.js","webpack:///nextcloud/apps/user_status/src/store/userStatus.js","webpack:///nextcloud/apps/user_status/src/store/index.js","webpack:///nextcloud/apps/user_status/src/menu.js","webpack:///nextcloud/node_modules/vuex/dist/vuex.esm.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","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/publicPath","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, fn, priority] = deferred[i];\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};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\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, `.user-status-icon[data-v-262fe2d2]{width:20px;height:20px;margin:calc((var(--default-clickable-area) - 20px)/2);opacity:1 !important;background-size:20px;vertical-align:middle !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/UserStatus.vue\"],\"names\":[],\"mappings\":\"AACA,mCACC,UAAA,CACA,WAAA,CACA,qDAAA,CACA,oBAAA,CACA,oBAAA,CACA,gCAAA\",\"sourcesContent\":[\"\\n.user-status-icon {\\n\\twidth: 20px;\\n\\theight: 20px;\\n\\tmargin: calc((var(--default-clickable-area) - 20px) / 2); // 20px icon size\\n\\topacity: 1 !important;\\n\\tbackground-size: 20px;\\n\\tvertical-align: middle !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport { mapState } from 'vuex'\nimport { logger } from '../logger.ts'\n\nexport default {\n\tcomputed: {\n\t\t...mapState({\n\t\t\tstatusType: (state) => state.userStatus.status,\n\t\t\tstatusIsUserDefined: (state) => state.userStatus.statusIsUserDefined,\n\t\t\tcustomIcon: (state) => state.userStatus.icon,\n\t\t\tcustomMessage: (state) => state.userStatus.message,\n\t\t}),\n\n\t\t/**\n\t\t * The message displayed in the top right corner\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tvisibleMessage() {\n\t\t\tif (this.customIcon && this.customMessage) {\n\t\t\t\treturn `${this.customIcon} ${this.customMessage}`\n\t\t\t}\n\n\t\t\tif (this.customMessage) {\n\t\t\t\treturn this.customMessage\n\t\t\t}\n\n\t\t\tif (this.statusIsUserDefined) {\n\t\t\t\tswitch (this.statusType) {\n\t\t\t\t\tcase 'online':\n\t\t\t\t\t\treturn t('user_status', 'Online')\n\n\t\t\t\t\tcase 'away':\n\t\t\t\t\tcase 'busy':\n\t\t\t\t\t\treturn t('user_status', 'Away')\n\n\t\t\t\t\tcase 'dnd':\n\t\t\t\t\t\treturn t('user_status', 'Do not disturb')\n\n\t\t\t\t\tcase 'invisible':\n\t\t\t\t\t\treturn t('user_status', 'Invisible')\n\n\t\t\t\t\tcase 'offline':\n\t\t\t\t\t\treturn t('user_status', 'Offline')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn t('user_status', 'Set status')\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Changes the user-status\n\t\t *\n\t\t * @param {string} statusType (online / away / dnd / invisible)\n\t\t */\n\t\tasync changeStatus(statusType) {\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('setStatus', { statusType })\n\t\t\t} catch (err) {\n\t\t\t\tshowError(t('user_status', 'There was an error saving the new status'))\n\t\t\t\tlogger.debug(err)\n\t\t\t}\n\t\t},\n\t},\n}\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport const logger = getLoggerBuilder()\n .detectLogLevel()\n .setApp('user_status')\n .build();\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n *\n */\nfunction dateFactory() {\n\treturn new Date()\n}\n\nexport {\n\tdateFactory,\n}\n","\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserStatus.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!./UserStatus.vue?vue&type=script&lang=js\"","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Sends a heartbeat\n *\n * @param {boolean} isAway Whether or not the user is active\n * @return {Promise}\n */\nasync function sendHeartbeat(isAway) {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/heartbeat?format=json')\n\tconst response = await HttpClient.put(url, {\n\t\tstatus: isAway ? 'away' : 'online',\n\t})\n\treturn response.data.ocs.data\n}\n\nexport {\n\tsendHeartbeat,\n}\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!./UserStatus.vue?vue&type=style&index=0&id=262fe2d2&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./UserStatus.vue?vue&type=style&index=0&id=262fe2d2&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserStatus.vue?vue&type=template&id=262fe2d2&scoped=true\"\nimport script from \"./UserStatus.vue?vue&type=script&lang=js\"\nexport * from \"./UserStatus.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserStatus.vue?vue&type=style&index=0&id=262fe2d2&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 \"262fe2d2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(!_vm.inline)?_c('NcListItem',{staticClass:\"user-status-menu-item\",attrs:{\"compact\":\"\",\"name\":_vm.visibleMessage},on:{\"click\":function($event){$event.stopPropagation();return _vm.openModal.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcUserStatusIcon',{staticClass:\"user-status-icon\",attrs:{\"status\":_vm.statusType,\"aria-hidden\":\"true\"}})]},proxy:true}],null,false,2300440294)}):_c('div',[_c('NcButton',{on:{\"click\":function($event){$event.stopPropagation();return _vm.openModal.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcUserStatusIcon',{staticClass:\"user-status-icon\",attrs:{\"status\":_vm.statusType,\"aria-hidden\":\"true\"}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.visibleMessage)+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.isModalOpen)?_c('SetStatusModal',{attrs:{\"inline\":_vm.inline},on:{\"close\":_vm.closeModal}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { fetchAllPredefinedStatuses } from '../services/predefinedStatusService.js'\n\nconst state = {\n\tpredefinedStatuses: [],\n}\n\nconst mutations = {\n\n\t/**\n\t * Adds a predefined status to the state\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} status The status to add\n\t */\n\taddPredefinedStatus(state, status) {\n\t\tstate.predefinedStatuses = [...state.predefinedStatuses, status]\n\t},\n}\n\nconst getters = {\n\tstatusesHaveLoaded(state) {\n\t\treturn state.predefinedStatuses.length > 0\n\t},\n}\n\nconst actions = {\n\n\t/**\n\t * Loads all predefined statuses from the server\n\t *\n\t * @param {object} vuex The Vuex components\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state -\n\t */\n\tasync loadAllPredefinedStatuses({ state, commit }) {\n\t\tif (state.predefinedStatuses.length > 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst statuses = await fetchAllPredefinedStatuses()\n\t\tfor (const status of statuses) {\n\t\t\tcommit('addPredefinedStatus', status)\n\t\t}\n\t},\n\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Fetches all predefined statuses from the server\n *\n * @return {Promise}\n */\nasync function fetchAllPredefinedStatuses() {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/predefined_statuses?format=json')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\nexport {\n\tfetchAllPredefinedStatuses,\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { emit } from '@nextcloud/event-bus'\nimport {\n\tfetchBackupStatus,\n\trevertToBackupStatus,\n} from '../services/statusService.js'\n\nconst state = {\n\t// Status (online / away / dnd / invisible / offline)\n\tstatus: null,\n\t// Whether the status is user-defined\n\tstatusIsUserDefined: null,\n\t// A custom message set by the user\n\tmessage: null,\n\t// The icon selected by the user\n\ticon: null,\n\t// When to automatically clean the status\n\tclearAt: null,\n\t// Whether the message is predefined\n\t// (and can automatically be translated by Nextcloud)\n\tmessageIsPredefined: null,\n\t// The id of the message in case it's predefined\n\tmessageId: null,\n}\n\nconst mutations = {\n\t/**\n\t * Loads the status from initial state\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.status The status type\n\t * @param {boolean} data.statusIsUserDefined Whether or not this status is user-defined\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {number} data.clearAt When to automatically clear the status\n\t * @param {boolean} data.messageIsPredefined Whether or not the message is predefined\n\t * @param {string} data.messageId The id of the predefined message\n\t */\n\tloadBackupStatusFromServer(state, { status, statusIsUserDefined, message, icon, clearAt, messageIsPredefined, messageId }) {\n\t\tstate.status = status\n\t\tstate.message = message\n\t\tstate.icon = icon\n\n\t\t// Don't overwrite certain values if the refreshing comes in via short updates\n\t\t// E.g. from talk participant list which only has the status, message and icon\n\t\tif (typeof statusIsUserDefined !== 'undefined') {\n\t\t\tstate.statusIsUserDefined = statusIsUserDefined\n\t\t}\n\t\tif (typeof clearAt !== 'undefined') {\n\t\t\tstate.clearAt = clearAt\n\t\t}\n\t\tif (typeof messageIsPredefined !== 'undefined') {\n\t\t\tstate.messageIsPredefined = messageIsPredefined\n\t\t}\n\t\tif (typeof messageId !== 'undefined') {\n\t\t\tstate.messageId = messageId\n\t\t}\n\t},\n}\n\nconst getters = {}\n\nconst actions = {\n\t/**\n\t * Re-fetches the status from the server\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @return {Promise}\n\t */\n\tasync fetchBackupFromServer({ commit }) {\n\t\ttry {\n\t\t\tconst status = await fetchBackupStatus(getCurrentUser()?.uid)\n\t\t\tcommit('loadBackupStatusFromServer', status)\n\t\t} catch {\n\t\t\t// Ignore missing user backup status\n\t\t}\n\t},\n\n\tasync revertBackupFromServer({ commit }, { messageId }) {\n\t\tconst status = await revertToBackupStatus(messageId)\n\t\tif (status) {\n\t\t\tcommit('loadBackupStatusFromServer', {})\n\t\t\tcommit('loadStatusFromServer', status)\n\t\t\temit('user_status:status.updated', {\n\t\t\t\tstatus: status.status,\n\t\t\t\tmessage: status.message,\n\t\t\t\ticon: status.icon,\n\t\t\t\tclearAt: status.clearAt,\n\t\t\t\tuserId: getCurrentUser()?.uid,\n\t\t\t})\n\t\t}\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Fetches the current user-status\n *\n * @return {Promise}\n */\nasync function fetchCurrentStatus() {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Fetches the current user-status\n *\n * @param {string} userId Id of the user to fetch the status\n * @return {Promise}\n */\nasync function fetchBackupStatus(userId) {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/statuses/{userId}', { userId: '_' + userId })\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Sets the status\n *\n * @param {string} statusType The status (online / away / dnd / invisible)\n * @return {Promise}\n */\nasync function setStatus(statusType) {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/status')\n\tawait HttpClient.put(url, {\n\t\tstatusType,\n\t})\n}\n\n/**\n * Sets a message based on our predefined statuses\n *\n * @param {string} messageId The id of the message, taken from predefined status service\n * @param {number | null} clearAt When to automatically clean the status\n * @return {Promise}\n */\nasync function setPredefinedMessage(messageId, clearAt = null) {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/message/predefined?format=json')\n\tawait HttpClient.put(url, {\n\t\tmessageId,\n\t\tclearAt,\n\t})\n}\n\n/**\n * Sets a custom message\n *\n * @param {string} message The user-defined message\n * @param {string | null} statusIcon The user-defined icon\n * @param {number | null} clearAt When to automatically clean the status\n * @return {Promise}\n */\nasync function setCustomMessage(message, statusIcon = null, clearAt = null) {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/message/custom?format=json')\n\tawait HttpClient.put(url, {\n\t\tmessage,\n\t\tstatusIcon,\n\t\tclearAt,\n\t})\n}\n\n/**\n * Clears the current status of the user\n *\n * @return {Promise}\n */\nasync function clearMessage() {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/message?format=json')\n\tawait HttpClient.delete(url)\n}\n\n/**\n * Revert the automated status\n *\n * @param {string} messageId ID of the message to revert\n * @return {Promise}\n */\nasync function revertToBackupStatus(messageId) {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/revert/{messageId}', { messageId })\n\tconst response = await HttpClient.delete(url)\n\n\treturn response.data.ocs.data\n}\n\nexport {\n\tclearMessage,\n\tfetchBackupStatus,\n\tfetchCurrentStatus,\n\trevertToBackupStatus,\n\tsetCustomMessage,\n\tsetPredefinedMessage,\n\tsetStatus,\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport moment from '@nextcloud/moment'\nimport {\n\tdateFactory,\n} from './dateService.js'\n\n/**\n * Calculates the actual clearAt timestamp\n *\n * @param {object | null} clearAt The clear-at config\n * @return {number | null}\n */\nfunction getTimestampForClearAt(clearAt) {\n\tif (clearAt === null) {\n\t\treturn null\n\t}\n\n\tconst date = dateFactory()\n\n\tif (clearAt.type === 'period') {\n\t\tdate.setSeconds(date.getSeconds() + clearAt.time)\n\t\treturn Math.floor(date.getTime() / 1000)\n\t}\n\tif (clearAt.type === 'end-of') {\n\t\tswitch (clearAt.time) {\n\t\t\tcase 'day':\n\t\t\tcase 'week':\n\t\t\t\treturn Number(moment(date).endOf(clearAt.time).format('X'))\n\t\t}\n\t}\n\t// This is not an officially supported type\n\t// but only used internally to show the remaining time\n\t// in the Set Status Modal\n\tif (clearAt.type === '_time') {\n\t\treturn clearAt.time\n\t}\n\n\treturn null\n}\n\nexport {\n\tgetTimestampForClearAt,\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { emit } from '@nextcloud/event-bus'\nimport { loadState } from '@nextcloud/initial-state'\nimport { getTimestampForClearAt } from '../services/clearAtService.js'\nimport {\n\tclearMessage,\n\tfetchCurrentStatus,\n\tsetCustomMessage,\n\tsetPredefinedMessage,\n\tsetStatus,\n} from '../services/statusService.js'\n\nconst state = {\n\t// Status (online / away / dnd / invisible / offline)\n\tstatus: null,\n\t// Whether the status is user-defined\n\tstatusIsUserDefined: null,\n\t// A custom message set by the user\n\tmessage: null,\n\t// The icon selected by the user\n\ticon: null,\n\t// When to automatically clean the status\n\tclearAt: null,\n\t// Whether the message is predefined\n\t// (and can automatically be translated by Nextcloud)\n\tmessageIsPredefined: null,\n\t// The id of the message in case it's predefined\n\tmessageId: null,\n}\n\nconst mutations = {\n\n\t/**\n\t * Sets a new status\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.statusType The new status type\n\t */\n\tsetStatus(state, { statusType }) {\n\t\tstate.status = statusType\n\t\tstate.statusIsUserDefined = true\n\t},\n\n\t/**\n\t * Sets a message using a predefined message\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.messageId The messageId\n\t * @param {number | null} data.clearAt When to automatically clear the status\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t */\n\tsetPredefinedMessage(state, { messageId, clearAt, message, icon }) {\n\t\tstate.messageId = messageId\n\t\tstate.messageIsPredefined = true\n\n\t\tstate.message = message\n\t\tstate.icon = icon\n\t\tstate.clearAt = clearAt\n\t},\n\n\t/**\n\t * Sets a custom message\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {number} data.clearAt When to automatically clear the status\n\t */\n\tsetCustomMessage(state, { message, icon, clearAt }) {\n\t\tstate.messageId = null\n\t\tstate.messageIsPredefined = false\n\n\t\tstate.message = message\n\t\tstate.icon = icon\n\t\tstate.clearAt = clearAt\n\t},\n\n\t/**\n\t * Clears the status\n\t *\n\t * @param {object} state The Vuex state\n\t */\n\tclearMessage(state) {\n\t\tstate.messageId = null\n\t\tstate.messageIsPredefined = false\n\n\t\tstate.message = null\n\t\tstate.icon = null\n\t\tstate.clearAt = null\n\t},\n\n\t/**\n\t * Loads the status from initial state\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.status The status type\n\t * @param {boolean} data.statusIsUserDefined Whether or not this status is user-defined\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {number} data.clearAt When to automatically clear the status\n\t * @param {boolean} data.messageIsPredefined Whether or not the message is predefined\n\t * @param {string} data.messageId The id of the predefined message\n\t */\n\tloadStatusFromServer(state, { status, statusIsUserDefined, message, icon, clearAt, messageIsPredefined, messageId }) {\n\t\tstate.status = status\n\t\tstate.message = message\n\t\tstate.icon = icon\n\n\t\t// Don't overwrite certain values if the refreshing comes in via short updates\n\t\t// E.g. from talk participant list which only has the status, message and icon\n\t\tif (typeof statusIsUserDefined !== 'undefined') {\n\t\t\tstate.statusIsUserDefined = statusIsUserDefined\n\t\t}\n\t\tif (typeof clearAt !== 'undefined') {\n\t\t\tstate.clearAt = clearAt\n\t\t}\n\t\tif (typeof messageIsPredefined !== 'undefined') {\n\t\t\tstate.messageIsPredefined = messageIsPredefined\n\t\t}\n\t\tif (typeof messageId !== 'undefined') {\n\t\t\tstate.messageId = messageId\n\t\t}\n\t},\n}\n\nconst getters = {}\n\nconst actions = {\n\n\t/**\n\t * Sets a new status\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {object} data The data destructuring object\n\t * @param {string} data.statusType The new status type\n\t * @return {Promise}\n\t */\n\tasync setStatus({ commit, state }, { statusType }) {\n\t\tawait setStatus(statusType)\n\t\tcommit('setStatus', { statusType })\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Update status from 'user_status:status.updated' update.\n\t * This doesn't trigger another 'user_status:status.updated'\n\t * event.\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {string} status The new status\n\t * @return {Promise}\n\t */\n\tasync setStatusFromObject({ commit }, status) {\n\t\tcommit('loadStatusFromServer', status)\n\t},\n\n\t/**\n\t * Sets a message using a predefined message\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {object} vuex.rootState The Vuex root state\n\t * @param {object} data The data destructuring object\n\t * @param {string} data.messageId The messageId\n\t * @param {object | null} data.clearAt When to automatically clear the status\n\t * @return {Promise}\n\t */\n\tasync setPredefinedMessage({ commit, rootState, state }, { messageId, clearAt }) {\n\t\tconst resolvedClearAt = getTimestampForClearAt(clearAt)\n\n\t\tawait setPredefinedMessage(messageId, resolvedClearAt)\n\t\tconst status = rootState.predefinedStatuses.predefinedStatuses.find((status) => status.id === messageId)\n\t\tconst { message, icon } = status\n\n\t\tcommit('setPredefinedMessage', { messageId, clearAt: resolvedClearAt, message, icon })\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Sets a custom message\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {object} data The data destructuring object\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {object | null} data.clearAt When to automatically clear the status\n\t * @return {Promise}\n\t */\n\tasync setCustomMessage({ commit, state }, { message, icon, clearAt }) {\n\t\tconst resolvedClearAt = getTimestampForClearAt(clearAt)\n\n\t\tawait setCustomMessage(message, icon, resolvedClearAt)\n\t\tcommit('setCustomMessage', { message, icon, clearAt: resolvedClearAt })\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Clears the status\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @return {Promise}\n\t */\n\tasync clearMessage({ commit, state }) {\n\t\tawait clearMessage()\n\t\tcommit('clearMessage')\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Re-fetches the status from the server\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @return {Promise}\n\t */\n\tasync reFetchStatusFromServer({ commit }) {\n\t\tconst status = await fetchCurrentStatus()\n\t\tcommit('loadStatusFromServer', status)\n\t},\n\n\t/**\n\t * Stores the status we got in the reply of the heartbeat\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} status The data destructuring object\n\t * @param {string} status.status The status type\n\t * @param {boolean} status.statusIsUserDefined Whether or not this status is user-defined\n\t * @param {string} status.message The message\n\t * @param {string} status.icon The icon\n\t * @param {number} status.clearAt When to automatically clear the status\n\t * @param {boolean} status.messageIsPredefined Whether or not the message is predefined\n\t * @param {string} status.messageId The id of the predefined message\n\t * @return {Promise}\n\t */\n\tasync setStatusFromHeartbeat({ commit }, status) {\n\t\tcommit('loadStatusFromServer', status)\n\t},\n\n\t/**\n\t * Loads the server from the initial state\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t */\n\tloadStatusFromInitialState({ commit }) {\n\t\tconst status = loadState('user_status', 'status')\n\t\tcommit('loadStatusFromServer', status)\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport Vuex, { Store } from 'vuex'\nimport predefinedStatuses from './predefinedStatuses.js'\nimport userBackupStatus from './userBackupStatus.js'\nimport userStatus from './userStatus.js'\n\nVue.use(Vuex)\n\nexport default new Store({\n\tmodules: {\n\t\tpredefinedStatuses,\n\t\tuserStatus,\n\t\tuserBackupStatus,\n\t},\n\tstrict: true,\n})\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { subscribe } from '@nextcloud/event-bus'\nimport Vue from 'vue'\nimport UserStatus from './UserStatus.vue'\nimport store from './store/index.js'\n\n__webpack_nonce__ = getCSPNonce()\n\nVue.prototype.t = t\nVue.prototype.$t = t\n\nconst mountPoint = document.getElementById('user_status-menu-entry')\n\n/**\n *\n */\nfunction mountMenuEntry() {\n\tconst mountPoint = document.getElementById('user_status-menu-entry')\n\n\tnew Vue({\n\t\tel: mountPoint,\n\t\trender: (h) => h(UserStatus),\n\t\tstore,\n\t})\n}\n\nif (mountPoint) {\n\tmountMenuEntry()\n} else {\n\tsubscribe('core:user-menu:mounted', mountMenuEntry)\n}\n\n// Register dashboard status\ndocument.addEventListener('DOMContentLoaded', function() {\n\tif (!OCA.Dashboard) {\n\t\treturn\n\t}\n\n\tOCA.Dashboard.registerStatus('status', (el) => {\n\t\tconst Dashboard = Vue.extend(UserStatus)\n\t\treturn new Dashboard({\n\t\t\tpropsData: {\n\t\t\t\tinline: true,\n\t\t\t},\n\t\t\tstore,\n\t\t}).$mount(el)\n\t})\n})\n","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\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};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + (chunkId === 5133 ? \"user-status-modal\" : chunkId) + \"-\" + chunkId + \".js?v=\" + {\"594\":\"2c86902dfae9a5006399\",\"620\":\"8f7783b39d802f10e22b\",\"945\":\"589043de83a815d4b46f\",\"2391\":\"908fc68e4bc9b878c937\",\"2880\":\"fdf99dc4a6f328ebe498\",\"4325\":\"67df7ab13a8e8d214551\",\"5133\":\"9c9849aa3b2d2915c57c\",\"5862\":\"d020c05f13d21afee82a\",\"7145\":\"7889fe0b0ebc57e3d5f1\",\"8339\":\"6cdca71a6b3b2d7bef33\"}[chunkId] + \"\";\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 = 9953;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\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\t9953: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\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, moreModules, runtime] = data;\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 = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\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__(62424)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","___CSS_LOADER_EXPORT___","push","module","id","computed","mapState","statusType","state","userStatus","status","statusIsUserDefined","customIcon","icon","customMessage","message","visibleMessage","this","t","methods","changeStatus","$store","dispatch","err","showError","logger","debug","getLoggerBuilder","detectLogLevel","setApp","build","dateFactory","Date","name","components","Fragment","NcButton","NcListItem","NcUserStatusIcon","SetStatusModal","mixins","OnlineStatusMixin","props","inline","type","Boolean","default","data","heartbeatInterval","isAway","isModalOpen","mouseMoveListener","setAwayTimeout","mounted","OC","config","session_keepalive","setInterval","_backgroundHeartbeat","bind","debounce","wasAway","clearTimeout","setTimeout","immediate","window","addEventListener","capture","passive","subscribe","handleUserStatusUpdated","beforeDestroy","removeEventListener","clearInterval","unsubscribe","openModal","closeModal","async","url","generateOcsUrl","HttpClient","put","ocs","sendHeartbeat","userId","error","response","getCurrentUser","uid","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","_c","_self","on","$event","stopPropagation","apply","arguments","scopedSlots","_u","key","fn","staticClass","attrs","proxy","_v","_s","_e","predefinedStatuses","mutations","addPredefinedStatus","getters","statusesHaveLoaded","length","actions","loadAllPredefinedStatuses","commit","statuses","get","fetchAllPredefinedStatuses","clearAt","messageIsPredefined","messageId","loadBackupStatusFromServer","fetchBackupFromServer","fetchBackupStatus","revertBackupFromServer","delete","revertToBackupStatus","emit","getTimestampForClearAt","date","setSeconds","getSeconds","time","Math","floor","getTime","Number","moment","endOf","format","setStatus","setPredefinedMessage","setCustomMessage","clearMessage","loadStatusFromServer","setStatusFromObject","rootState","resolvedClearAt","find","statusIcon","reFetchStatusFromServer","fetchCurrentStatus","setStatusFromHeartbeat","loadStatusFromInitialState","loadState","Vue","use","Vuex","Store","modules","userBackupStatus","strict","mountMenuEntry","mountPoint","document","getElementById","el","render","h","UserStatus","store","__webpack_nonce__","getCSPNonce","prototype","$t","OCA","Dashboard","registerStatus","extend","propsData","$mount","devtoolHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","deepCopy","obj","cache","f","hit","c","original","filter","copy","Array","isArray","Object","keys","forEach","forEachValue","isObject","Module","rawModule","runtime","_children","create","_rawModule","rawState","prototypeAccessors","namespaced","configurable","addChild","removeChild","getChild","hasChild","update","forEachChild","forEachGetter","forEachAction","forEachMutation","defineProperties","ModuleCollection","rawRootModule","register","path","targetModule","newModule","concat","reduce","root","getNamespace","namespace","this$1","slice","rawChildModule","unregister","parent","child","isRegistered","install","plugins","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","payload","call","installModule","resetStoreVM","plugin","undefined","devtools","_devtoolHook","targetState","replaceState","mutation","prepend","subscribeAction","action","devtoolPlugin","prototypeAccessors$1","genericSubscribe","subs","indexOf","unshift","i","splice","resetStore","hot","oldVm","wrappedGetters","arg","partial","defineProperty","enumerable","silent","$$state","$watch","_data","deep","sync","enableStrictMode","_withCommit","nextTick","$destroy","isRoot","parentState","getNestedState","moduleName","set","local","context","noNamespace","_type","_payload","_options","args","unifyObjectStyle","gettersProxy","splitPos","localType","makeLocalGetters","makeLocalContext","handler","registerMutation","val","res","rootGetters","then","Promise","resolve","catch","registerAction","getter","rawGetter","registerGetter","_Vue","version","split","mixin","beforeCreate","vuexInit","_init","init","$options","applyMixin","v","ref","entry","sub","before","e","result","all","map","reject","after","watch","cb","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","len","mapGetters","mapActions","isValidMap","charAt","helper","startMessage","collapsed","groupCollapsed","group","log","endMessage","groupEnd","getFormattedTime","pad","getHours","getMinutes","getMilliseconds","num","maxLength","times","toString","join","createNamespacedHelpers","createLogger","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","console","prevState","nextState","formattedTime","formattedMutation","formattedAction","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","r","n","__esModule","d","a","definition","o","chunkId","promises","u","prop","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","timeout","doneFns","parentNode","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","globalThis","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","some","chunkLoadingGlobal","__webpack_exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"user_status-menu.js?v=b98f044c440312118d07","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/user_status/src/UserStatus.vue?vue&type=style&index=0&id=262fe2d2&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/mixins/OnlineStatusMixin.js","webpack:///nextcloud/apps/user_status/src/logger.ts","webpack:///nextcloud/apps/user_status/src/services/dateService.js","webpack:///nextcloud/apps/user_status/src/UserStatus.vue","webpack:///nextcloud/apps/user_status/src/UserStatus.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/services/heartbeatService.js","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?e0f4","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?d74a","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?e2b3","webpack:///nextcloud/apps/user_status/src/store/predefinedStatuses.js","webpack:///nextcloud/apps/user_status/src/services/predefinedStatusService.js","webpack:///nextcloud/apps/user_status/src/store/userBackupStatus.js","webpack:///nextcloud/apps/user_status/src/services/statusService.js","webpack:///nextcloud/apps/user_status/src/services/clearAtService.js","webpack:///nextcloud/apps/user_status/src/store/userStatus.js","webpack:///nextcloud/apps/user_status/src/store/index.js","webpack:///nextcloud/apps/user_status/src/menu.js","webpack:///nextcloud/node_modules/vuex/dist/vuex.esm.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","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/publicPath","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, fn, priority] = deferred[i];\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};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\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, `.user-status-icon[data-v-262fe2d2]{width:20px;height:20px;margin:calc((var(--default-clickable-area) - 20px)/2);opacity:1 !important;background-size:20px;vertical-align:middle !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/UserStatus.vue\"],\"names\":[],\"mappings\":\"AACA,mCACC,UAAA,CACA,WAAA,CACA,qDAAA,CACA,oBAAA,CACA,oBAAA,CACA,gCAAA\",\"sourcesContent\":[\"\\n.user-status-icon {\\n\\twidth: 20px;\\n\\theight: 20px;\\n\\tmargin: calc((var(--default-clickable-area) - 20px) / 2); // 20px icon size\\n\\topacity: 1 !important;\\n\\tbackground-size: 20px;\\n\\tvertical-align: middle !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport { mapState } from 'vuex'\nimport { logger } from '../logger.ts'\n\nexport default {\n\tcomputed: {\n\t\t...mapState({\n\t\t\tstatusType: (state) => state.userStatus.status,\n\t\t\tstatusIsUserDefined: (state) => state.userStatus.statusIsUserDefined,\n\t\t\tcustomIcon: (state) => state.userStatus.icon,\n\t\t\tcustomMessage: (state) => state.userStatus.message,\n\t\t}),\n\n\t\t/**\n\t\t * The message displayed in the top right corner\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tvisibleMessage() {\n\t\t\tif (this.customIcon && this.customMessage) {\n\t\t\t\treturn `${this.customIcon} ${this.customMessage}`\n\t\t\t}\n\n\t\t\tif (this.customMessage) {\n\t\t\t\treturn this.customMessage\n\t\t\t}\n\n\t\t\tif (this.statusIsUserDefined) {\n\t\t\t\tswitch (this.statusType) {\n\t\t\t\t\tcase 'online':\n\t\t\t\t\t\treturn t('user_status', 'Online')\n\n\t\t\t\t\tcase 'away':\n\t\t\t\t\t\treturn t('user_status', 'Away')\n\n\t\t\t\t\tcase 'busy':\n\t\t\t\t\t\treturn t('user_status', 'Busy')\n\n\t\t\t\t\tcase 'dnd':\n\t\t\t\t\t\treturn t('user_status', 'Do not disturb')\n\n\t\t\t\t\tcase 'invisible':\n\t\t\t\t\t\treturn t('user_status', 'Invisible')\n\n\t\t\t\t\tcase 'offline':\n\t\t\t\t\t\treturn t('user_status', 'Offline')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn t('user_status', 'Set status')\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Changes the user-status\n\t\t *\n\t\t * @param {string} statusType (online / away / dnd / invisible)\n\t\t */\n\t\tasync changeStatus(statusType) {\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('setStatus', { statusType })\n\t\t\t} catch (err) {\n\t\t\t\tshowError(t('user_status', 'There was an error saving the new status'))\n\t\t\t\tlogger.debug(err)\n\t\t\t}\n\t\t},\n\t},\n}\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport const logger = getLoggerBuilder()\n .detectLogLevel()\n .setApp('user_status')\n .build();\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n *\n */\nfunction dateFactory() {\n\treturn new Date()\n}\n\nexport {\n\tdateFactory,\n}\n","\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserStatus.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!./UserStatus.vue?vue&type=script&lang=js\"","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Sends a heartbeat\n *\n * @param {boolean} isAway Whether or not the user is active\n * @return {Promise}\n */\nasync function sendHeartbeat(isAway) {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/heartbeat?format=json')\n\tconst response = await HttpClient.put(url, {\n\t\tstatus: isAway ? 'away' : 'online',\n\t})\n\treturn response.data.ocs.data\n}\n\nexport {\n\tsendHeartbeat,\n}\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!./UserStatus.vue?vue&type=style&index=0&id=262fe2d2&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./UserStatus.vue?vue&type=style&index=0&id=262fe2d2&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserStatus.vue?vue&type=template&id=262fe2d2&scoped=true\"\nimport script from \"./UserStatus.vue?vue&type=script&lang=js\"\nexport * from \"./UserStatus.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserStatus.vue?vue&type=style&index=0&id=262fe2d2&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 \"262fe2d2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(!_vm.inline)?_c('NcListItem',{staticClass:\"user-status-menu-item\",attrs:{\"compact\":\"\",\"name\":_vm.visibleMessage},on:{\"click\":function($event){$event.stopPropagation();return _vm.openModal.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcUserStatusIcon',{staticClass:\"user-status-icon\",attrs:{\"status\":_vm.statusType,\"aria-hidden\":\"true\"}})]},proxy:true}],null,false,2300440294)}):_c('div',[_c('NcButton',{on:{\"click\":function($event){$event.stopPropagation();return _vm.openModal.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcUserStatusIcon',{staticClass:\"user-status-icon\",attrs:{\"status\":_vm.statusType,\"aria-hidden\":\"true\"}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.visibleMessage)+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.isModalOpen)?_c('SetStatusModal',{attrs:{\"inline\":_vm.inline},on:{\"close\":_vm.closeModal}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { fetchAllPredefinedStatuses } from '../services/predefinedStatusService.js'\n\nconst state = {\n\tpredefinedStatuses: [],\n}\n\nconst mutations = {\n\n\t/**\n\t * Adds a predefined status to the state\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} status The status to add\n\t */\n\taddPredefinedStatus(state, status) {\n\t\tstate.predefinedStatuses = [...state.predefinedStatuses, status]\n\t},\n}\n\nconst getters = {\n\tstatusesHaveLoaded(state) {\n\t\treturn state.predefinedStatuses.length > 0\n\t},\n}\n\nconst actions = {\n\n\t/**\n\t * Loads all predefined statuses from the server\n\t *\n\t * @param {object} vuex The Vuex components\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state -\n\t */\n\tasync loadAllPredefinedStatuses({ state, commit }) {\n\t\tif (state.predefinedStatuses.length > 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst statuses = await fetchAllPredefinedStatuses()\n\t\tfor (const status of statuses) {\n\t\t\tcommit('addPredefinedStatus', status)\n\t\t}\n\t},\n\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Fetches all predefined statuses from the server\n *\n * @return {Promise}\n */\nasync function fetchAllPredefinedStatuses() {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/predefined_statuses?format=json')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\nexport {\n\tfetchAllPredefinedStatuses,\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { emit } from '@nextcloud/event-bus'\nimport {\n\tfetchBackupStatus,\n\trevertToBackupStatus,\n} from '../services/statusService.js'\n\nconst state = {\n\t// Status (online / away / dnd / invisible / offline)\n\tstatus: null,\n\t// Whether the status is user-defined\n\tstatusIsUserDefined: null,\n\t// A custom message set by the user\n\tmessage: null,\n\t// The icon selected by the user\n\ticon: null,\n\t// When to automatically clean the status\n\tclearAt: null,\n\t// Whether the message is predefined\n\t// (and can automatically be translated by Nextcloud)\n\tmessageIsPredefined: null,\n\t// The id of the message in case it's predefined\n\tmessageId: null,\n}\n\nconst mutations = {\n\t/**\n\t * Loads the status from initial state\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.status The status type\n\t * @param {boolean} data.statusIsUserDefined Whether or not this status is user-defined\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {number} data.clearAt When to automatically clear the status\n\t * @param {boolean} data.messageIsPredefined Whether or not the message is predefined\n\t * @param {string} data.messageId The id of the predefined message\n\t */\n\tloadBackupStatusFromServer(state, { status, statusIsUserDefined, message, icon, clearAt, messageIsPredefined, messageId }) {\n\t\tstate.status = status\n\t\tstate.message = message\n\t\tstate.icon = icon\n\n\t\t// Don't overwrite certain values if the refreshing comes in via short updates\n\t\t// E.g. from talk participant list which only has the status, message and icon\n\t\tif (typeof statusIsUserDefined !== 'undefined') {\n\t\t\tstate.statusIsUserDefined = statusIsUserDefined\n\t\t}\n\t\tif (typeof clearAt !== 'undefined') {\n\t\t\tstate.clearAt = clearAt\n\t\t}\n\t\tif (typeof messageIsPredefined !== 'undefined') {\n\t\t\tstate.messageIsPredefined = messageIsPredefined\n\t\t}\n\t\tif (typeof messageId !== 'undefined') {\n\t\t\tstate.messageId = messageId\n\t\t}\n\t},\n}\n\nconst getters = {}\n\nconst actions = {\n\t/**\n\t * Re-fetches the status from the server\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @return {Promise}\n\t */\n\tasync fetchBackupFromServer({ commit }) {\n\t\ttry {\n\t\t\tconst status = await fetchBackupStatus(getCurrentUser()?.uid)\n\t\t\tcommit('loadBackupStatusFromServer', status)\n\t\t} catch {\n\t\t\t// Ignore missing user backup status\n\t\t}\n\t},\n\n\tasync revertBackupFromServer({ commit }, { messageId }) {\n\t\tconst status = await revertToBackupStatus(messageId)\n\t\tif (status) {\n\t\t\tcommit('loadBackupStatusFromServer', {})\n\t\t\tcommit('loadStatusFromServer', status)\n\t\t\temit('user_status:status.updated', {\n\t\t\t\tstatus: status.status,\n\t\t\t\tmessage: status.message,\n\t\t\t\ticon: status.icon,\n\t\t\t\tclearAt: status.clearAt,\n\t\t\t\tuserId: getCurrentUser()?.uid,\n\t\t\t})\n\t\t}\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Fetches the current user-status\n *\n * @return {Promise}\n */\nasync function fetchCurrentStatus() {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Fetches the current user-status\n *\n * @param {string} userId Id of the user to fetch the status\n * @return {Promise}\n */\nasync function fetchBackupStatus(userId) {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/statuses/{userId}', { userId: '_' + userId })\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Sets the status\n *\n * @param {string} statusType The status (online / away / dnd / invisible)\n * @return {Promise}\n */\nasync function setStatus(statusType) {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/status')\n\tawait HttpClient.put(url, {\n\t\tstatusType,\n\t})\n}\n\n/**\n * Sets a message based on our predefined statuses\n *\n * @param {string} messageId The id of the message, taken from predefined status service\n * @param {number | null} clearAt When to automatically clean the status\n * @return {Promise}\n */\nasync function setPredefinedMessage(messageId, clearAt = null) {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/message/predefined?format=json')\n\tawait HttpClient.put(url, {\n\t\tmessageId,\n\t\tclearAt,\n\t})\n}\n\n/**\n * Sets a custom message\n *\n * @param {string} message The user-defined message\n * @param {string | null} statusIcon The user-defined icon\n * @param {number | null} clearAt When to automatically clean the status\n * @return {Promise}\n */\nasync function setCustomMessage(message, statusIcon = null, clearAt = null) {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/message/custom?format=json')\n\tawait HttpClient.put(url, {\n\t\tmessage,\n\t\tstatusIcon,\n\t\tclearAt,\n\t})\n}\n\n/**\n * Clears the current status of the user\n *\n * @return {Promise}\n */\nasync function clearMessage() {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/message?format=json')\n\tawait HttpClient.delete(url)\n}\n\n/**\n * Revert the automated status\n *\n * @param {string} messageId ID of the message to revert\n * @return {Promise}\n */\nasync function revertToBackupStatus(messageId) {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/revert/{messageId}', { messageId })\n\tconst response = await HttpClient.delete(url)\n\n\treturn response.data.ocs.data\n}\n\nexport {\n\tclearMessage,\n\tfetchBackupStatus,\n\tfetchCurrentStatus,\n\trevertToBackupStatus,\n\tsetCustomMessage,\n\tsetPredefinedMessage,\n\tsetStatus,\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport moment from '@nextcloud/moment'\nimport {\n\tdateFactory,\n} from './dateService.js'\n\n/**\n * Calculates the actual clearAt timestamp\n *\n * @param {object | null} clearAt The clear-at config\n * @return {number | null}\n */\nfunction getTimestampForClearAt(clearAt) {\n\tif (clearAt === null) {\n\t\treturn null\n\t}\n\n\tconst date = dateFactory()\n\n\tif (clearAt.type === 'period') {\n\t\tdate.setSeconds(date.getSeconds() + clearAt.time)\n\t\treturn Math.floor(date.getTime() / 1000)\n\t}\n\tif (clearAt.type === 'end-of') {\n\t\tswitch (clearAt.time) {\n\t\t\tcase 'day':\n\t\t\tcase 'week':\n\t\t\t\treturn Number(moment(date).endOf(clearAt.time).format('X'))\n\t\t}\n\t}\n\t// This is not an officially supported type\n\t// but only used internally to show the remaining time\n\t// in the Set Status Modal\n\tif (clearAt.type === '_time') {\n\t\treturn clearAt.time\n\t}\n\n\treturn null\n}\n\nexport {\n\tgetTimestampForClearAt,\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { emit } from '@nextcloud/event-bus'\nimport { loadState } from '@nextcloud/initial-state'\nimport { getTimestampForClearAt } from '../services/clearAtService.js'\nimport {\n\tclearMessage,\n\tfetchCurrentStatus,\n\tsetCustomMessage,\n\tsetPredefinedMessage,\n\tsetStatus,\n} from '../services/statusService.js'\n\nconst state = {\n\t// Status (online / away / dnd / invisible / offline)\n\tstatus: null,\n\t// Whether the status is user-defined\n\tstatusIsUserDefined: null,\n\t// A custom message set by the user\n\tmessage: null,\n\t// The icon selected by the user\n\ticon: null,\n\t// When to automatically clean the status\n\tclearAt: null,\n\t// Whether the message is predefined\n\t// (and can automatically be translated by Nextcloud)\n\tmessageIsPredefined: null,\n\t// The id of the message in case it's predefined\n\tmessageId: null,\n}\n\nconst mutations = {\n\n\t/**\n\t * Sets a new status\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.statusType The new status type\n\t */\n\tsetStatus(state, { statusType }) {\n\t\tstate.status = statusType\n\t\tstate.statusIsUserDefined = true\n\t},\n\n\t/**\n\t * Sets a message using a predefined message\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.messageId The messageId\n\t * @param {number | null} data.clearAt When to automatically clear the status\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t */\n\tsetPredefinedMessage(state, { messageId, clearAt, message, icon }) {\n\t\tstate.messageId = messageId\n\t\tstate.messageIsPredefined = true\n\n\t\tstate.message = message\n\t\tstate.icon = icon\n\t\tstate.clearAt = clearAt\n\t},\n\n\t/**\n\t * Sets a custom message\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {number} data.clearAt When to automatically clear the status\n\t */\n\tsetCustomMessage(state, { message, icon, clearAt }) {\n\t\tstate.messageId = null\n\t\tstate.messageIsPredefined = false\n\n\t\tstate.message = message\n\t\tstate.icon = icon\n\t\tstate.clearAt = clearAt\n\t},\n\n\t/**\n\t * Clears the status\n\t *\n\t * @param {object} state The Vuex state\n\t */\n\tclearMessage(state) {\n\t\tstate.messageId = null\n\t\tstate.messageIsPredefined = false\n\n\t\tstate.message = null\n\t\tstate.icon = null\n\t\tstate.clearAt = null\n\t},\n\n\t/**\n\t * Loads the status from initial state\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.status The status type\n\t * @param {boolean} data.statusIsUserDefined Whether or not this status is user-defined\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {number} data.clearAt When to automatically clear the status\n\t * @param {boolean} data.messageIsPredefined Whether or not the message is predefined\n\t * @param {string} data.messageId The id of the predefined message\n\t */\n\tloadStatusFromServer(state, { status, statusIsUserDefined, message, icon, clearAt, messageIsPredefined, messageId }) {\n\t\tstate.status = status\n\t\tstate.message = message\n\t\tstate.icon = icon\n\n\t\t// Don't overwrite certain values if the refreshing comes in via short updates\n\t\t// E.g. from talk participant list which only has the status, message and icon\n\t\tif (typeof statusIsUserDefined !== 'undefined') {\n\t\t\tstate.statusIsUserDefined = statusIsUserDefined\n\t\t}\n\t\tif (typeof clearAt !== 'undefined') {\n\t\t\tstate.clearAt = clearAt\n\t\t}\n\t\tif (typeof messageIsPredefined !== 'undefined') {\n\t\t\tstate.messageIsPredefined = messageIsPredefined\n\t\t}\n\t\tif (typeof messageId !== 'undefined') {\n\t\t\tstate.messageId = messageId\n\t\t}\n\t},\n}\n\nconst getters = {}\n\nconst actions = {\n\n\t/**\n\t * Sets a new status\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {object} data The data destructuring object\n\t * @param {string} data.statusType The new status type\n\t * @return {Promise}\n\t */\n\tasync setStatus({ commit, state }, { statusType }) {\n\t\tawait setStatus(statusType)\n\t\tcommit('setStatus', { statusType })\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Update status from 'user_status:status.updated' update.\n\t * This doesn't trigger another 'user_status:status.updated'\n\t * event.\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {string} status The new status\n\t * @return {Promise}\n\t */\n\tasync setStatusFromObject({ commit }, status) {\n\t\tcommit('loadStatusFromServer', status)\n\t},\n\n\t/**\n\t * Sets a message using a predefined message\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {object} vuex.rootState The Vuex root state\n\t * @param {object} data The data destructuring object\n\t * @param {string} data.messageId The messageId\n\t * @param {object | null} data.clearAt When to automatically clear the status\n\t * @return {Promise}\n\t */\n\tasync setPredefinedMessage({ commit, rootState, state }, { messageId, clearAt }) {\n\t\tconst resolvedClearAt = getTimestampForClearAt(clearAt)\n\n\t\tawait setPredefinedMessage(messageId, resolvedClearAt)\n\t\tconst status = rootState.predefinedStatuses.predefinedStatuses.find((status) => status.id === messageId)\n\t\tconst { message, icon } = status\n\n\t\tcommit('setPredefinedMessage', { messageId, clearAt: resolvedClearAt, message, icon })\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Sets a custom message\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {object} data The data destructuring object\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {object | null} data.clearAt When to automatically clear the status\n\t * @return {Promise}\n\t */\n\tasync setCustomMessage({ commit, state }, { message, icon, clearAt }) {\n\t\tconst resolvedClearAt = getTimestampForClearAt(clearAt)\n\n\t\tawait setCustomMessage(message, icon, resolvedClearAt)\n\t\tcommit('setCustomMessage', { message, icon, clearAt: resolvedClearAt })\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Clears the status\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @return {Promise}\n\t */\n\tasync clearMessage({ commit, state }) {\n\t\tawait clearMessage()\n\t\tcommit('clearMessage')\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Re-fetches the status from the server\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @return {Promise}\n\t */\n\tasync reFetchStatusFromServer({ commit }) {\n\t\tconst status = await fetchCurrentStatus()\n\t\tcommit('loadStatusFromServer', status)\n\t},\n\n\t/**\n\t * Stores the status we got in the reply of the heartbeat\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} status The data destructuring object\n\t * @param {string} status.status The status type\n\t * @param {boolean} status.statusIsUserDefined Whether or not this status is user-defined\n\t * @param {string} status.message The message\n\t * @param {string} status.icon The icon\n\t * @param {number} status.clearAt When to automatically clear the status\n\t * @param {boolean} status.messageIsPredefined Whether or not the message is predefined\n\t * @param {string} status.messageId The id of the predefined message\n\t * @return {Promise}\n\t */\n\tasync setStatusFromHeartbeat({ commit }, status) {\n\t\tcommit('loadStatusFromServer', status)\n\t},\n\n\t/**\n\t * Loads the server from the initial state\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t */\n\tloadStatusFromInitialState({ commit }) {\n\t\tconst status = loadState('user_status', 'status')\n\t\tcommit('loadStatusFromServer', status)\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport Vuex, { Store } from 'vuex'\nimport predefinedStatuses from './predefinedStatuses.js'\nimport userBackupStatus from './userBackupStatus.js'\nimport userStatus from './userStatus.js'\n\nVue.use(Vuex)\n\nexport default new Store({\n\tmodules: {\n\t\tpredefinedStatuses,\n\t\tuserStatus,\n\t\tuserBackupStatus,\n\t},\n\tstrict: true,\n})\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { subscribe } from '@nextcloud/event-bus'\nimport Vue from 'vue'\nimport UserStatus from './UserStatus.vue'\nimport store from './store/index.js'\n\n__webpack_nonce__ = getCSPNonce()\n\nVue.prototype.t = t\nVue.prototype.$t = t\n\nconst mountPoint = document.getElementById('user_status-menu-entry')\n\n/**\n *\n */\nfunction mountMenuEntry() {\n\tconst mountPoint = document.getElementById('user_status-menu-entry')\n\n\tnew Vue({\n\t\tel: mountPoint,\n\t\trender: (h) => h(UserStatus),\n\t\tstore,\n\t})\n}\n\nif (mountPoint) {\n\tmountMenuEntry()\n} else {\n\tsubscribe('core:user-menu:mounted', mountMenuEntry)\n}\n\n// Register dashboard status\ndocument.addEventListener('DOMContentLoaded', function() {\n\tif (!OCA.Dashboard) {\n\t\treturn\n\t}\n\n\tOCA.Dashboard.registerStatus('status', (el) => {\n\t\tconst Dashboard = Vue.extend(UserStatus)\n\t\treturn new Dashboard({\n\t\t\tpropsData: {\n\t\t\t\tinline: true,\n\t\t\t},\n\t\t\tstore,\n\t\t}).$mount(el)\n\t})\n})\n","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\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};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + (chunkId === 5133 ? \"user-status-modal\" : chunkId) + \"-\" + chunkId + \".js?v=\" + {\"594\":\"2c86902dfae9a5006399\",\"620\":\"8f7783b39d802f10e22b\",\"945\":\"589043de83a815d4b46f\",\"2391\":\"908fc68e4bc9b878c937\",\"2880\":\"fdf99dc4a6f328ebe498\",\"4325\":\"67df7ab13a8e8d214551\",\"5133\":\"9c9849aa3b2d2915c57c\",\"5862\":\"d020c05f13d21afee82a\",\"7145\":\"7889fe0b0ebc57e3d5f1\",\"8339\":\"6cdca71a6b3b2d7bef33\"}[chunkId] + \"\";\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 = 9953;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\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\t9953: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\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, moreModules, runtime] = data;\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 = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\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__(62424)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","___CSS_LOADER_EXPORT___","push","module","id","computed","mapState","statusType","state","userStatus","status","statusIsUserDefined","customIcon","icon","customMessage","message","visibleMessage","this","t","methods","changeStatus","$store","dispatch","err","showError","logger","debug","getLoggerBuilder","detectLogLevel","setApp","build","dateFactory","Date","name","components","Fragment","NcButton","NcListItem","NcUserStatusIcon","SetStatusModal","mixins","OnlineStatusMixin","props","inline","type","Boolean","default","data","heartbeatInterval","isAway","isModalOpen","mouseMoveListener","setAwayTimeout","mounted","OC","config","session_keepalive","setInterval","_backgroundHeartbeat","bind","debounce","wasAway","clearTimeout","setTimeout","immediate","window","addEventListener","capture","passive","subscribe","handleUserStatusUpdated","beforeDestroy","removeEventListener","clearInterval","unsubscribe","openModal","closeModal","async","url","generateOcsUrl","HttpClient","put","ocs","sendHeartbeat","userId","error","response","getCurrentUser","uid","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","_c","_self","on","$event","stopPropagation","apply","arguments","scopedSlots","_u","key","fn","staticClass","attrs","proxy","_v","_s","_e","predefinedStatuses","mutations","addPredefinedStatus","getters","statusesHaveLoaded","length","actions","loadAllPredefinedStatuses","commit","statuses","get","fetchAllPredefinedStatuses","clearAt","messageIsPredefined","messageId","loadBackupStatusFromServer","fetchBackupFromServer","fetchBackupStatus","revertBackupFromServer","delete","revertToBackupStatus","emit","getTimestampForClearAt","date","setSeconds","getSeconds","time","Math","floor","getTime","Number","moment","endOf","format","setStatus","setPredefinedMessage","setCustomMessage","clearMessage","loadStatusFromServer","setStatusFromObject","rootState","resolvedClearAt","find","statusIcon","reFetchStatusFromServer","fetchCurrentStatus","setStatusFromHeartbeat","loadStatusFromInitialState","loadState","Vue","use","Vuex","Store","modules","userBackupStatus","strict","mountMenuEntry","mountPoint","document","getElementById","el","render","h","UserStatus","store","__webpack_nonce__","getCSPNonce","prototype","$t","OCA","Dashboard","registerStatus","extend","propsData","$mount","devtoolHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","deepCopy","obj","cache","f","hit","c","original","filter","copy","Array","isArray","Object","keys","forEach","forEachValue","isObject","Module","rawModule","runtime","_children","create","_rawModule","rawState","prototypeAccessors","namespaced","configurable","addChild","removeChild","getChild","hasChild","update","forEachChild","forEachGetter","forEachAction","forEachMutation","defineProperties","ModuleCollection","rawRootModule","register","path","targetModule","newModule","concat","reduce","root","getNamespace","namespace","this$1","slice","rawChildModule","unregister","parent","child","isRegistered","install","plugins","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","payload","call","installModule","resetStoreVM","plugin","undefined","devtools","_devtoolHook","targetState","replaceState","mutation","prepend","subscribeAction","action","devtoolPlugin","prototypeAccessors$1","genericSubscribe","subs","indexOf","unshift","i","splice","resetStore","hot","oldVm","wrappedGetters","arg","partial","defineProperty","enumerable","silent","$$state","$watch","_data","deep","sync","enableStrictMode","_withCommit","nextTick","$destroy","isRoot","parentState","getNestedState","moduleName","set","local","context","noNamespace","_type","_payload","_options","args","unifyObjectStyle","gettersProxy","splitPos","localType","makeLocalGetters","makeLocalContext","handler","registerMutation","val","res","rootGetters","then","Promise","resolve","catch","registerAction","getter","rawGetter","registerGetter","_Vue","version","split","mixin","beforeCreate","vuexInit","_init","init","$options","applyMixin","v","ref","entry","sub","before","e","result","all","map","reject","after","watch","cb","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","len","mapGetters","mapActions","isValidMap","charAt","helper","startMessage","collapsed","groupCollapsed","group","log","endMessage","groupEnd","getFormattedTime","pad","getHours","getMinutes","getMilliseconds","num","maxLength","times","toString","join","createNamespacedHelpers","createLogger","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","console","prevState","nextState","formattedTime","formattedMutation","formattedAction","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","r","n","__esModule","d","a","definition","o","chunkId","promises","u","prop","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","timeout","doneFns","parentNode","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","globalThis","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","some","chunkLoadingGlobal","__webpack_exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file