From 5441f97d562daeb0c3d067a14719d78478c008ec Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 15 Aug 2024 14:39:56 +0200 Subject: [PATCH 1/2] fix(userstatus): Don't set predefined user status as custom when changing "Clear at" Signed-off-by: Joas Schilling --- .../src/components/SetStatusModal.vue | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/apps/user_status/src/components/SetStatusModal.vue b/apps/user_status/src/components/SetStatusModal.vue index 45e36a803c256..e91493414fa0b 100644 --- a/apps/user_status/src/components/SetStatusModal.vue +++ b/apps/user_status/src/components/SetStatusModal.vue @@ -109,6 +109,7 @@ export default { return { clearAt: null, editedMessage: '', + predefinedMessageId: null, isSavingStatus: false, statuses: getAllStatusOptions(), } @@ -176,6 +177,7 @@ export default { mounted() { this.$store.dispatch('fetchBackupFromServer') + this.predefinedMessageId = this.$store.state.userStatus.messageId if (this.$store.state.userStatus.clearAt !== null) { this.clearAt = { type: '_time', @@ -196,6 +198,7 @@ export default { * @param {string} icon The new icon */ setIcon(icon) { + this.predefinedMessageId = null this.$store.dispatch('setCustomMessage', { message: this.message, icon, @@ -211,6 +214,7 @@ export default { * @param {string} message The new message */ setMessage(message) { + this.predefinedMessageId = null this.editedMessage = message }, /** @@ -227,6 +231,7 @@ export default { * @param {object} status The predefined status object */ selectPredefinedMessage(status) { + this.predefinedMessageId = status.id this.clearAt = status.clearAt this.$store.dispatch('setPredefinedMessage', { messageId: status.id, @@ -246,11 +251,18 @@ export default { try { this.isSavingStatus = true - await this.$store.dispatch('setCustomMessage', { - message: this.editedMessage, - icon: this.icon, - clearAt: this.clearAt, - }) + if (this.predefinedMessageId === null) { + await this.$store.dispatch('setCustomMessage', { + message: this.editedMessage, + icon: this.icon, + clearAt: this.clearAt, + }) + } else { + this.$store.dispatch('setPredefinedMessage', { + messageId: this.predefinedMessageId, + clearAt: this.clearAt, + }) + } } catch (err) { showError(this.$t('user_status', 'There was an error saving the status')) console.debug(err) @@ -278,6 +290,7 @@ export default { } this.isSavingStatus = false + this.predefinedMessageId = null this.closeModal() }, /** @@ -299,6 +312,7 @@ export default { } this.isSavingStatus = false + this.predefinedMessageId = this.$store.state.userStatus?.messageId }, }, } From d30ba42a615de1d9497c79369dec63f062eabc0a Mon Sep 17 00:00:00 2001 From: nextcloud-command Date: Fri, 16 Aug 2024 05:34:02 +0000 Subject: [PATCH 2/2] chore(assets): Recompile assets Signed-off-by: nextcloud-command --- dist/user-status-modal-5133.js | 4 ++-- dist/user-status-modal-5133.js.map | 2 +- dist/user_status-menu.js | 4 ++-- dist/user_status-menu.js.map | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dist/user-status-modal-5133.js b/dist/user-status-modal-5133.js index 4fed5b830924d..f40c3d19daa3c 100644 --- a/dist/user-status-modal-5133.js +++ b/dist/user-status-modal-5133.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[5133],{29957:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,".clear-at-select[data-v-72be27d6]{display:flex;margin-bottom:10px;align-items:center}.clear-at-select__label[data-v-72be27d6]{margin-right:12px}.clear-at-select__select[data-v-72be27d6]{flex-grow:1;min-width:215px}","",{version:3,sources:["webpack://./apps/user_status/src/components/ClearAtSelect.vue"],names:[],mappings:"AACA,kCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,yCACC,iBAAA,CAGD,0CACC,WAAA,CACA,eAAA",sourcesContent:["\n.clear-at-select {\n\tdisplay: flex;\n\tmargin-bottom: 10px;\n\talign-items: center;\n\n\t&__label {\n\t\tmargin-right: 12px;\n\t}\n\n\t&__select {\n\t\tflex-grow: 1;\n\t\tmin-width: 215px;\n\t}\n}\n"],sourceRoot:""}]);const l=i},29478:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,".custom-input[data-v-3f943eb8]{display:flex;align-items:flex-end;gap:var(--default-grid-baseline);width:100%}.custom-input__container[data-v-3f943eb8]{width:100%}","",{version:3,sources:["webpack://./apps/user_status/src/components/CustomMessageInput.vue"],names:[],mappings:"AACA,+BACC,YAAA,CACA,oBAAA,CACA,gCAAA,CACA,UAAA,CAEA,0CACC,UAAA",sourcesContent:["\n.custom-input {\n\tdisplay: flex;\n\talign-items: flex-end;\n\tgap: var(--default-grid-baseline);\n\twidth: 100%;\n\n\t&__container {\n\t\twidth: 100%;\n\t}\n}\n"],sourceRoot:""}]);const l=i},74430:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,".user-status-online-select__label[data-v-a73330f8]{position:relative;display:block;margin:8px;padding:8px;padding-left:40px;border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);background-color:var(--color-background-hover);background-position:8px center;background-size:24px}.user-status-online-select__label span[data-v-a73330f8],.user-status-online-select__label[data-v-a73330f8]{cursor:pointer}.user-status-online-select__label span[data-v-a73330f8]{position:absolute;top:calc(50% - 10px);left:10px;display:block;width:24px;height:24px}.user-status-online-select__input:checked+.user-status-online-select__label[data-v-a73330f8]{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}.user-status-online-select__input:focus-visible+.user-status-online-select__label[data-v-a73330f8]{outline:2px solid var(--color-primary-element) !important}.user-status-online-select__subline[data-v-a73330f8]{display:block;color:var(--color-text-lighter)}","",{version:3,sources:["webpack://./apps/user_status/src/components/OnlineStatusSelect.vue"],names:[],mappings:"AAMC,mDACC,iBAAA,CACA,aAAA,CACA,UANc,CAOd,WAPc,CAQd,iBAAA,CACA,6CAAA,CACA,wCAAA,CACA,8CAAA,CACA,8BAAA,CACA,oBAdU,CAgBV,2GAEC,cAAA,CAGD,wDACC,iBAAA,CACA,oBAAA,CACA,SAAA,CACA,aAAA,CACA,UA1BS,CA2BT,WA3BS,CA+BX,6FACC,wCAAA,CACA,iDAAA,CAGD,mGACC,yDAAA,CAGD,qDACC,aAAA,CACA,+BAAA",sourcesContent:["\n@use 'sass:math';\n$icon-size: 24px;\n$label-padding: 8px;\n\n.user-status-online-select {\n\t&__label {\n\t\tposition: relative;\n\t\tdisplay: block;\n\t\tmargin: $label-padding;\n\t\tpadding: $label-padding;\n\t\tpadding-left: $icon-size + $label-padding * 2;\n\t\tborder: 2px solid var(--color-main-background);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-background-hover);\n\t\tbackground-position: $label-padding center;\n\t\tbackground-size: $icon-size;\n\n\t\tspan,\n\t\t& {\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\tspan {\n\t\t\tposition: absolute;\n\t\t\ttop: calc(50% - 10px);\n\t\t\tleft: 10px;\n\t\t\tdisplay: block;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t}\n\t}\n\n\t&__input:checked + &__label {\n\t\toutline: 2px solid var(--color-main-text);\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background);\n\t}\n\n\t&__input:focus-visible + &__label {\n\t\toutline: 2px solid var(--color-primary-element) !important;\n\t}\n\n\t&__subline {\n\t\tdisplay: block;\n\t\tcolor: var(--color-text-lighter);\n\t}\n}\n"],sourceRoot:""}]);const l=i},69236:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,'.predefined-status__label[data-v-0c9447c8]{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status__label--icon[data-v-0c9447c8]{flex-basis:40px;text-align:center}.predefined-status__label--message[data-v-0c9447c8]{font-weight:bold;padding:0 6px}.predefined-status__label--clear-at[data-v-0c9447c8]{color:var(--color-text-maxcontrast)}.predefined-status__label--clear-at[data-v-0c9447c8]::before{content:" – "}.predefined-status__input:checked+.predefined-status__label[data-v-0c9447c8],.predefined-status__label[data-v-0c9447c8]:active{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background);border-radius:var(--border-radius-large)}.predefined-status__input:focus-visible+.predefined-status__label[data-v-0c9447c8]{outline:2px solid var(--color-primary-element) !important;border-radius:var(--border-radius-large)}',"",{version:3,sources:["webpack://./PredefinedStatus.vue","webpack://./apps/user_status/src/components/PredefinedStatus.vue"],names:[],mappings:"AAAA,2CCEC,YACC,CAAA,gBACA,CAAA,0BACA,CAAA,eACA,CAAA,kCACA,CAAA,kBACA,CAAA,eACA,CAAA,iDAEA,eACC,CAAA,iBACA,CAAA,oDAGD,gBACC,CAAA,aACA,CAAA,qDAGD,mCACC,CAAA,6DAEA,aACC,CAAA,+HAKH,wCAEC,CAAA,iDACA,CAAA,wCACA,CAAA,mFAGD,yDACC,CAAA,wCACA",sourcesContent:['.predefined-status__label{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status__label--icon{flex-basis:40px;text-align:center}.predefined-status__label--message{font-weight:bold;padding:0 6px}.predefined-status__label--clear-at{color:var(--color-text-maxcontrast)}.predefined-status__label--clear-at::before{content:" – "}.predefined-status__input:checked+.predefined-status__label,.predefined-status__label:active{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background);border-radius:var(--border-radius-large)}.predefined-status__input:focus-visible+.predefined-status__label{outline:2px solid var(--color-primary-element) !important;border-radius:var(--border-radius-large)}',"\n.predefined-status {\n\t&__label {\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\tjustify-content: flex-start;\n\t\tflex-basis: 100%;\n\t\tborder-radius: var(--border-radius);\n\t\talign-items: center;\n\t\tmin-height: 44px;\n\n\t\t&--icon {\n\t\t\tflex-basis: 40px;\n\t\t\ttext-align: center;\n\t\t}\n\n\t\t&--message {\n\t\t\tfont-weight: bold;\n\t\t\tpadding: 0 6px;\n\t\t}\n\n\t\t&--clear-at {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t\t&::before {\n\t\t\t\tcontent: ' – ';\n\t\t\t}\n\t\t}\n\t}\n\n\t&__input:checked + &__label,\n\t&__label:active {\n\t\toutline: 2px solid var(--color-main-text);\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background);\n\t\tborder-radius: var(--border-radius-large);\n\t}\n\n\t&__input:focus-visible + &__label {\n\t\toutline: 2px solid var(--color-primary-element) !important;\n\t\tborder-radius: var(--border-radius-large);\n\t}\n}\n"],sourceRoot:""}]);const l=i},48067:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,".predefined-statuses-list[data-v-d615b492]{display:flex;flex-direction:column;margin-bottom:10px}","",{version:3,sources:["webpack://./apps/user_status/src/components/PredefinedStatusesList.vue"],names:[],mappings:"AACA,2CACC,YAAA,CACA,qBAAA,CACA,kBAAA",sourcesContent:["\n.predefined-statuses-list {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: 10px;\n}\n"],sourceRoot:""}]);const l=i},5916:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,'.predefined-status[data-v-bb58290e]{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status[data-v-bb58290e]:hover,.predefined-status[data-v-bb58290e]:focus{background-color:var(--color-background-hover)}.predefined-status[data-v-bb58290e]:active{background-color:var(--color-background-dark)}.predefined-status__icon[data-v-bb58290e]{flex-basis:40px;text-align:center}.predefined-status__message[data-v-bb58290e]{font-weight:bold;padding:0 6px}.predefined-status__clear-at[data-v-bb58290e]{color:var(--color-text-maxcontrast)}.predefined-status__clear-at[data-v-bb58290e]::before{content:" – "}.backup-status__reset-button[data-v-bb58290e]{justify-content:flex-end;display:flex;flex-grow:1}',"",{version:3,sources:["webpack://./PreviousStatus.vue","webpack://./apps/user_status/src/components/PreviousStatus.vue"],names:[],mappings:"AAAA,oCCCA,YACC,CAAA,gBACA,CAAA,0BACA,CAAA,eACA,CAAA,kCACA,CAAA,kBACA,CAAA,eACA,CAAA,oFAEA,8CAEC,CAAA,2CAGD,6CACC,CAAA,0CAGD,eACC,CAAA,iBACA,CAAA,6CAGD,gBACC,CAAA,aACA,CAAA,8CAGD,mCACC,CAAA,sDAEA,aACC,CAAA,8CAKF,wBACC,CAAA,YACA,CAAA,WACA",sourcesContent:['.predefined-status{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status:hover,.predefined-status:focus{background-color:var(--color-background-hover)}.predefined-status:active{background-color:var(--color-background-dark)}.predefined-status__icon{flex-basis:40px;text-align:center}.predefined-status__message{font-weight:bold;padding:0 6px}.predefined-status__clear-at{color:var(--color-text-maxcontrast)}.predefined-status__clear-at::before{content:" – "}.backup-status__reset-button{justify-content:flex-end;display:flex;flex-grow:1}',"\n.predefined-status {\n\tdisplay: flex;\n\tflex-wrap: nowrap;\n\tjustify-content: flex-start;\n\tflex-basis: 100%;\n\tborder-radius: var(--border-radius);\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t}\n\n\t&:active{\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tflex-basis: 40px;\n\t\ttext-align: center;\n\t}\n\n\t&__message {\n\t\tfont-weight: bold;\n\t\tpadding: 0 6px;\n\t}\n\n\t&__clear-at {\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t&::before {\n\t\t\tcontent: ' – ';\n\t\t}\n\t}\n}\n.backup-status {\n\t&__reset-button {\n\t\tjustify-content: flex-end;\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t}\n}\n"],sourceRoot:""}]);const l=i},55604:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,".set-status-modal[data-v-c7245fce]{padding:8px 20px 20px 20px}.set-status-modal__header[data-v-c7245fce]{text-align:center;font-weight:bold;margin:15px 0}.set-status-modal__online-status[data-v-c7245fce]{display:grid;grid-template-columns:1fr 1fr}.set-status-modal__custom-input[data-v-c7245fce]{display:flex;width:100%;margin-bottom:10px}.set-status-modal__automation-hint[data-v-c7245fce]{display:flex;width:100%;margin-bottom:10px;color:var(--color-text-maxcontrast)}.set-status-modal .status-buttons[data-v-c7245fce]{display:flex;padding:3px;padding-left:0;gap:3px}@media only screen and (max-width: 500px){.set-status-modal__online-status[data-v-c7245fce]{grid-template-columns:none !important}}","",{version:3,sources:["webpack://./apps/user_status/src/components/SetStatusModal.vue"],names:[],mappings:"AAEA,mCACC,0BAAA,CAEA,2CACC,iBAAA,CACA,gBAAA,CACA,aAAA,CAGD,kDACC,YAAA,CACA,6BAAA,CAGD,iDACC,YAAA,CACA,UAAA,CACA,kBAAA,CAGD,oDACC,YAAA,CACA,UAAA,CACA,kBAAA,CACA,mCAAA,CAGD,mDACC,YAAA,CACA,WAAA,CACA,cAAA,CACA,OAAA,CAIF,0CACC,kDACC,qCAAA,CAAA",sourcesContent:["\n\n.set-status-modal {\n\tpadding: 8px 20px 20px 20px;\n\n\t&__header {\n\t\ttext-align: center;\n\t\tfont-weight: bold;\n\t\tmargin: 15px 0;\n\t}\n\n\t&__online-status {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: 1fr 1fr;\n\t}\n\n\t&__custom-input {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tmargin-bottom: 10px;\n\t}\n\n\t&__automation-hint {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tmargin-bottom: 10px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t.status-buttons {\n\t\tdisplay: flex;\n\t\tpadding: 3px;\n\t\tpadding-left:0;\n\t\tgap: 3px;\n\t}\n}\n\n@media only screen and (max-width: 500px) {\n\t.set-status-modal__online-status {\n\t\tgrid-template-columns: none !important;\n\t}\n}\n\n"],sourceRoot:""}]);const l=i},70233:(t,e,s)=>{s.r(e),s.d(e,{default:()=>tt});var a=s(85168),n=s(71650),r=s(54332),i=s(53334),l=s(33114),o=s(19231),u=s(61913);const c=t=>{if(null===t)return(0,i.Tl)("user_status","Don't clear");if("end-of"===t.type)switch(t.time){case"day":return(0,i.Tl)("user_status","Today");case"week":return(0,i.Tl)("user_status","This week");default:return null}if("period"===t.type)return o.A.duration(1e3*t.time).humanize();if("_time"===t.type){const e=(0,o.A)((0,u.R)()),s=(0,o.A)(t.time,"X");return o.A.duration(e.diff(s)).humanize()}return null},d={name:"PredefinedStatus",filters:{clearAtFilter:c},props:{messageId:{type:String,required:!0},icon:{type:String,required:!0},message:{type:String,required:!0},clearAt:{type:Object,required:!1,default:null},selected:{type:Boolean,required:!1,default:!1}},computed:{id(){return`user-status-predefined-status-${this.messageId}`}},methods:{select(){this.$emit("select")}}};var A=s(85072),p=s.n(A),m=s(97825),C=s.n(m),_=s(77659),b=s.n(_),f=s(55056),g=s.n(f),v=s(10540),h=s.n(v),x=s(41113),y=s.n(x),S=s(69236),k={};k.styleTagTransform=y(),k.setAttributes=g(),k.insert=b().bind(null,"head"),k.domAPI=C(),k.insertStyleElement=h(),p()(S.A,k),S.A&&S.A.locals&&S.A.locals;var w=s(14486);const B=(0,w.A)(d,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"predefined-status"},[e("input",{staticClass:"hidden-visually predefined-status__input",attrs:{id:t.id,type:"radio",name:"predefined-status"},domProps:{checked:t.selected},on:{change:t.select}}),t._v(" "),e("label",{staticClass:"predefined-status__label",attrs:{for:t.id}},[e("span",{staticClass:"predefined-status__label--icon",attrs:{"aria-hidden":"true"}},[t._v("\n\t\t\t"+t._s(t.icon)+"\n\t\t")]),t._v(" "),e("span",{staticClass:"predefined-status__label--message"},[t._v("\n\t\t\t"+t._s(t.message)+"\n\t\t")]),t._v(" "),e("span",{staticClass:"predefined-status__label--clear-at"},[t._v("\n\t\t\t"+t._s(t._f("clearAtFilter")(t.clearAt))+"\n\t\t")])])])}),[],!1,null,"0c9447c8",null).exports;var $=s(95353);const I={name:"PredefinedStatusesList",components:{PredefinedStatus:B},data:()=>({lastSelected:null}),computed:{...(0,$.aH)({predefinedStatuses:t=>t.predefinedStatuses.predefinedStatuses,messageId:t=>t.userStatus.messageId}),...(0,$.L8)(["statusesHaveLoaded"])},watch:{messageId:{immediate:!0,handler(){this.lastSelected=this.messageId}}},created(){this.$store.dispatch("loadAllPredefinedStatuses")},methods:{selectStatus(t){this.lastSelected=t.id,this.$emit("select-status",t)}}};var T=s(48067),D={};D.styleTagTransform=y(),D.setAttributes=g(),D.insert=b().bind(null,"head"),D.domAPI=C(),D.insertStyleElement=h(),p()(T.A,D),T.A&&T.A.locals&&T.A.locals;const M=(0,w.A)(I,(function(){var t=this,e=t._self._c;return t.statusesHaveLoaded?e("ul",{staticClass:"predefined-statuses-list",attrs:{"aria-label":t.t("user_status","Predefined statuses")}},t._l(t.predefinedStatuses,(function(s){return e("PredefinedStatus",{key:s.id,attrs:{"message-id":s.id,icon:s.icon,message:s.message,"clear-at":s.clearAt,selected:t.lastSelected===s.id},on:{select:function(e){return t.selectStatus(s)}}})})),1):e("div",{staticClass:"predefined-statuses-list"},[e("div",{staticClass:"icon icon-loading-small"})])}),[],!1,null,"d615b492",null).exports,P={name:"PreviousStatus",components:{NcButton:r.A},props:{icon:{type:[String,null],required:!0},message:{type:String,required:!0}},methods:{select(){this.$emit("select")}}};var E=s(5916),N={};N.styleTagTransform=y(),N.setAttributes=g(),N.insert=b().bind(null,"head"),N.domAPI=C(),N.insertStyleElement=h(),p()(E.A,N),E.A&&E.A.locals&&E.A.locals;const G=(0,w.A)(P,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"predefined-status backup-status",attrs:{tabindex:"0"},on:{keyup:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.select.apply(null,arguments)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"space",32,e.key,[" ","Spacebar"])?null:t.select.apply(null,arguments)}],click:t.select}},[e("span",{staticClass:"predefined-status__icon"},[t._v("\n\t\t"+t._s(t.icon)+"\n\t")]),t._v(" "),e("span",{staticClass:"predefined-status__message"},[t._v("\n\t\t"+t._s(t.message)+"\n\t")]),t._v(" "),e("span",{staticClass:"predefined-status__clear-at"},[t._v("\n\t\t"+t._s(t.$t("user_status","Previously set"))+"\n\t")]),t._v(" "),e("div",{staticClass:"backup-status__reset-button"},[e("NcButton",{on:{click:t.select}},[t._v("\n\t\t\t"+t._s(t.$t("user_status","Reset status"))+"\n\t\t")])],1)])}),[],!1,null,"bb58290e",null).exports;var q=s(6245);const F={name:"CustomMessageInput",components:{NcTextField:s(82182).A,NcButton:r.A,NcEmojiPicker:q.N},props:{icon:{type:String,default:"😀"},message:{type:String,required:!0,default:()=>""},disabled:{type:Boolean,default:!1}},emits:["change","select-icon"],computed:{visibleIcon(){return this.icon||"😀"}},methods:{focus(){this.$refs.input.focus()},onChange(t){this.$emit("change",t.target.value)},setIcon(t){this.$emit("select-icon",t)}}};var R=s(29478),j={};j.styleTagTransform=y(),j.setAttributes=g(),j.insert=b().bind(null,"head"),j.domAPI=C(),j.insertStyleElement=h(),p()(R.A,j),R.A&&R.A.locals&&R.A.locals;const O=(0,w.A)(F,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"custom-input",attrs:{role:"group"}},[e("NcEmojiPicker",{attrs:{container:".custom-input"},on:{select:t.setIcon}},[e("NcButton",{attrs:{type:"tertiary","aria-label":t.t("user_status","Emoji for your status message")},scopedSlots:t._u([{key:"icon",fn:function(){return[t._v("\n\t\t\t\t"+t._s(t.visibleIcon)+"\n\t\t\t")]},proxy:!0}])})],1),t._v(" "),e("div",{staticClass:"custom-input__container"},[e("NcTextField",{ref:"input",attrs:{maxlength:"80",disabled:t.disabled,placeholder:t.t("user_status","What is your status?"),value:t.message,type:"text",label:t.t("user_status","What is your status?")},on:{input:t.onChange}})],1)],1)}),[],!1,null,"3f943eb8",null).exports;const Y={name:"ClearAtSelect",components:{NcSelect:s(67607).A},props:{clearAt:{type:Object,default:null}},data:()=>({options:[{label:(0,i.Tl)("user_status","Don't clear"),clearAt:null},{label:(0,i.Tl)("user_status","30 minutes"),clearAt:{type:"period",time:1800}},{label:(0,i.Tl)("user_status","1 hour"),clearAt:{type:"period",time:3600}},{label:(0,i.Tl)("user_status","4 hours"),clearAt:{type:"period",time:14400}},{label:(0,i.Tl)("user_status","Today"),clearAt:{type:"end-of",time:"day"}},{label:(0,i.Tl)("user_status","This week"),clearAt:{type:"end-of",time:"week"}}]}),computed:{option(){return{clearAt:this.clearAt,label:c(this.clearAt)}}},methods:{select(t){t&&this.$emit("select-clear-at",t.clearAt)}}};var z=s(29957),U={};U.styleTagTransform=y(),U.setAttributes=g(),U.insert=b().bind(null,"head"),U.domAPI=C(),U.insertStyleElement=h(),p()(z.A,U),z.A&&z.A.locals&&z.A.locals;const L=(0,w.A)(Y,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"clear-at-select"},[e("label",{staticClass:"clear-at-select__label",attrs:{for:"clearStatus"}},[t._v("\n\t\t"+t._s(t.$t("user_status","Clear status after"))+"\n\t")]),t._v(" "),e("NcSelect",{staticClass:"clear-at-select__select",attrs:{"input-id":"clearStatus",options:t.options,value:t.option,clearable:!1,placement:"top"},on:{"option:selected":t.select}})],1)}),[],!1,null,"72be27d6",null).exports,W={name:"OnlineStatusSelect",components:{NcUserStatusIcon:s(53611).A},props:{checked:{type:Boolean,default:!1},type:{type:String,required:!0},label:{type:String,required:!0},subline:{type:String,default:null}},computed:{id(){return`user-status-online-status-${this.type}`}},methods:{onChange(){this.$emit("select",this.type)}}};var H=s(74430),Q={};Q.styleTagTransform=y(),Q.setAttributes=g(),Q.insert=b().bind(null,"head"),Q.domAPI=C(),Q.insertStyleElement=h(),p()(H.A,Q),H.A&&H.A.locals&&H.A.locals;const K=(0,w.A)(W,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-status-online-select"},[e("input",{staticClass:"hidden-visually user-status-online-select__input",attrs:{id:t.id,type:"radio",name:"user-status-online"},domProps:{checked:t.checked},on:{change:t.onChange}}),t._v(" "),e("label",{staticClass:"user-status-online-select__label",attrs:{for:t.id}},[t._v("\n\t\t"+t._s(t.label)+"\n\t\t"),e("NcUserStatusIcon",{attrs:{status:t.type,"aria-hidden":"true"}}),t._v(" "),e("em",{staticClass:"user-status-online-select__subline"},[t._v(t._s(t.subline))])],1)])}),[],!1,null,"a73330f8",null).exports;var X=s(96763);const V={name:"SetStatusModal",components:{ClearAtSelect:L,CustomMessageInput:O,NcModal:n.A,OnlineStatusSelect:K,PredefinedStatusesList:M,PreviousStatus:G,NcButton:r.A},mixins:[l.A],props:{inline:{type:Boolean,default:!1}},data:()=>({clearAt:null,editedMessage:"",isSavingStatus:!1,statuses:[{type:"online",label:(0,i.Tl)("user_status","Online")},{type:"away",label:(0,i.Tl)("user_status","Away")},{type:"dnd",label:(0,i.Tl)("user_status","Do not disturb"),subline:(0,i.Tl)("user_status","Mute all notifications")},{type:"invisible",label:(0,i.Tl)("user_status","Invisible"),subline:(0,i.Tl)("user_status","Appear offline")}]}),computed:{messageId(){return this.$store.state.userStatus.messageId},icon(){return this.$store.state.userStatus.icon},message(){return this.$store.state.userStatus.message||""},hasBackupStatus(){return this.messageId&&(this.backupIcon||this.backupMessage)},backupIcon(){return this.$store.state.userBackupStatus.icon||""},backupMessage(){return this.$store.state.userBackupStatus.message||""},resetButtonText(){return this.backupIcon&&this.backupMessage?this.$t("user_status",'Reset status to "{icon} {message}"',{icon:this.backupIcon,message:this.backupMessage}):this.backupMessage?this.$t("user_status",'Reset status to "{message}"',{message:this.backupMessage}):this.backupIcon?this.$t("user_status",'Reset status to "{icon}"',{icon:this.backupIcon}):this.$t("user_status","Reset status")},setReturnFocus(){if(!this.inline)return document.querySelector('[aria-controls="header-menu-user-menu"]')??void 0}},watch:{message:{immediate:!0,handler(t){this.editedMessage=t}}},mounted(){this.$store.dispatch("fetchBackupFromServer"),null!==this.$store.state.userStatus.clearAt&&(this.clearAt={type:"_time",time:this.$store.state.userStatus.clearAt})},methods:{closeModal(){this.$emit("close")},setIcon(t){this.$store.dispatch("setCustomMessage",{message:this.message,icon:t,clearAt:this.clearAt}),this.$nextTick((()=>{this.$refs.customMessageInput.focus()}))},setMessage(t){this.editedMessage=t},setClearAt(t){this.clearAt=t},selectPredefinedMessage(t){this.clearAt=t.clearAt,this.$store.dispatch("setPredefinedMessage",{messageId:t.id,clearAt:t.clearAt})},async saveStatus(){if(!this.isSavingStatus){try{this.isSavingStatus=!0,await this.$store.dispatch("setCustomMessage",{message:this.editedMessage,icon:this.icon,clearAt:this.clearAt})}catch(t){return(0,a.Qg)(this.$t("user_status","There was an error saving the status")),X.debug(t),void(this.isSavingStatus=!1)}this.isSavingStatus=!1,this.closeModal()}},async clearStatus(){try{this.isSavingStatus=!0,await this.$store.dispatch("clearMessage")}catch(t){return(0,a.Qg)(this.$t("user_status","There was an error clearing the status")),X.debug(t),void(this.isSavingStatus=!1)}this.isSavingStatus=!1,this.closeModal()},async revertBackupFromServer(){try{this.isSavingStatus=!0,await this.$store.dispatch("revertBackupFromServer",{messageId:this.messageId})}catch(t){return(0,a.Qg)(this.$t("user_status","There was an error reverting the status")),X.debug(t),void(this.isSavingStatus=!1)}this.isSavingStatus=!1}}};var J=s(55604),Z={};Z.styleTagTransform=y(),Z.setAttributes=g(),Z.insert=b().bind(null,"head"),Z.domAPI=C(),Z.insertStyleElement=h(),p()(J.A,Z),J.A&&J.A.locals&&J.A.locals;const tt=(0,w.A)(V,(function(){var t=this,e=t._self._c;return e("NcModal",{attrs:{size:"normal",name:t.$t("user_status","Set status"),"set-return-focus":t.setReturnFocus},on:{close:t.closeModal}},[e("div",{staticClass:"set-status-modal"},[e("div",{staticClass:"set-status-modal__header"},[e("h2",[t._v(t._s(t.$t("user_status","Online status")))])]),t._v(" "),e("div",{staticClass:"set-status-modal__online-status",attrs:{role:"radiogroup","aria-label":t.$t("user_status","Online status")}},t._l(t.statuses,(function(s){return e("OnlineStatusSelect",t._b({key:s.type,attrs:{checked:s.type===t.statusType},on:{select:t.changeStatus}},"OnlineStatusSelect",s,!1))})),1),t._v(" "),e("form",{on:{submit:function(e){return e.preventDefault(),t.saveStatus.apply(null,arguments)},reset:t.clearStatus}},[e("div",{staticClass:"set-status-modal__header"},[e("h2",[t._v(t._s(t.$t("user_status","Status message")))])]),t._v(" "),e("div",{staticClass:"set-status-modal__custom-input"},[e("CustomMessageInput",{ref:"customMessageInput",attrs:{icon:t.icon,message:t.editedMessage},on:{change:t.setMessage,"select-icon":t.setIcon}})],1),t._v(" "),t.hasBackupStatus?e("div",{staticClass:"set-status-modal__automation-hint"},[t._v("\n\t\t\t\t"+t._s(t.$t("user_status","Your status was set automatically"))+"\n\t\t\t")]):t._e(),t._v(" "),t.hasBackupStatus?e("PreviousStatus",{attrs:{icon:t.backupIcon,message:t.backupMessage},on:{select:t.revertBackupFromServer}}):t._e(),t._v(" "),e("PredefinedStatusesList",{on:{"select-status":t.selectPredefinedMessage}}),t._v(" "),e("ClearAtSelect",{attrs:{"clear-at":t.clearAt},on:{"select-clear-at":t.setClearAt}}),t._v(" "),e("div",{staticClass:"status-buttons"},[e("NcButton",{attrs:{wide:!0,type:"tertiary","native-type":"reset","aria-label":t.$t("user_status","Clear status message"),disabled:t.isSavingStatus}},[t._v("\n\t\t\t\t\t"+t._s(t.$t("user_status","Clear status message"))+"\n\t\t\t\t")]),t._v(" "),e("NcButton",{attrs:{wide:!0,type:"primary","native-type":"submit","aria-label":t.$t("user_status","Set status message"),disabled:t.isSavingStatus}},[t._v("\n\t\t\t\t\t"+t._s(t.$t("user_status","Set status message"))+"\n\t\t\t\t")])],1)],1)])])}),[],!1,null,"c7245fce",null).exports}}]); -//# sourceMappingURL=user-status-modal-5133.js.map?v=94007975b2ae7146c752 \ No newline at end of file +"use strict";(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[5133],{29957:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,".clear-at-select[data-v-72be27d6]{display:flex;margin-bottom:10px;align-items:center}.clear-at-select__label[data-v-72be27d6]{margin-right:12px}.clear-at-select__select[data-v-72be27d6]{flex-grow:1;min-width:215px}","",{version:3,sources:["webpack://./apps/user_status/src/components/ClearAtSelect.vue"],names:[],mappings:"AACA,kCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,yCACC,iBAAA,CAGD,0CACC,WAAA,CACA,eAAA",sourcesContent:["\n.clear-at-select {\n\tdisplay: flex;\n\tmargin-bottom: 10px;\n\talign-items: center;\n\n\t&__label {\n\t\tmargin-right: 12px;\n\t}\n\n\t&__select {\n\t\tflex-grow: 1;\n\t\tmin-width: 215px;\n\t}\n}\n"],sourceRoot:""}]);const l=i},29478:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,".custom-input[data-v-3f943eb8]{display:flex;align-items:flex-end;gap:var(--default-grid-baseline);width:100%}.custom-input__container[data-v-3f943eb8]{width:100%}","",{version:3,sources:["webpack://./apps/user_status/src/components/CustomMessageInput.vue"],names:[],mappings:"AACA,+BACC,YAAA,CACA,oBAAA,CACA,gCAAA,CACA,UAAA,CAEA,0CACC,UAAA",sourcesContent:["\n.custom-input {\n\tdisplay: flex;\n\talign-items: flex-end;\n\tgap: var(--default-grid-baseline);\n\twidth: 100%;\n\n\t&__container {\n\t\twidth: 100%;\n\t}\n}\n"],sourceRoot:""}]);const l=i},74430:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,".user-status-online-select__label[data-v-a73330f8]{position:relative;display:block;margin:8px;padding:8px;padding-left:40px;border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);background-color:var(--color-background-hover);background-position:8px center;background-size:24px}.user-status-online-select__label span[data-v-a73330f8],.user-status-online-select__label[data-v-a73330f8]{cursor:pointer}.user-status-online-select__label span[data-v-a73330f8]{position:absolute;top:calc(50% - 10px);left:10px;display:block;width:24px;height:24px}.user-status-online-select__input:checked+.user-status-online-select__label[data-v-a73330f8]{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}.user-status-online-select__input:focus-visible+.user-status-online-select__label[data-v-a73330f8]{outline:2px solid var(--color-primary-element) !important}.user-status-online-select__subline[data-v-a73330f8]{display:block;color:var(--color-text-lighter)}","",{version:3,sources:["webpack://./apps/user_status/src/components/OnlineStatusSelect.vue"],names:[],mappings:"AAMC,mDACC,iBAAA,CACA,aAAA,CACA,UANc,CAOd,WAPc,CAQd,iBAAA,CACA,6CAAA,CACA,wCAAA,CACA,8CAAA,CACA,8BAAA,CACA,oBAdU,CAgBV,2GAEC,cAAA,CAGD,wDACC,iBAAA,CACA,oBAAA,CACA,SAAA,CACA,aAAA,CACA,UA1BS,CA2BT,WA3BS,CA+BX,6FACC,wCAAA,CACA,iDAAA,CAGD,mGACC,yDAAA,CAGD,qDACC,aAAA,CACA,+BAAA",sourcesContent:["\n@use 'sass:math';\n$icon-size: 24px;\n$label-padding: 8px;\n\n.user-status-online-select {\n\t&__label {\n\t\tposition: relative;\n\t\tdisplay: block;\n\t\tmargin: $label-padding;\n\t\tpadding: $label-padding;\n\t\tpadding-left: $icon-size + $label-padding * 2;\n\t\tborder: 2px solid var(--color-main-background);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-background-hover);\n\t\tbackground-position: $label-padding center;\n\t\tbackground-size: $icon-size;\n\n\t\tspan,\n\t\t& {\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\tspan {\n\t\t\tposition: absolute;\n\t\t\ttop: calc(50% - 10px);\n\t\t\tleft: 10px;\n\t\t\tdisplay: block;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t}\n\t}\n\n\t&__input:checked + &__label {\n\t\toutline: 2px solid var(--color-main-text);\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background);\n\t}\n\n\t&__input:focus-visible + &__label {\n\t\toutline: 2px solid var(--color-primary-element) !important;\n\t}\n\n\t&__subline {\n\t\tdisplay: block;\n\t\tcolor: var(--color-text-lighter);\n\t}\n}\n"],sourceRoot:""}]);const l=i},69236:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,'.predefined-status__label[data-v-0c9447c8]{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status__label--icon[data-v-0c9447c8]{flex-basis:40px;text-align:center}.predefined-status__label--message[data-v-0c9447c8]{font-weight:bold;padding:0 6px}.predefined-status__label--clear-at[data-v-0c9447c8]{color:var(--color-text-maxcontrast)}.predefined-status__label--clear-at[data-v-0c9447c8]::before{content:" – "}.predefined-status__input:checked+.predefined-status__label[data-v-0c9447c8],.predefined-status__label[data-v-0c9447c8]:active{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background);border-radius:var(--border-radius-large)}.predefined-status__input:focus-visible+.predefined-status__label[data-v-0c9447c8]{outline:2px solid var(--color-primary-element) !important;border-radius:var(--border-radius-large)}',"",{version:3,sources:["webpack://./PredefinedStatus.vue","webpack://./apps/user_status/src/components/PredefinedStatus.vue"],names:[],mappings:"AAAA,2CCEC,YACC,CAAA,gBACA,CAAA,0BACA,CAAA,eACA,CAAA,kCACA,CAAA,kBACA,CAAA,eACA,CAAA,iDAEA,eACC,CAAA,iBACA,CAAA,oDAGD,gBACC,CAAA,aACA,CAAA,qDAGD,mCACC,CAAA,6DAEA,aACC,CAAA,+HAKH,wCAEC,CAAA,iDACA,CAAA,wCACA,CAAA,mFAGD,yDACC,CAAA,wCACA",sourcesContent:['.predefined-status__label{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status__label--icon{flex-basis:40px;text-align:center}.predefined-status__label--message{font-weight:bold;padding:0 6px}.predefined-status__label--clear-at{color:var(--color-text-maxcontrast)}.predefined-status__label--clear-at::before{content:" – "}.predefined-status__input:checked+.predefined-status__label,.predefined-status__label:active{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background);border-radius:var(--border-radius-large)}.predefined-status__input:focus-visible+.predefined-status__label{outline:2px solid var(--color-primary-element) !important;border-radius:var(--border-radius-large)}',"\n.predefined-status {\n\t&__label {\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\tjustify-content: flex-start;\n\t\tflex-basis: 100%;\n\t\tborder-radius: var(--border-radius);\n\t\talign-items: center;\n\t\tmin-height: 44px;\n\n\t\t&--icon {\n\t\t\tflex-basis: 40px;\n\t\t\ttext-align: center;\n\t\t}\n\n\t\t&--message {\n\t\t\tfont-weight: bold;\n\t\t\tpadding: 0 6px;\n\t\t}\n\n\t\t&--clear-at {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t\t&::before {\n\t\t\t\tcontent: ' – ';\n\t\t\t}\n\t\t}\n\t}\n\n\t&__input:checked + &__label,\n\t&__label:active {\n\t\toutline: 2px solid var(--color-main-text);\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background);\n\t\tborder-radius: var(--border-radius-large);\n\t}\n\n\t&__input:focus-visible + &__label {\n\t\toutline: 2px solid var(--color-primary-element) !important;\n\t\tborder-radius: var(--border-radius-large);\n\t}\n}\n"],sourceRoot:""}]);const l=i},48067:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,".predefined-statuses-list[data-v-d615b492]{display:flex;flex-direction:column;margin-bottom:10px}","",{version:3,sources:["webpack://./apps/user_status/src/components/PredefinedStatusesList.vue"],names:[],mappings:"AACA,2CACC,YAAA,CACA,qBAAA,CACA,kBAAA",sourcesContent:["\n.predefined-statuses-list {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: 10px;\n}\n"],sourceRoot:""}]);const l=i},5916:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,'.predefined-status[data-v-bb58290e]{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status[data-v-bb58290e]:hover,.predefined-status[data-v-bb58290e]:focus{background-color:var(--color-background-hover)}.predefined-status[data-v-bb58290e]:active{background-color:var(--color-background-dark)}.predefined-status__icon[data-v-bb58290e]{flex-basis:40px;text-align:center}.predefined-status__message[data-v-bb58290e]{font-weight:bold;padding:0 6px}.predefined-status__clear-at[data-v-bb58290e]{color:var(--color-text-maxcontrast)}.predefined-status__clear-at[data-v-bb58290e]::before{content:" – "}.backup-status__reset-button[data-v-bb58290e]{justify-content:flex-end;display:flex;flex-grow:1}',"",{version:3,sources:["webpack://./PreviousStatus.vue","webpack://./apps/user_status/src/components/PreviousStatus.vue"],names:[],mappings:"AAAA,oCCCA,YACC,CAAA,gBACA,CAAA,0BACA,CAAA,eACA,CAAA,kCACA,CAAA,kBACA,CAAA,eACA,CAAA,oFAEA,8CAEC,CAAA,2CAGD,6CACC,CAAA,0CAGD,eACC,CAAA,iBACA,CAAA,6CAGD,gBACC,CAAA,aACA,CAAA,8CAGD,mCACC,CAAA,sDAEA,aACC,CAAA,8CAKF,wBACC,CAAA,YACA,CAAA,WACA",sourcesContent:['.predefined-status{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status:hover,.predefined-status:focus{background-color:var(--color-background-hover)}.predefined-status:active{background-color:var(--color-background-dark)}.predefined-status__icon{flex-basis:40px;text-align:center}.predefined-status__message{font-weight:bold;padding:0 6px}.predefined-status__clear-at{color:var(--color-text-maxcontrast)}.predefined-status__clear-at::before{content:" – "}.backup-status__reset-button{justify-content:flex-end;display:flex;flex-grow:1}',"\n.predefined-status {\n\tdisplay: flex;\n\tflex-wrap: nowrap;\n\tjustify-content: flex-start;\n\tflex-basis: 100%;\n\tborder-radius: var(--border-radius);\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t}\n\n\t&:active{\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tflex-basis: 40px;\n\t\ttext-align: center;\n\t}\n\n\t&__message {\n\t\tfont-weight: bold;\n\t\tpadding: 0 6px;\n\t}\n\n\t&__clear-at {\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t&::before {\n\t\t\tcontent: ' – ';\n\t\t}\n\t}\n}\n.backup-status {\n\t&__reset-button {\n\t\tjustify-content: flex-end;\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t}\n}\n"],sourceRoot:""}]);const l=i},73526:(t,e,s)=>{s.d(e,{A:()=>l});var a=s(71354),n=s.n(a),r=s(76314),i=s.n(r)()(n());i.push([t.id,".set-status-modal[data-v-12fa49f2]{padding:8px 20px 20px 20px}.set-status-modal__header[data-v-12fa49f2]{text-align:center;font-weight:bold;margin:15px 0}.set-status-modal__online-status[data-v-12fa49f2]{display:grid;grid-template-columns:1fr 1fr}.set-status-modal__custom-input[data-v-12fa49f2]{display:flex;width:100%;margin-bottom:10px}.set-status-modal__automation-hint[data-v-12fa49f2]{display:flex;width:100%;margin-bottom:10px;color:var(--color-text-maxcontrast)}.set-status-modal .status-buttons[data-v-12fa49f2]{display:flex;padding:3px;padding-left:0;gap:3px}@media only screen and (max-width: 500px){.set-status-modal__online-status[data-v-12fa49f2]{grid-template-columns:none !important}}","",{version:3,sources:["webpack://./apps/user_status/src/components/SetStatusModal.vue"],names:[],mappings:"AAEA,mCACC,0BAAA,CAEA,2CACC,iBAAA,CACA,gBAAA,CACA,aAAA,CAGD,kDACC,YAAA,CACA,6BAAA,CAGD,iDACC,YAAA,CACA,UAAA,CACA,kBAAA,CAGD,oDACC,YAAA,CACA,UAAA,CACA,kBAAA,CACA,mCAAA,CAGD,mDACC,YAAA,CACA,WAAA,CACA,cAAA,CACA,OAAA,CAIF,0CACC,kDACC,qCAAA,CAAA",sourcesContent:["\n\n.set-status-modal {\n\tpadding: 8px 20px 20px 20px;\n\n\t&__header {\n\t\ttext-align: center;\n\t\tfont-weight: bold;\n\t\tmargin: 15px 0;\n\t}\n\n\t&__online-status {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: 1fr 1fr;\n\t}\n\n\t&__custom-input {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tmargin-bottom: 10px;\n\t}\n\n\t&__automation-hint {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tmargin-bottom: 10px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t.status-buttons {\n\t\tdisplay: flex;\n\t\tpadding: 3px;\n\t\tpadding-left:0;\n\t\tgap: 3px;\n\t}\n}\n\n@media only screen and (max-width: 500px) {\n\t.set-status-modal__online-status {\n\t\tgrid-template-columns: none !important;\n\t}\n}\n\n"],sourceRoot:""}]);const l=i},121:(t,e,s)=>{s.r(e),s.d(e,{default:()=>tt});var a=s(85168),n=s(71650),r=s(54332),i=s(53334),l=s(33114),o=s(19231),u=s(61913);const d=t=>{if(null===t)return(0,i.Tl)("user_status","Don't clear");if("end-of"===t.type)switch(t.time){case"day":return(0,i.Tl)("user_status","Today");case"week":return(0,i.Tl)("user_status","This week");default:return null}if("period"===t.type)return o.A.duration(1e3*t.time).humanize();if("_time"===t.type){const e=(0,o.A)((0,u.R)()),s=(0,o.A)(t.time,"X");return o.A.duration(e.diff(s)).humanize()}return null},c={name:"PredefinedStatus",filters:{clearAtFilter:d},props:{messageId:{type:String,required:!0},icon:{type:String,required:!0},message:{type:String,required:!0},clearAt:{type:Object,required:!1,default:null},selected:{type:Boolean,required:!1,default:!1}},computed:{id(){return`user-status-predefined-status-${this.messageId}`}},methods:{select(){this.$emit("select")}}};var A=s(85072),p=s.n(A),m=s(97825),C=s.n(m),_=s(77659),f=s.n(_),b=s(55056),g=s.n(b),v=s(10540),h=s.n(v),x=s(41113),y=s.n(x),S=s(69236),k={};k.styleTagTransform=y(),k.setAttributes=g(),k.insert=f().bind(null,"head"),k.domAPI=C(),k.insertStyleElement=h(),p()(S.A,k),S.A&&S.A.locals&&S.A.locals;var w=s(14486);const $=(0,w.A)(c,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"predefined-status"},[e("input",{staticClass:"hidden-visually predefined-status__input",attrs:{id:t.id,type:"radio",name:"predefined-status"},domProps:{checked:t.selected},on:{change:t.select}}),t._v(" "),e("label",{staticClass:"predefined-status__label",attrs:{for:t.id}},[e("span",{staticClass:"predefined-status__label--icon",attrs:{"aria-hidden":"true"}},[t._v("\n\t\t\t"+t._s(t.icon)+"\n\t\t")]),t._v(" "),e("span",{staticClass:"predefined-status__label--message"},[t._v("\n\t\t\t"+t._s(t.message)+"\n\t\t")]),t._v(" "),e("span",{staticClass:"predefined-status__label--clear-at"},[t._v("\n\t\t\t"+t._s(t._f("clearAtFilter")(t.clearAt))+"\n\t\t")])])])}),[],!1,null,"0c9447c8",null).exports;var B=s(95353);const I={name:"PredefinedStatusesList",components:{PredefinedStatus:$},data:()=>({lastSelected:null}),computed:{...(0,B.aH)({predefinedStatuses:t=>t.predefinedStatuses.predefinedStatuses,messageId:t=>t.userStatus.messageId}),...(0,B.L8)(["statusesHaveLoaded"])},watch:{messageId:{immediate:!0,handler(){this.lastSelected=this.messageId}}},created(){this.$store.dispatch("loadAllPredefinedStatuses")},methods:{selectStatus(t){this.lastSelected=t.id,this.$emit("select-status",t)}}};var M=s(48067),T={};T.styleTagTransform=y(),T.setAttributes=g(),T.insert=f().bind(null,"head"),T.domAPI=C(),T.insertStyleElement=h(),p()(M.A,T),M.A&&M.A.locals&&M.A.locals;const D=(0,w.A)(I,(function(){var t=this,e=t._self._c;return t.statusesHaveLoaded?e("ul",{staticClass:"predefined-statuses-list",attrs:{"aria-label":t.t("user_status","Predefined statuses")}},t._l(t.predefinedStatuses,(function(s){return e("PredefinedStatus",{key:s.id,attrs:{"message-id":s.id,icon:s.icon,message:s.message,"clear-at":s.clearAt,selected:t.lastSelected===s.id},on:{select:function(e){return t.selectStatus(s)}}})})),1):e("div",{staticClass:"predefined-statuses-list"},[e("div",{staticClass:"icon icon-loading-small"})])}),[],!1,null,"d615b492",null).exports,P={name:"PreviousStatus",components:{NcButton:r.A},props:{icon:{type:[String,null],required:!0},message:{type:String,required:!0}},methods:{select(){this.$emit("select")}}};var E=s(5916),N={};N.styleTagTransform=y(),N.setAttributes=g(),N.insert=f().bind(null,"head"),N.domAPI=C(),N.insertStyleElement=h(),p()(E.A,N),E.A&&E.A.locals&&E.A.locals;const G=(0,w.A)(P,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"predefined-status backup-status",attrs:{tabindex:"0"},on:{keyup:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.select.apply(null,arguments)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"space",32,e.key,[" ","Spacebar"])?null:t.select.apply(null,arguments)}],click:t.select}},[e("span",{staticClass:"predefined-status__icon"},[t._v("\n\t\t"+t._s(t.icon)+"\n\t")]),t._v(" "),e("span",{staticClass:"predefined-status__message"},[t._v("\n\t\t"+t._s(t.message)+"\n\t")]),t._v(" "),e("span",{staticClass:"predefined-status__clear-at"},[t._v("\n\t\t"+t._s(t.$t("user_status","Previously set"))+"\n\t")]),t._v(" "),e("div",{staticClass:"backup-status__reset-button"},[e("NcButton",{on:{click:t.select}},[t._v("\n\t\t\t"+t._s(t.$t("user_status","Reset status"))+"\n\t\t")])],1)])}),[],!1,null,"bb58290e",null).exports;var q=s(6245);const F={name:"CustomMessageInput",components:{NcTextField:s(82182).A,NcButton:r.A,NcEmojiPicker:q.N},props:{icon:{type:String,default:"😀"},message:{type:String,required:!0,default:()=>""},disabled:{type:Boolean,default:!1}},emits:["change","select-icon"],computed:{visibleIcon(){return this.icon||"😀"}},methods:{focus(){this.$refs.input.focus()},onChange(t){this.$emit("change",t.target.value)},setIcon(t){this.$emit("select-icon",t)}}};var R=s(29478),j={};j.styleTagTransform=y(),j.setAttributes=g(),j.insert=f().bind(null,"head"),j.domAPI=C(),j.insertStyleElement=h(),p()(R.A,j),R.A&&R.A.locals&&R.A.locals;const O=(0,w.A)(F,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"custom-input",attrs:{role:"group"}},[e("NcEmojiPicker",{attrs:{container:".custom-input"},on:{select:t.setIcon}},[e("NcButton",{attrs:{type:"tertiary","aria-label":t.t("user_status","Emoji for your status message")},scopedSlots:t._u([{key:"icon",fn:function(){return[t._v("\n\t\t\t\t"+t._s(t.visibleIcon)+"\n\t\t\t")]},proxy:!0}])})],1),t._v(" "),e("div",{staticClass:"custom-input__container"},[e("NcTextField",{ref:"input",attrs:{maxlength:"80",disabled:t.disabled,placeholder:t.t("user_status","What is your status?"),value:t.message,type:"text",label:t.t("user_status","What is your status?")},on:{input:t.onChange}})],1)],1)}),[],!1,null,"3f943eb8",null).exports;const Y={name:"ClearAtSelect",components:{NcSelect:s(67607).A},props:{clearAt:{type:Object,default:null}},data:()=>({options:[{label:(0,i.Tl)("user_status","Don't clear"),clearAt:null},{label:(0,i.Tl)("user_status","30 minutes"),clearAt:{type:"period",time:1800}},{label:(0,i.Tl)("user_status","1 hour"),clearAt:{type:"period",time:3600}},{label:(0,i.Tl)("user_status","4 hours"),clearAt:{type:"period",time:14400}},{label:(0,i.Tl)("user_status","Today"),clearAt:{type:"end-of",time:"day"}},{label:(0,i.Tl)("user_status","This week"),clearAt:{type:"end-of",time:"week"}}]}),computed:{option(){return{clearAt:this.clearAt,label:d(this.clearAt)}}},methods:{select(t){t&&this.$emit("select-clear-at",t.clearAt)}}};var z=s(29957),U={};U.styleTagTransform=y(),U.setAttributes=g(),U.insert=f().bind(null,"head"),U.domAPI=C(),U.insertStyleElement=h(),p()(z.A,U),z.A&&z.A.locals&&z.A.locals;const L=(0,w.A)(Y,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"clear-at-select"},[e("label",{staticClass:"clear-at-select__label",attrs:{for:"clearStatus"}},[t._v("\n\t\t"+t._s(t.$t("user_status","Clear status after"))+"\n\t")]),t._v(" "),e("NcSelect",{staticClass:"clear-at-select__select",attrs:{"input-id":"clearStatus",options:t.options,value:t.option,clearable:!1,placement:"top"},on:{"option:selected":t.select}})],1)}),[],!1,null,"72be27d6",null).exports,W={name:"OnlineStatusSelect",components:{NcUserStatusIcon:s(53611).A},props:{checked:{type:Boolean,default:!1},type:{type:String,required:!0},label:{type:String,required:!0},subline:{type:String,default:null}},computed:{id(){return`user-status-online-status-${this.type}`}},methods:{onChange(){this.$emit("select",this.type)}}};var H=s(74430),Q={};Q.styleTagTransform=y(),Q.setAttributes=g(),Q.insert=f().bind(null,"head"),Q.domAPI=C(),Q.insertStyleElement=h(),p()(H.A,Q),H.A&&H.A.locals&&H.A.locals;const K=(0,w.A)(W,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-status-online-select"},[e("input",{staticClass:"hidden-visually user-status-online-select__input",attrs:{id:t.id,type:"radio",name:"user-status-online"},domProps:{checked:t.checked},on:{change:t.onChange}}),t._v(" "),e("label",{staticClass:"user-status-online-select__label",attrs:{for:t.id}},[t._v("\n\t\t"+t._s(t.label)+"\n\t\t"),e("NcUserStatusIcon",{attrs:{status:t.type,"aria-hidden":"true"}}),t._v(" "),e("em",{staticClass:"user-status-online-select__subline"},[t._v(t._s(t.subline))])],1)])}),[],!1,null,"a73330f8",null).exports;var X=s(96763);const V={name:"SetStatusModal",components:{ClearAtSelect:L,CustomMessageInput:O,NcModal:n.A,OnlineStatusSelect:K,PredefinedStatusesList:D,PreviousStatus:G,NcButton:r.A},mixins:[l.A],props:{inline:{type:Boolean,default:!1}},data:()=>({clearAt:null,editedMessage:"",predefinedMessageId:null,isSavingStatus:!1,statuses:[{type:"online",label:(0,i.Tl)("user_status","Online")},{type:"away",label:(0,i.Tl)("user_status","Away")},{type:"dnd",label:(0,i.Tl)("user_status","Do not disturb"),subline:(0,i.Tl)("user_status","Mute all notifications")},{type:"invisible",label:(0,i.Tl)("user_status","Invisible"),subline:(0,i.Tl)("user_status","Appear offline")}]}),computed:{messageId(){return this.$store.state.userStatus.messageId},icon(){return this.$store.state.userStatus.icon},message(){return this.$store.state.userStatus.message||""},hasBackupStatus(){return this.messageId&&(this.backupIcon||this.backupMessage)},backupIcon(){return this.$store.state.userBackupStatus.icon||""},backupMessage(){return this.$store.state.userBackupStatus.message||""},resetButtonText(){return this.backupIcon&&this.backupMessage?this.$t("user_status",'Reset status to "{icon} {message}"',{icon:this.backupIcon,message:this.backupMessage}):this.backupMessage?this.$t("user_status",'Reset status to "{message}"',{message:this.backupMessage}):this.backupIcon?this.$t("user_status",'Reset status to "{icon}"',{icon:this.backupIcon}):this.$t("user_status","Reset status")},setReturnFocus(){if(!this.inline)return document.querySelector('[aria-controls="header-menu-user-menu"]')??void 0}},watch:{message:{immediate:!0,handler(t){this.editedMessage=t}}},mounted(){this.$store.dispatch("fetchBackupFromServer"),this.predefinedMessageId=this.$store.state.userStatus.messageId,null!==this.$store.state.userStatus.clearAt&&(this.clearAt={type:"_time",time:this.$store.state.userStatus.clearAt})},methods:{closeModal(){this.$emit("close")},setIcon(t){this.predefinedMessageId=null,this.$store.dispatch("setCustomMessage",{message:this.message,icon:t,clearAt:this.clearAt}),this.$nextTick((()=>{this.$refs.customMessageInput.focus()}))},setMessage(t){this.predefinedMessageId=null,this.editedMessage=t},setClearAt(t){this.clearAt=t},selectPredefinedMessage(t){this.predefinedMessageId=t.id,this.clearAt=t.clearAt,this.$store.dispatch("setPredefinedMessage",{messageId:t.id,clearAt:t.clearAt})},async saveStatus(){if(!this.isSavingStatus){try{this.isSavingStatus=!0,null===this.predefinedMessageId?await this.$store.dispatch("setCustomMessage",{message:this.editedMessage,icon:this.icon,clearAt:this.clearAt}):this.$store.dispatch("setPredefinedMessage",{messageId:this.predefinedMessageId,clearAt:this.clearAt})}catch(t){return(0,a.Qg)(this.$t("user_status","There was an error saving the status")),X.debug(t),void(this.isSavingStatus=!1)}this.isSavingStatus=!1,this.closeModal()}},async clearStatus(){try{this.isSavingStatus=!0,await this.$store.dispatch("clearMessage")}catch(t){return(0,a.Qg)(this.$t("user_status","There was an error clearing the status")),X.debug(t),void(this.isSavingStatus=!1)}this.isSavingStatus=!1,this.predefinedMessageId=null,this.closeModal()},async revertBackupFromServer(){try{this.isSavingStatus=!0,await this.$store.dispatch("revertBackupFromServer",{messageId:this.messageId})}catch(t){return(0,a.Qg)(this.$t("user_status","There was an error reverting the status")),X.debug(t),void(this.isSavingStatus=!1)}this.isSavingStatus=!1,this.predefinedMessageId=this.$store.state.userStatus?.messageId}}};var J=s(73526),Z={};Z.styleTagTransform=y(),Z.setAttributes=g(),Z.insert=f().bind(null,"head"),Z.domAPI=C(),Z.insertStyleElement=h(),p()(J.A,Z),J.A&&J.A.locals&&J.A.locals;const tt=(0,w.A)(V,(function(){var t=this,e=t._self._c;return e("NcModal",{attrs:{size:"normal",name:t.$t("user_status","Set status"),"set-return-focus":t.setReturnFocus},on:{close:t.closeModal}},[e("div",{staticClass:"set-status-modal"},[e("div",{staticClass:"set-status-modal__header"},[e("h2",[t._v(t._s(t.$t("user_status","Online status")))])]),t._v(" "),e("div",{staticClass:"set-status-modal__online-status",attrs:{role:"radiogroup","aria-label":t.$t("user_status","Online status")}},t._l(t.statuses,(function(s){return e("OnlineStatusSelect",t._b({key:s.type,attrs:{checked:s.type===t.statusType},on:{select:t.changeStatus}},"OnlineStatusSelect",s,!1))})),1),t._v(" "),e("form",{on:{submit:function(e){return e.preventDefault(),t.saveStatus.apply(null,arguments)},reset:t.clearStatus}},[e("div",{staticClass:"set-status-modal__header"},[e("h2",[t._v(t._s(t.$t("user_status","Status message")))])]),t._v(" "),e("div",{staticClass:"set-status-modal__custom-input"},[e("CustomMessageInput",{ref:"customMessageInput",attrs:{icon:t.icon,message:t.editedMessage},on:{change:t.setMessage,"select-icon":t.setIcon}})],1),t._v(" "),t.hasBackupStatus?e("div",{staticClass:"set-status-modal__automation-hint"},[t._v("\n\t\t\t\t"+t._s(t.$t("user_status","Your status was set automatically"))+"\n\t\t\t")]):t._e(),t._v(" "),t.hasBackupStatus?e("PreviousStatus",{attrs:{icon:t.backupIcon,message:t.backupMessage},on:{select:t.revertBackupFromServer}}):t._e(),t._v(" "),e("PredefinedStatusesList",{on:{"select-status":t.selectPredefinedMessage}}),t._v(" "),e("ClearAtSelect",{attrs:{"clear-at":t.clearAt},on:{"select-clear-at":t.setClearAt}}),t._v(" "),e("div",{staticClass:"status-buttons"},[e("NcButton",{attrs:{wide:!0,type:"tertiary","native-type":"reset","aria-label":t.$t("user_status","Clear status message"),disabled:t.isSavingStatus}},[t._v("\n\t\t\t\t\t"+t._s(t.$t("user_status","Clear status message"))+"\n\t\t\t\t")]),t._v(" "),e("NcButton",{attrs:{wide:!0,type:"primary","native-type":"submit","aria-label":t.$t("user_status","Set status message"),disabled:t.isSavingStatus}},[t._v("\n\t\t\t\t\t"+t._s(t.$t("user_status","Set status message"))+"\n\t\t\t\t")])],1)],1)])])}),[],!1,null,"12fa49f2",null).exports}}]); +//# sourceMappingURL=user-status-modal-5133.js.map?v=4b2b2fdbb5db688639dc \ No newline at end of file diff --git a/dist/user-status-modal-5133.js.map b/dist/user-status-modal-5133.js.map index 305311b75dd95..6333ccf0d15ac 100644 --- a/dist/user-status-modal-5133.js.map +++ b/dist/user-status-modal-5133.js.map @@ -1 +1 @@ -{"version":3,"file":"user-status-modal-5133.js?v=94007975b2ae7146c752","mappings":"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","sources":["webpack:///nextcloud/apps/user_status/src/components/ClearAtSelect.vue?vue&type=style&index=0&id=72be27d6&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/CustomMessageInput.vue?vue&type=style&index=0&id=3f943eb8&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/OnlineStatusSelect.vue?vue&type=style&index=0&id=a73330f8&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatus.vue?vue&type=style&index=0&id=0c9447c8&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatusesList.vue?vue&type=style&index=0&id=d615b492&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/PreviousStatus.vue?vue&type=style&index=0&id=bb58290e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/SetStatusModal.vue?vue&type=style&index=0&id=c7245fce&prod&lang=scss&scoped=true","webpack://nextcloud/./apps/user_status/src/components/SetStatusModal.vue?dc19","webpack:///nextcloud/apps/user_status/src/filters/clearAtFilter.js","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatus.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatus.vue","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatus.vue?e2d7","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatus.vue?159c","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatus.vue?74a5","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatusesList.vue","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatusesList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatusesList.vue?e2ca","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatusesList.vue?944d","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatusesList.vue?26ad","webpack:///nextcloud/apps/user_status/src/components/PreviousStatus.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/components/PreviousStatus.vue","webpack://nextcloud/./apps/user_status/src/components/PreviousStatus.vue?98e3","webpack://nextcloud/./apps/user_status/src/components/PreviousStatus.vue?e294","webpack://nextcloud/./apps/user_status/src/components/PreviousStatus.vue?a03f","webpack://nextcloud/./apps/user_status/src/components/CustomMessageInput.vue?d5a9","webpack:///nextcloud/apps/user_status/src/components/CustomMessageInput.vue","webpack:///nextcloud/apps/user_status/src/components/CustomMessageInput.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/user_status/src/components/CustomMessageInput.vue?8b55","webpack://nextcloud/./apps/user_status/src/components/CustomMessageInput.vue?87a5","webpack:///nextcloud/apps/user_status/src/services/clearAtOptionsService.js","webpack:///nextcloud/apps/user_status/src/components/ClearAtSelect.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/components/ClearAtSelect.vue","webpack://nextcloud/./apps/user_status/src/components/ClearAtSelect.vue?47f6","webpack://nextcloud/./apps/user_status/src/components/ClearAtSelect.vue?b1cd","webpack://nextcloud/./apps/user_status/src/components/ClearAtSelect.vue?2c76","webpack:///nextcloud/apps/user_status/src/components/OnlineStatusSelect.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/components/OnlineStatusSelect.vue","webpack://nextcloud/./apps/user_status/src/components/OnlineStatusSelect.vue?9d71","webpack://nextcloud/./apps/user_status/src/components/OnlineStatusSelect.vue?1ac6","webpack://nextcloud/./apps/user_status/src/components/OnlineStatusSelect.vue?12b9","webpack:///nextcloud/apps/user_status/src/components/SetStatusModal.vue","webpack:///nextcloud/apps/user_status/src/components/SetStatusModal.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/services/statusOptionsService.js","webpack://nextcloud/./apps/user_status/src/components/SetStatusModal.vue?78b9","webpack://nextcloud/./apps/user_status/src/components/SetStatusModal.vue?4fb2"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.clear-at-select[data-v-72be27d6]{display:flex;margin-bottom:10px;align-items:center}.clear-at-select__label[data-v-72be27d6]{margin-right:12px}.clear-at-select__select[data-v-72be27d6]{flex-grow:1;min-width:215px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/ClearAtSelect.vue\"],\"names\":[],\"mappings\":\"AACA,kCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,yCACC,iBAAA,CAGD,0CACC,WAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.clear-at-select {\\n\\tdisplay: flex;\\n\\tmargin-bottom: 10px;\\n\\talign-items: center;\\n\\n\\t&__label {\\n\\t\\tmargin-right: 12px;\\n\\t}\\n\\n\\t&__select {\\n\\t\\tflex-grow: 1;\\n\\t\\tmin-width: 215px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.custom-input[data-v-3f943eb8]{display:flex;align-items:flex-end;gap:var(--default-grid-baseline);width:100%}.custom-input__container[data-v-3f943eb8]{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/CustomMessageInput.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,YAAA,CACA,oBAAA,CACA,gCAAA,CACA,UAAA,CAEA,0CACC,UAAA\",\"sourcesContent\":[\"\\n.custom-input {\\n\\tdisplay: flex;\\n\\talign-items: flex-end;\\n\\tgap: var(--default-grid-baseline);\\n\\twidth: 100%;\\n\\n\\t&__container {\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-status-online-select__label[data-v-a73330f8]{position:relative;display:block;margin:8px;padding:8px;padding-left:40px;border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);background-color:var(--color-background-hover);background-position:8px center;background-size:24px}.user-status-online-select__label span[data-v-a73330f8],.user-status-online-select__label[data-v-a73330f8]{cursor:pointer}.user-status-online-select__label span[data-v-a73330f8]{position:absolute;top:calc(50% - 10px);left:10px;display:block;width:24px;height:24px}.user-status-online-select__input:checked+.user-status-online-select__label[data-v-a73330f8]{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}.user-status-online-select__input:focus-visible+.user-status-online-select__label[data-v-a73330f8]{outline:2px solid var(--color-primary-element) !important}.user-status-online-select__subline[data-v-a73330f8]{display:block;color:var(--color-text-lighter)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/OnlineStatusSelect.vue\"],\"names\":[],\"mappings\":\"AAMC,mDACC,iBAAA,CACA,aAAA,CACA,UANc,CAOd,WAPc,CAQd,iBAAA,CACA,6CAAA,CACA,wCAAA,CACA,8CAAA,CACA,8BAAA,CACA,oBAdU,CAgBV,2GAEC,cAAA,CAGD,wDACC,iBAAA,CACA,oBAAA,CACA,SAAA,CACA,aAAA,CACA,UA1BS,CA2BT,WA3BS,CA+BX,6FACC,wCAAA,CACA,iDAAA,CAGD,mGACC,yDAAA,CAGD,qDACC,aAAA,CACA,+BAAA\",\"sourcesContent\":[\"\\n@use 'sass:math';\\n$icon-size: 24px;\\n$label-padding: 8px;\\n\\n.user-status-online-select {\\n\\t&__label {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: block;\\n\\t\\tmargin: $label-padding;\\n\\t\\tpadding: $label-padding;\\n\\t\\tpadding-left: $icon-size + $label-padding * 2;\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tbackground-position: $label-padding center;\\n\\t\\tbackground-size: $icon-size;\\n\\n\\t\\tspan,\\n\\t\\t& {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\n\\t\\tspan {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: calc(50% - 10px);\\n\\t\\t\\tleft: 10px;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\twidth: $icon-size;\\n\\t\\t\\theight: $icon-size;\\n\\t\\t}\\n\\t}\\n\\n\\t&__input:checked + &__label {\\n\\t\\toutline: 2px solid var(--color-main-text);\\n\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background);\\n\\t}\\n\\n\\t&__input:focus-visible + &__label {\\n\\t\\toutline: 2px solid var(--color-primary-element) !important;\\n\\t}\\n\\n\\t&__subline {\\n\\t\\tdisplay: block;\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.predefined-status__label[data-v-0c9447c8]{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status__label--icon[data-v-0c9447c8]{flex-basis:40px;text-align:center}.predefined-status__label--message[data-v-0c9447c8]{font-weight:bold;padding:0 6px}.predefined-status__label--clear-at[data-v-0c9447c8]{color:var(--color-text-maxcontrast)}.predefined-status__label--clear-at[data-v-0c9447c8]::before{content:\" – \"}.predefined-status__input:checked+.predefined-status__label[data-v-0c9447c8],.predefined-status__label[data-v-0c9447c8]:active{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background);border-radius:var(--border-radius-large)}.predefined-status__input:focus-visible+.predefined-status__label[data-v-0c9447c8]{outline:2px solid var(--color-primary-element) !important;border-radius:var(--border-radius-large)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./PredefinedStatus.vue\",\"webpack://./apps/user_status/src/components/PredefinedStatus.vue\"],\"names\":[],\"mappings\":\"AAAA,2CCEC,YACC,CAAA,gBACA,CAAA,0BACA,CAAA,eACA,CAAA,kCACA,CAAA,kBACA,CAAA,eACA,CAAA,iDAEA,eACC,CAAA,iBACA,CAAA,oDAGD,gBACC,CAAA,aACA,CAAA,qDAGD,mCACC,CAAA,6DAEA,aACC,CAAA,+HAKH,wCAEC,CAAA,iDACA,CAAA,wCACA,CAAA,mFAGD,yDACC,CAAA,wCACA\",\"sourcesContent\":[\".predefined-status__label{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status__label--icon{flex-basis:40px;text-align:center}.predefined-status__label--message{font-weight:bold;padding:0 6px}.predefined-status__label--clear-at{color:var(--color-text-maxcontrast)}.predefined-status__label--clear-at::before{content:\\\" – \\\"}.predefined-status__input:checked+.predefined-status__label,.predefined-status__label:active{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background);border-radius:var(--border-radius-large)}.predefined-status__input:focus-visible+.predefined-status__label{outline:2px solid var(--color-primary-element) !important;border-radius:var(--border-radius-large)}\",\"\\n.predefined-status {\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: nowrap;\\n\\t\\tjustify-content: flex-start;\\n\\t\\tflex-basis: 100%;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\talign-items: center;\\n\\t\\tmin-height: 44px;\\n\\n\\t\\t&--icon {\\n\\t\\t\\tflex-basis: 40px;\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\n\\t\\t&--message {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tpadding: 0 6px;\\n\\t\\t}\\n\\n\\t\\t&--clear-at {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tcontent: ' – ';\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__input:checked + &__label,\\n\\t&__label:active {\\n\\t\\toutline: 2px solid var(--color-main-text);\\n\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\n\\t&__input:focus-visible + &__label {\\n\\t\\toutline: 2px solid var(--color-primary-element) !important;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.predefined-statuses-list[data-v-d615b492]{display:flex;flex-direction:column;margin-bottom:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/PredefinedStatusesList.vue\"],\"names\":[],\"mappings\":\"AACA,2CACC,YAAA,CACA,qBAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.predefined-statuses-list {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmargin-bottom: 10px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.predefined-status[data-v-bb58290e]{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status[data-v-bb58290e]:hover,.predefined-status[data-v-bb58290e]:focus{background-color:var(--color-background-hover)}.predefined-status[data-v-bb58290e]:active{background-color:var(--color-background-dark)}.predefined-status__icon[data-v-bb58290e]{flex-basis:40px;text-align:center}.predefined-status__message[data-v-bb58290e]{font-weight:bold;padding:0 6px}.predefined-status__clear-at[data-v-bb58290e]{color:var(--color-text-maxcontrast)}.predefined-status__clear-at[data-v-bb58290e]::before{content:\" – \"}.backup-status__reset-button[data-v-bb58290e]{justify-content:flex-end;display:flex;flex-grow:1}`, \"\",{\"version\":3,\"sources\":[\"webpack://./PreviousStatus.vue\",\"webpack://./apps/user_status/src/components/PreviousStatus.vue\"],\"names\":[],\"mappings\":\"AAAA,oCCCA,YACC,CAAA,gBACA,CAAA,0BACA,CAAA,eACA,CAAA,kCACA,CAAA,kBACA,CAAA,eACA,CAAA,oFAEA,8CAEC,CAAA,2CAGD,6CACC,CAAA,0CAGD,eACC,CAAA,iBACA,CAAA,6CAGD,gBACC,CAAA,aACA,CAAA,8CAGD,mCACC,CAAA,sDAEA,aACC,CAAA,8CAKF,wBACC,CAAA,YACA,CAAA,WACA\",\"sourcesContent\":[\".predefined-status{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status:hover,.predefined-status:focus{background-color:var(--color-background-hover)}.predefined-status:active{background-color:var(--color-background-dark)}.predefined-status__icon{flex-basis:40px;text-align:center}.predefined-status__message{font-weight:bold;padding:0 6px}.predefined-status__clear-at{color:var(--color-text-maxcontrast)}.predefined-status__clear-at::before{content:\\\" – \\\"}.backup-status__reset-button{justify-content:flex-end;display:flex;flex-grow:1}\",\"\\n.predefined-status {\\n\\tdisplay: flex;\\n\\tflex-wrap: nowrap;\\n\\tjustify-content: flex-start;\\n\\tflex-basis: 100%;\\n\\tborder-radius: var(--border-radius);\\n\\talign-items: center;\\n\\tmin-height: 44px;\\n\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t}\\n\\n\\t&:active{\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tflex-basis: 40px;\\n\\t\\ttext-align: center;\\n\\t}\\n\\n\\t&__message {\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: 0 6px;\\n\\t}\\n\\n\\t&__clear-at {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t&::before {\\n\\t\\t\\tcontent: ' – ';\\n\\t\\t}\\n\\t}\\n}\\n.backup-status {\\n\\t&__reset-button {\\n\\t\\tjustify-content: flex-end;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-grow: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.set-status-modal[data-v-c7245fce]{padding:8px 20px 20px 20px}.set-status-modal__header[data-v-c7245fce]{text-align:center;font-weight:bold;margin:15px 0}.set-status-modal__online-status[data-v-c7245fce]{display:grid;grid-template-columns:1fr 1fr}.set-status-modal__custom-input[data-v-c7245fce]{display:flex;width:100%;margin-bottom:10px}.set-status-modal__automation-hint[data-v-c7245fce]{display:flex;width:100%;margin-bottom:10px;color:var(--color-text-maxcontrast)}.set-status-modal .status-buttons[data-v-c7245fce]{display:flex;padding:3px;padding-left:0;gap:3px}@media only screen and (max-width: 500px){.set-status-modal__online-status[data-v-c7245fce]{grid-template-columns:none !important}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/SetStatusModal.vue\"],\"names\":[],\"mappings\":\"AAEA,mCACC,0BAAA,CAEA,2CACC,iBAAA,CACA,gBAAA,CACA,aAAA,CAGD,kDACC,YAAA,CACA,6BAAA,CAGD,iDACC,YAAA,CACA,UAAA,CACA,kBAAA,CAGD,oDACC,YAAA,CACA,UAAA,CACA,kBAAA,CACA,mCAAA,CAGD,mDACC,YAAA,CACA,WAAA,CACA,cAAA,CACA,OAAA,CAIF,0CACC,kDACC,qCAAA,CAAA\",\"sourcesContent\":[\"\\n\\n.set-status-modal {\\n\\tpadding: 8px 20px 20px 20px;\\n\\n\\t&__header {\\n\\t\\ttext-align: center;\\n\\t\\tfont-weight: bold;\\n\\t\\tmargin: 15px 0;\\n\\t}\\n\\n\\t&__online-status {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: 1fr 1fr;\\n\\t}\\n\\n\\t&__custom-input {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 10px;\\n\\t}\\n\\n\\t&__automation-hint {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 10px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t.status-buttons {\\n\\t\\tdisplay: flex;\\n\\t\\tpadding: 3px;\\n\\t\\tpadding-left:0;\\n\\t\\tgap: 3px;\\n\\t}\\n}\\n\\n@media only screen and (max-width: 500px) {\\n\\t.set-status-modal__online-status {\\n\\t\\tgrid-template-columns: none !important;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcModal',{attrs:{\"size\":\"normal\",\"name\":_vm.$t('user_status', 'Set status'),\"set-return-focus\":_vm.setReturnFocus},on:{\"close\":_vm.closeModal}},[_c('div',{staticClass:\"set-status-modal\"},[_c('div',{staticClass:\"set-status-modal__header\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('user_status', 'Online status')))])]),_vm._v(\" \"),_c('div',{staticClass:\"set-status-modal__online-status\",attrs:{\"role\":\"radiogroup\",\"aria-label\":_vm.$t('user_status', 'Online status')}},_vm._l((_vm.statuses),function(status){return _c('OnlineStatusSelect',_vm._b({key:status.type,attrs:{\"checked\":status.type === _vm.statusType},on:{\"select\":_vm.changeStatus}},'OnlineStatusSelect',status,false))}),1),_vm._v(\" \"),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.saveStatus.apply(null, arguments)},\"reset\":_vm.clearStatus}},[_c('div',{staticClass:\"set-status-modal__header\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('user_status', 'Status message')))])]),_vm._v(\" \"),_c('div',{staticClass:\"set-status-modal__custom-input\"},[_c('CustomMessageInput',{ref:\"customMessageInput\",attrs:{\"icon\":_vm.icon,\"message\":_vm.editedMessage},on:{\"change\":_vm.setMessage,\"select-icon\":_vm.setIcon}})],1),_vm._v(\" \"),(_vm.hasBackupStatus)?_c('div',{staticClass:\"set-status-modal__automation-hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.$t('user_status', 'Your status was set automatically'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.hasBackupStatus)?_c('PreviousStatus',{attrs:{\"icon\":_vm.backupIcon,\"message\":_vm.backupMessage},on:{\"select\":_vm.revertBackupFromServer}}):_vm._e(),_vm._v(\" \"),_c('PredefinedStatusesList',{on:{\"select-status\":_vm.selectPredefinedMessage}}),_vm._v(\" \"),_c('ClearAtSelect',{attrs:{\"clear-at\":_vm.clearAt},on:{\"select-clear-at\":_vm.setClearAt}}),_vm._v(\" \"),_c('div',{staticClass:\"status-buttons\"},[_c('NcButton',{attrs:{\"wide\":true,\"type\":\"tertiary\",\"native-type\":\"reset\",\"aria-label\":_vm.$t('user_status', 'Clear status message'),\"disabled\":_vm.isSavingStatus}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t('user_status', 'Clear status message'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"wide\":true,\"type\":\"primary\",\"native-type\":\"submit\",\"aria-label\":_vm.$t('user_status', 'Set status message'),\"disabled\":_vm.isSavingStatus}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t('user_status', 'Set status message'))+\"\\n\\t\\t\\t\\t\")])],1)],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 { translate as t } from '@nextcloud/l10n'\nimport moment from '@nextcloud/moment'\nimport { dateFactory } from '../services/dateService.js'\n\n/**\n * Formats a clearAt object to be human readable\n *\n * @param {object} clearAt The clearAt object\n * @return {string|null}\n */\nconst clearAtFilter = (clearAt) => {\n\tif (clearAt === null) {\n\t\treturn t('user_status', 'Don\\'t clear')\n\t}\n\n\tif (clearAt.type === 'end-of') {\n\t\tswitch (clearAt.time) {\n\t\tcase 'day':\n\t\t\treturn t('user_status', 'Today')\n\t\tcase 'week':\n\t\t\treturn t('user_status', 'This week')\n\n\t\tdefault:\n\t\t\treturn null\n\t\t}\n\t}\n\n\tif (clearAt.type === 'period') {\n\t\treturn moment.duration(clearAt.time * 1000).humanize()\n\t}\n\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\tconst momentNow = moment(dateFactory())\n\t\tconst momentClearAt = moment(clearAt.time, 'X')\n\n\t\treturn moment.duration(momentNow.diff(momentClearAt)).humanize()\n\t}\n\n\treturn null\n}\n\nexport {\n\tclearAtFilter,\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredefinedStatus.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!./PredefinedStatus.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./PredefinedStatus.vue?vue&type=style&index=0&id=0c9447c8&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredefinedStatus.vue?vue&type=style&index=0&id=0c9447c8&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PredefinedStatus.vue?vue&type=template&id=0c9447c8&scoped=true\"\nimport script from \"./PredefinedStatus.vue?vue&type=script&lang=js\"\nexport * from \"./PredefinedStatus.vue?vue&type=script&lang=js\"\nimport style0 from \"./PredefinedStatus.vue?vue&type=style&index=0&id=0c9447c8&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 \"0c9447c8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"predefined-status\"},[_c('input',{staticClass:\"hidden-visually predefined-status__input\",attrs:{\"id\":_vm.id,\"type\":\"radio\",\"name\":\"predefined-status\"},domProps:{\"checked\":_vm.selected},on:{\"change\":_vm.select}}),_vm._v(\" \"),_c('label',{staticClass:\"predefined-status__label\",attrs:{\"for\":_vm.id}},[_c('span',{staticClass:\"predefined-status__label--icon\",attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.icon)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"predefined-status__label--message\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.message)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"predefined-status__label--clear-at\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm._f(\"clearAtFilter\")(_vm.clearAt))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./PredefinedStatusesList.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!./PredefinedStatusesList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredefinedStatusesList.vue?vue&type=style&index=0&id=d615b492&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredefinedStatusesList.vue?vue&type=style&index=0&id=d615b492&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PredefinedStatusesList.vue?vue&type=template&id=d615b492&scoped=true\"\nimport script from \"./PredefinedStatusesList.vue?vue&type=script&lang=js\"\nexport * from \"./PredefinedStatusesList.vue?vue&type=script&lang=js\"\nimport style0 from \"./PredefinedStatusesList.vue?vue&type=style&index=0&id=d615b492&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 \"d615b492\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.statusesHaveLoaded)?_c('ul',{staticClass:\"predefined-statuses-list\",attrs:{\"aria-label\":_vm.t('user_status', 'Predefined statuses')}},_vm._l((_vm.predefinedStatuses),function(status){return _c('PredefinedStatus',{key:status.id,attrs:{\"message-id\":status.id,\"icon\":status.icon,\"message\":status.message,\"clear-at\":status.clearAt,\"selected\":_vm.lastSelected === status.id},on:{\"select\":function($event){return _vm.selectStatus(status)}}})}),1):_c('div',{staticClass:\"predefined-statuses-list\"},[_c('div',{staticClass:\"icon icon-loading-small\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviousStatus.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!./PreviousStatus.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./PreviousStatus.vue?vue&type=style&index=0&id=bb58290e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviousStatus.vue?vue&type=style&index=0&id=bb58290e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PreviousStatus.vue?vue&type=template&id=bb58290e&scoped=true\"\nimport script from \"./PreviousStatus.vue?vue&type=script&lang=js\"\nexport * from \"./PreviousStatus.vue?vue&type=script&lang=js\"\nimport style0 from \"./PreviousStatus.vue?vue&type=style&index=0&id=bb58290e&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 \"bb58290e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"predefined-status backup-status\",attrs:{\"tabindex\":\"0\"},on:{\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.select.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _vm.select.apply(null, arguments)}],\"click\":_vm.select}},[_c('span',{staticClass:\"predefined-status__icon\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.icon)+\"\\n\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"predefined-status__message\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.message)+\"\\n\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"predefined-status__clear-at\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.$t('user_status', 'Previously set'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"backup-status__reset-button\"},[_c('NcButton',{on:{\"click\":_vm.select}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('user_status', 'Reset status'))+\"\\n\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"custom-input\",attrs:{\"role\":\"group\"}},[_c('NcEmojiPicker',{attrs:{\"container\":\".custom-input\"},on:{\"select\":_vm.setIcon}},[_c('NcButton',{attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('user_status', 'Emoji for your status message')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.visibleIcon)+\"\\n\\t\\t\\t\")]},proxy:true}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"custom-input__container\"},[_c('NcTextField',{ref:\"input\",attrs:{\"maxlength\":\"80\",\"disabled\":_vm.disabled,\"placeholder\":_vm.t('user_status', 'What is your status?'),\"value\":_vm.message,\"type\":\"text\",\"label\":_vm.t('user_status', 'What is your status?')},on:{\"input\":_vm.onChange}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./CustomMessageInput.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!./CustomMessageInput.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomMessageInput.vue?vue&type=style&index=0&id=3f943eb8&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomMessageInput.vue?vue&type=style&index=0&id=3f943eb8&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CustomMessageInput.vue?vue&type=template&id=3f943eb8&scoped=true\"\nimport script from \"./CustomMessageInput.vue?vue&type=script&lang=js\"\nexport * from \"./CustomMessageInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./CustomMessageInput.vue?vue&type=style&index=0&id=3f943eb8&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 \"3f943eb8\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { translate as t } from '@nextcloud/l10n'\n\n/**\n * Returns an array\n *\n * @return {object[]}\n */\nconst getAllClearAtOptions = () => {\n\treturn [{\n\t\tlabel: t('user_status', 'Don\\'t clear'),\n\t\tclearAt: null,\n\t}, {\n\t\tlabel: t('user_status', '30 minutes'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 1800,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '1 hour'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 3600,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '4 hours'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 14400,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'Today'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'day',\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'This week'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'week',\n\t\t},\n\t}]\n}\n\nexport {\n\tgetAllClearAtOptions,\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClearAtSelect.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!./ClearAtSelect.vue?vue&type=script&lang=js\"","\n\n\n\n\n\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!./ClearAtSelect.vue?vue&type=style&index=0&id=72be27d6&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClearAtSelect.vue?vue&type=style&index=0&id=72be27d6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ClearAtSelect.vue?vue&type=template&id=72be27d6&scoped=true\"\nimport script from \"./ClearAtSelect.vue?vue&type=script&lang=js\"\nexport * from \"./ClearAtSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./ClearAtSelect.vue?vue&type=style&index=0&id=72be27d6&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 \"72be27d6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"clear-at-select\"},[_c('label',{staticClass:\"clear-at-select__label\",attrs:{\"for\":\"clearStatus\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.$t('user_status', 'Clear status after'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{staticClass:\"clear-at-select__select\",attrs:{\"input-id\":\"clearStatus\",\"options\":_vm.options,\"value\":_vm.option,\"clearable\":false,\"placement\":\"top\"},on:{\"option:selected\":_vm.select}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnlineStatusSelect.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!./OnlineStatusSelect.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./OnlineStatusSelect.vue?vue&type=style&index=0&id=a73330f8&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnlineStatusSelect.vue?vue&type=style&index=0&id=a73330f8&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./OnlineStatusSelect.vue?vue&type=template&id=a73330f8&scoped=true\"\nimport script from \"./OnlineStatusSelect.vue?vue&type=script&lang=js\"\nexport * from \"./OnlineStatusSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./OnlineStatusSelect.vue?vue&type=style&index=0&id=a73330f8&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 \"a73330f8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-status-online-select\"},[_c('input',{staticClass:\"hidden-visually user-status-online-select__input\",attrs:{\"id\":_vm.id,\"type\":\"radio\",\"name\":\"user-status-online\"},domProps:{\"checked\":_vm.checked},on:{\"change\":_vm.onChange}}),_vm._v(\" \"),_c('label',{staticClass:\"user-status-online-select__label\",attrs:{\"for\":_vm.id}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.label)+\"\\n\\t\\t\"),_c('NcUserStatusIcon',{attrs:{\"status\":_vm.type,\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('em',{staticClass:\"user-status-online-select__subline\"},[_vm._v(_vm._s(_vm.subline))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./SetStatusModal.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!./SetStatusModal.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 { translate as t } from '@nextcloud/l10n'\n\n/**\n * Returns a list of all user-definable statuses\n *\n * @return {object[]}\n */\nconst getAllStatusOptions = () => {\n\treturn [{\n\t\ttype: 'online',\n\t\tlabel: t('user_status', 'Online'),\n\t}, {\n\t\ttype: 'away',\n\t\tlabel: t('user_status', 'Away'),\n\t}, {\n\t\ttype: 'dnd',\n\t\tlabel: t('user_status', 'Do not disturb'),\n\t\tsubline: t('user_status', 'Mute all notifications'),\n\t}, {\n\t\ttype: 'invisible',\n\t\tlabel: t('user_status', 'Invisible'),\n\t\tsubline: t('user_status', 'Appear offline'),\n\t}]\n}\n\nexport {\n\tgetAllStatusOptions,\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!./SetStatusModal.vue?vue&type=style&index=0&id=c7245fce&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetStatusModal.vue?vue&type=style&index=0&id=c7245fce&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SetStatusModal.vue?vue&type=template&id=c7245fce&scoped=true\"\nimport script from \"./SetStatusModal.vue?vue&type=script&lang=js\"\nexport * from \"./SetStatusModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./SetStatusModal.vue?vue&type=style&index=0&id=c7245fce&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 \"c7245fce\",\n null\n \n)\n\nexport default component.exports"],"names":["___CSS_LOADER_EXPORT___","push","module","id","clearAtFilter","clearAt","t","type","time","moment","duration","humanize","momentNow","dateFactory","momentClearAt","diff","name","filters","props","messageId","String","required","icon","message","Object","default","selected","Boolean","computed","methods","select","$emit","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","attrs","domProps","on","_v","_s","_f","components","PredefinedStatus","data","lastSelected","mapState","predefinedStatuses","state","userStatus","mapGetters","watch","immediate","handler","created","$store","dispatch","selectStatus","status","statusesHaveLoaded","_l","key","$event","NcButton","indexOf","_k","keyCode","apply","arguments","$t","NcTextField","NcEmojiPicker","disabled","emits","visibleIcon","focus","$refs","input","onChange","event","target","value","setIcon","scopedSlots","_u","fn","proxy","ref","NcSelect","label","option","NcUserStatusIcon","checked","subline","ClearAtSelect","CustomMessageInput","NcModal","OnlineStatusSelect","PredefinedStatusesList","PreviousStatus","mixins","OnlineStatusMixin","inline","editedMessage","isSavingStatus","statuses","hasBackupStatus","backupIcon","backupMessage","userBackupStatus","resetButtonText","setReturnFocus","document","querySelector","undefined","newValue","mounted","closeModal","$nextTick","customMessageInput","setMessage","setClearAt","selectPredefinedMessage","saveStatus","err","showError","console","debug","clearStatus","revertBackupFromServer","_b","statusType","changeStatus","preventDefault","_e"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"user-status-modal-5133.js?v=4b2b2fdbb5db688639dc","mappings":"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","sources":["webpack:///nextcloud/apps/user_status/src/components/ClearAtSelect.vue?vue&type=style&index=0&id=72be27d6&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/CustomMessageInput.vue?vue&type=style&index=0&id=3f943eb8&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/OnlineStatusSelect.vue?vue&type=style&index=0&id=a73330f8&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatus.vue?vue&type=style&index=0&id=0c9447c8&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatusesList.vue?vue&type=style&index=0&id=d615b492&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/PreviousStatus.vue?vue&type=style&index=0&id=bb58290e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/SetStatusModal.vue?vue&type=style&index=0&id=12fa49f2&prod&lang=scss&scoped=true","webpack://nextcloud/./apps/user_status/src/components/SetStatusModal.vue?dc19","webpack:///nextcloud/apps/user_status/src/filters/clearAtFilter.js","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatus.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatus.vue","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatus.vue?e2d7","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatus.vue?159c","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatus.vue?74a5","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatusesList.vue","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatusesList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatusesList.vue?e2ca","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatusesList.vue?944d","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatusesList.vue?26ad","webpack:///nextcloud/apps/user_status/src/components/PreviousStatus.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/components/PreviousStatus.vue","webpack://nextcloud/./apps/user_status/src/components/PreviousStatus.vue?98e3","webpack://nextcloud/./apps/user_status/src/components/PreviousStatus.vue?e294","webpack://nextcloud/./apps/user_status/src/components/PreviousStatus.vue?a03f","webpack://nextcloud/./apps/user_status/src/components/CustomMessageInput.vue?d5a9","webpack:///nextcloud/apps/user_status/src/components/CustomMessageInput.vue","webpack:///nextcloud/apps/user_status/src/components/CustomMessageInput.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/user_status/src/components/CustomMessageInput.vue?8b55","webpack://nextcloud/./apps/user_status/src/components/CustomMessageInput.vue?87a5","webpack:///nextcloud/apps/user_status/src/services/clearAtOptionsService.js","webpack:///nextcloud/apps/user_status/src/components/ClearAtSelect.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/components/ClearAtSelect.vue","webpack://nextcloud/./apps/user_status/src/components/ClearAtSelect.vue?47f6","webpack://nextcloud/./apps/user_status/src/components/ClearAtSelect.vue?b1cd","webpack://nextcloud/./apps/user_status/src/components/ClearAtSelect.vue?2c76","webpack:///nextcloud/apps/user_status/src/components/OnlineStatusSelect.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/components/OnlineStatusSelect.vue","webpack://nextcloud/./apps/user_status/src/components/OnlineStatusSelect.vue?9d71","webpack://nextcloud/./apps/user_status/src/components/OnlineStatusSelect.vue?1ac6","webpack://nextcloud/./apps/user_status/src/components/OnlineStatusSelect.vue?12b9","webpack:///nextcloud/apps/user_status/src/components/SetStatusModal.vue","webpack:///nextcloud/apps/user_status/src/components/SetStatusModal.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/services/statusOptionsService.js","webpack://nextcloud/./apps/user_status/src/components/SetStatusModal.vue?333c","webpack://nextcloud/./apps/user_status/src/components/SetStatusModal.vue?4fb2"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.clear-at-select[data-v-72be27d6]{display:flex;margin-bottom:10px;align-items:center}.clear-at-select__label[data-v-72be27d6]{margin-right:12px}.clear-at-select__select[data-v-72be27d6]{flex-grow:1;min-width:215px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/ClearAtSelect.vue\"],\"names\":[],\"mappings\":\"AACA,kCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,yCACC,iBAAA,CAGD,0CACC,WAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.clear-at-select {\\n\\tdisplay: flex;\\n\\tmargin-bottom: 10px;\\n\\talign-items: center;\\n\\n\\t&__label {\\n\\t\\tmargin-right: 12px;\\n\\t}\\n\\n\\t&__select {\\n\\t\\tflex-grow: 1;\\n\\t\\tmin-width: 215px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.custom-input[data-v-3f943eb8]{display:flex;align-items:flex-end;gap:var(--default-grid-baseline);width:100%}.custom-input__container[data-v-3f943eb8]{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/CustomMessageInput.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,YAAA,CACA,oBAAA,CACA,gCAAA,CACA,UAAA,CAEA,0CACC,UAAA\",\"sourcesContent\":[\"\\n.custom-input {\\n\\tdisplay: flex;\\n\\talign-items: flex-end;\\n\\tgap: var(--default-grid-baseline);\\n\\twidth: 100%;\\n\\n\\t&__container {\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-status-online-select__label[data-v-a73330f8]{position:relative;display:block;margin:8px;padding:8px;padding-left:40px;border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);background-color:var(--color-background-hover);background-position:8px center;background-size:24px}.user-status-online-select__label span[data-v-a73330f8],.user-status-online-select__label[data-v-a73330f8]{cursor:pointer}.user-status-online-select__label span[data-v-a73330f8]{position:absolute;top:calc(50% - 10px);left:10px;display:block;width:24px;height:24px}.user-status-online-select__input:checked+.user-status-online-select__label[data-v-a73330f8]{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}.user-status-online-select__input:focus-visible+.user-status-online-select__label[data-v-a73330f8]{outline:2px solid var(--color-primary-element) !important}.user-status-online-select__subline[data-v-a73330f8]{display:block;color:var(--color-text-lighter)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/OnlineStatusSelect.vue\"],\"names\":[],\"mappings\":\"AAMC,mDACC,iBAAA,CACA,aAAA,CACA,UANc,CAOd,WAPc,CAQd,iBAAA,CACA,6CAAA,CACA,wCAAA,CACA,8CAAA,CACA,8BAAA,CACA,oBAdU,CAgBV,2GAEC,cAAA,CAGD,wDACC,iBAAA,CACA,oBAAA,CACA,SAAA,CACA,aAAA,CACA,UA1BS,CA2BT,WA3BS,CA+BX,6FACC,wCAAA,CACA,iDAAA,CAGD,mGACC,yDAAA,CAGD,qDACC,aAAA,CACA,+BAAA\",\"sourcesContent\":[\"\\n@use 'sass:math';\\n$icon-size: 24px;\\n$label-padding: 8px;\\n\\n.user-status-online-select {\\n\\t&__label {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: block;\\n\\t\\tmargin: $label-padding;\\n\\t\\tpadding: $label-padding;\\n\\t\\tpadding-left: $icon-size + $label-padding * 2;\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tbackground-position: $label-padding center;\\n\\t\\tbackground-size: $icon-size;\\n\\n\\t\\tspan,\\n\\t\\t& {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\n\\t\\tspan {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: calc(50% - 10px);\\n\\t\\t\\tleft: 10px;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\twidth: $icon-size;\\n\\t\\t\\theight: $icon-size;\\n\\t\\t}\\n\\t}\\n\\n\\t&__input:checked + &__label {\\n\\t\\toutline: 2px solid var(--color-main-text);\\n\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background);\\n\\t}\\n\\n\\t&__input:focus-visible + &__label {\\n\\t\\toutline: 2px solid var(--color-primary-element) !important;\\n\\t}\\n\\n\\t&__subline {\\n\\t\\tdisplay: block;\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.predefined-status__label[data-v-0c9447c8]{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status__label--icon[data-v-0c9447c8]{flex-basis:40px;text-align:center}.predefined-status__label--message[data-v-0c9447c8]{font-weight:bold;padding:0 6px}.predefined-status__label--clear-at[data-v-0c9447c8]{color:var(--color-text-maxcontrast)}.predefined-status__label--clear-at[data-v-0c9447c8]::before{content:\" – \"}.predefined-status__input:checked+.predefined-status__label[data-v-0c9447c8],.predefined-status__label[data-v-0c9447c8]:active{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background);border-radius:var(--border-radius-large)}.predefined-status__input:focus-visible+.predefined-status__label[data-v-0c9447c8]{outline:2px solid var(--color-primary-element) !important;border-radius:var(--border-radius-large)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./PredefinedStatus.vue\",\"webpack://./apps/user_status/src/components/PredefinedStatus.vue\"],\"names\":[],\"mappings\":\"AAAA,2CCEC,YACC,CAAA,gBACA,CAAA,0BACA,CAAA,eACA,CAAA,kCACA,CAAA,kBACA,CAAA,eACA,CAAA,iDAEA,eACC,CAAA,iBACA,CAAA,oDAGD,gBACC,CAAA,aACA,CAAA,qDAGD,mCACC,CAAA,6DAEA,aACC,CAAA,+HAKH,wCAEC,CAAA,iDACA,CAAA,wCACA,CAAA,mFAGD,yDACC,CAAA,wCACA\",\"sourcesContent\":[\".predefined-status__label{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status__label--icon{flex-basis:40px;text-align:center}.predefined-status__label--message{font-weight:bold;padding:0 6px}.predefined-status__label--clear-at{color:var(--color-text-maxcontrast)}.predefined-status__label--clear-at::before{content:\\\" – \\\"}.predefined-status__input:checked+.predefined-status__label,.predefined-status__label:active{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background);border-radius:var(--border-radius-large)}.predefined-status__input:focus-visible+.predefined-status__label{outline:2px solid var(--color-primary-element) !important;border-radius:var(--border-radius-large)}\",\"\\n.predefined-status {\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: nowrap;\\n\\t\\tjustify-content: flex-start;\\n\\t\\tflex-basis: 100%;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\talign-items: center;\\n\\t\\tmin-height: 44px;\\n\\n\\t\\t&--icon {\\n\\t\\t\\tflex-basis: 40px;\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\n\\t\\t&--message {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tpadding: 0 6px;\\n\\t\\t}\\n\\n\\t\\t&--clear-at {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tcontent: ' – ';\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__input:checked + &__label,\\n\\t&__label:active {\\n\\t\\toutline: 2px solid var(--color-main-text);\\n\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\n\\t&__input:focus-visible + &__label {\\n\\t\\toutline: 2px solid var(--color-primary-element) !important;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.predefined-statuses-list[data-v-d615b492]{display:flex;flex-direction:column;margin-bottom:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/PredefinedStatusesList.vue\"],\"names\":[],\"mappings\":\"AACA,2CACC,YAAA,CACA,qBAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.predefined-statuses-list {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmargin-bottom: 10px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.predefined-status[data-v-bb58290e]{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status[data-v-bb58290e]:hover,.predefined-status[data-v-bb58290e]:focus{background-color:var(--color-background-hover)}.predefined-status[data-v-bb58290e]:active{background-color:var(--color-background-dark)}.predefined-status__icon[data-v-bb58290e]{flex-basis:40px;text-align:center}.predefined-status__message[data-v-bb58290e]{font-weight:bold;padding:0 6px}.predefined-status__clear-at[data-v-bb58290e]{color:var(--color-text-maxcontrast)}.predefined-status__clear-at[data-v-bb58290e]::before{content:\" – \"}.backup-status__reset-button[data-v-bb58290e]{justify-content:flex-end;display:flex;flex-grow:1}`, \"\",{\"version\":3,\"sources\":[\"webpack://./PreviousStatus.vue\",\"webpack://./apps/user_status/src/components/PreviousStatus.vue\"],\"names\":[],\"mappings\":\"AAAA,oCCCA,YACC,CAAA,gBACA,CAAA,0BACA,CAAA,eACA,CAAA,kCACA,CAAA,kBACA,CAAA,eACA,CAAA,oFAEA,8CAEC,CAAA,2CAGD,6CACC,CAAA,0CAGD,eACC,CAAA,iBACA,CAAA,6CAGD,gBACC,CAAA,aACA,CAAA,8CAGD,mCACC,CAAA,sDAEA,aACC,CAAA,8CAKF,wBACC,CAAA,YACA,CAAA,WACA\",\"sourcesContent\":[\".predefined-status{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status:hover,.predefined-status:focus{background-color:var(--color-background-hover)}.predefined-status:active{background-color:var(--color-background-dark)}.predefined-status__icon{flex-basis:40px;text-align:center}.predefined-status__message{font-weight:bold;padding:0 6px}.predefined-status__clear-at{color:var(--color-text-maxcontrast)}.predefined-status__clear-at::before{content:\\\" – \\\"}.backup-status__reset-button{justify-content:flex-end;display:flex;flex-grow:1}\",\"\\n.predefined-status {\\n\\tdisplay: flex;\\n\\tflex-wrap: nowrap;\\n\\tjustify-content: flex-start;\\n\\tflex-basis: 100%;\\n\\tborder-radius: var(--border-radius);\\n\\talign-items: center;\\n\\tmin-height: 44px;\\n\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t}\\n\\n\\t&:active{\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tflex-basis: 40px;\\n\\t\\ttext-align: center;\\n\\t}\\n\\n\\t&__message {\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: 0 6px;\\n\\t}\\n\\n\\t&__clear-at {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t&::before {\\n\\t\\t\\tcontent: ' – ';\\n\\t\\t}\\n\\t}\\n}\\n.backup-status {\\n\\t&__reset-button {\\n\\t\\tjustify-content: flex-end;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-grow: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.set-status-modal[data-v-12fa49f2]{padding:8px 20px 20px 20px}.set-status-modal__header[data-v-12fa49f2]{text-align:center;font-weight:bold;margin:15px 0}.set-status-modal__online-status[data-v-12fa49f2]{display:grid;grid-template-columns:1fr 1fr}.set-status-modal__custom-input[data-v-12fa49f2]{display:flex;width:100%;margin-bottom:10px}.set-status-modal__automation-hint[data-v-12fa49f2]{display:flex;width:100%;margin-bottom:10px;color:var(--color-text-maxcontrast)}.set-status-modal .status-buttons[data-v-12fa49f2]{display:flex;padding:3px;padding-left:0;gap:3px}@media only screen and (max-width: 500px){.set-status-modal__online-status[data-v-12fa49f2]{grid-template-columns:none !important}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/SetStatusModal.vue\"],\"names\":[],\"mappings\":\"AAEA,mCACC,0BAAA,CAEA,2CACC,iBAAA,CACA,gBAAA,CACA,aAAA,CAGD,kDACC,YAAA,CACA,6BAAA,CAGD,iDACC,YAAA,CACA,UAAA,CACA,kBAAA,CAGD,oDACC,YAAA,CACA,UAAA,CACA,kBAAA,CACA,mCAAA,CAGD,mDACC,YAAA,CACA,WAAA,CACA,cAAA,CACA,OAAA,CAIF,0CACC,kDACC,qCAAA,CAAA\",\"sourcesContent\":[\"\\n\\n.set-status-modal {\\n\\tpadding: 8px 20px 20px 20px;\\n\\n\\t&__header {\\n\\t\\ttext-align: center;\\n\\t\\tfont-weight: bold;\\n\\t\\tmargin: 15px 0;\\n\\t}\\n\\n\\t&__online-status {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: 1fr 1fr;\\n\\t}\\n\\n\\t&__custom-input {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 10px;\\n\\t}\\n\\n\\t&__automation-hint {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 10px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t.status-buttons {\\n\\t\\tdisplay: flex;\\n\\t\\tpadding: 3px;\\n\\t\\tpadding-left:0;\\n\\t\\tgap: 3px;\\n\\t}\\n}\\n\\n@media only screen and (max-width: 500px) {\\n\\t.set-status-modal__online-status {\\n\\t\\tgrid-template-columns: none !important;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcModal',{attrs:{\"size\":\"normal\",\"name\":_vm.$t('user_status', 'Set status'),\"set-return-focus\":_vm.setReturnFocus},on:{\"close\":_vm.closeModal}},[_c('div',{staticClass:\"set-status-modal\"},[_c('div',{staticClass:\"set-status-modal__header\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('user_status', 'Online status')))])]),_vm._v(\" \"),_c('div',{staticClass:\"set-status-modal__online-status\",attrs:{\"role\":\"radiogroup\",\"aria-label\":_vm.$t('user_status', 'Online status')}},_vm._l((_vm.statuses),function(status){return _c('OnlineStatusSelect',_vm._b({key:status.type,attrs:{\"checked\":status.type === _vm.statusType},on:{\"select\":_vm.changeStatus}},'OnlineStatusSelect',status,false))}),1),_vm._v(\" \"),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.saveStatus.apply(null, arguments)},\"reset\":_vm.clearStatus}},[_c('div',{staticClass:\"set-status-modal__header\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('user_status', 'Status message')))])]),_vm._v(\" \"),_c('div',{staticClass:\"set-status-modal__custom-input\"},[_c('CustomMessageInput',{ref:\"customMessageInput\",attrs:{\"icon\":_vm.icon,\"message\":_vm.editedMessage},on:{\"change\":_vm.setMessage,\"select-icon\":_vm.setIcon}})],1),_vm._v(\" \"),(_vm.hasBackupStatus)?_c('div',{staticClass:\"set-status-modal__automation-hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.$t('user_status', 'Your status was set automatically'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.hasBackupStatus)?_c('PreviousStatus',{attrs:{\"icon\":_vm.backupIcon,\"message\":_vm.backupMessage},on:{\"select\":_vm.revertBackupFromServer}}):_vm._e(),_vm._v(\" \"),_c('PredefinedStatusesList',{on:{\"select-status\":_vm.selectPredefinedMessage}}),_vm._v(\" \"),_c('ClearAtSelect',{attrs:{\"clear-at\":_vm.clearAt},on:{\"select-clear-at\":_vm.setClearAt}}),_vm._v(\" \"),_c('div',{staticClass:\"status-buttons\"},[_c('NcButton',{attrs:{\"wide\":true,\"type\":\"tertiary\",\"native-type\":\"reset\",\"aria-label\":_vm.$t('user_status', 'Clear status message'),\"disabled\":_vm.isSavingStatus}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t('user_status', 'Clear status message'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"wide\":true,\"type\":\"primary\",\"native-type\":\"submit\",\"aria-label\":_vm.$t('user_status', 'Set status message'),\"disabled\":_vm.isSavingStatus}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t('user_status', 'Set status message'))+\"\\n\\t\\t\\t\\t\")])],1)],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 { translate as t } from '@nextcloud/l10n'\nimport moment from '@nextcloud/moment'\nimport { dateFactory } from '../services/dateService.js'\n\n/**\n * Formats a clearAt object to be human readable\n *\n * @param {object} clearAt The clearAt object\n * @return {string|null}\n */\nconst clearAtFilter = (clearAt) => {\n\tif (clearAt === null) {\n\t\treturn t('user_status', 'Don\\'t clear')\n\t}\n\n\tif (clearAt.type === 'end-of') {\n\t\tswitch (clearAt.time) {\n\t\tcase 'day':\n\t\t\treturn t('user_status', 'Today')\n\t\tcase 'week':\n\t\t\treturn t('user_status', 'This week')\n\n\t\tdefault:\n\t\t\treturn null\n\t\t}\n\t}\n\n\tif (clearAt.type === 'period') {\n\t\treturn moment.duration(clearAt.time * 1000).humanize()\n\t}\n\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\tconst momentNow = moment(dateFactory())\n\t\tconst momentClearAt = moment(clearAt.time, 'X')\n\n\t\treturn moment.duration(momentNow.diff(momentClearAt)).humanize()\n\t}\n\n\treturn null\n}\n\nexport {\n\tclearAtFilter,\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredefinedStatus.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!./PredefinedStatus.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./PredefinedStatus.vue?vue&type=style&index=0&id=0c9447c8&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredefinedStatus.vue?vue&type=style&index=0&id=0c9447c8&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PredefinedStatus.vue?vue&type=template&id=0c9447c8&scoped=true\"\nimport script from \"./PredefinedStatus.vue?vue&type=script&lang=js\"\nexport * from \"./PredefinedStatus.vue?vue&type=script&lang=js\"\nimport style0 from \"./PredefinedStatus.vue?vue&type=style&index=0&id=0c9447c8&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 \"0c9447c8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"predefined-status\"},[_c('input',{staticClass:\"hidden-visually predefined-status__input\",attrs:{\"id\":_vm.id,\"type\":\"radio\",\"name\":\"predefined-status\"},domProps:{\"checked\":_vm.selected},on:{\"change\":_vm.select}}),_vm._v(\" \"),_c('label',{staticClass:\"predefined-status__label\",attrs:{\"for\":_vm.id}},[_c('span',{staticClass:\"predefined-status__label--icon\",attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.icon)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"predefined-status__label--message\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.message)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"predefined-status__label--clear-at\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm._f(\"clearAtFilter\")(_vm.clearAt))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./PredefinedStatusesList.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!./PredefinedStatusesList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredefinedStatusesList.vue?vue&type=style&index=0&id=d615b492&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredefinedStatusesList.vue?vue&type=style&index=0&id=d615b492&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PredefinedStatusesList.vue?vue&type=template&id=d615b492&scoped=true\"\nimport script from \"./PredefinedStatusesList.vue?vue&type=script&lang=js\"\nexport * from \"./PredefinedStatusesList.vue?vue&type=script&lang=js\"\nimport style0 from \"./PredefinedStatusesList.vue?vue&type=style&index=0&id=d615b492&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 \"d615b492\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.statusesHaveLoaded)?_c('ul',{staticClass:\"predefined-statuses-list\",attrs:{\"aria-label\":_vm.t('user_status', 'Predefined statuses')}},_vm._l((_vm.predefinedStatuses),function(status){return _c('PredefinedStatus',{key:status.id,attrs:{\"message-id\":status.id,\"icon\":status.icon,\"message\":status.message,\"clear-at\":status.clearAt,\"selected\":_vm.lastSelected === status.id},on:{\"select\":function($event){return _vm.selectStatus(status)}}})}),1):_c('div',{staticClass:\"predefined-statuses-list\"},[_c('div',{staticClass:\"icon icon-loading-small\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviousStatus.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!./PreviousStatus.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./PreviousStatus.vue?vue&type=style&index=0&id=bb58290e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviousStatus.vue?vue&type=style&index=0&id=bb58290e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PreviousStatus.vue?vue&type=template&id=bb58290e&scoped=true\"\nimport script from \"./PreviousStatus.vue?vue&type=script&lang=js\"\nexport * from \"./PreviousStatus.vue?vue&type=script&lang=js\"\nimport style0 from \"./PreviousStatus.vue?vue&type=style&index=0&id=bb58290e&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 \"bb58290e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"predefined-status backup-status\",attrs:{\"tabindex\":\"0\"},on:{\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.select.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _vm.select.apply(null, arguments)}],\"click\":_vm.select}},[_c('span',{staticClass:\"predefined-status__icon\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.icon)+\"\\n\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"predefined-status__message\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.message)+\"\\n\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"predefined-status__clear-at\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.$t('user_status', 'Previously set'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"backup-status__reset-button\"},[_c('NcButton',{on:{\"click\":_vm.select}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('user_status', 'Reset status'))+\"\\n\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"custom-input\",attrs:{\"role\":\"group\"}},[_c('NcEmojiPicker',{attrs:{\"container\":\".custom-input\"},on:{\"select\":_vm.setIcon}},[_c('NcButton',{attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('user_status', 'Emoji for your status message')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.visibleIcon)+\"\\n\\t\\t\\t\")]},proxy:true}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"custom-input__container\"},[_c('NcTextField',{ref:\"input\",attrs:{\"maxlength\":\"80\",\"disabled\":_vm.disabled,\"placeholder\":_vm.t('user_status', 'What is your status?'),\"value\":_vm.message,\"type\":\"text\",\"label\":_vm.t('user_status', 'What is your status?')},on:{\"input\":_vm.onChange}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./CustomMessageInput.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!./CustomMessageInput.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomMessageInput.vue?vue&type=style&index=0&id=3f943eb8&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomMessageInput.vue?vue&type=style&index=0&id=3f943eb8&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CustomMessageInput.vue?vue&type=template&id=3f943eb8&scoped=true\"\nimport script from \"./CustomMessageInput.vue?vue&type=script&lang=js\"\nexport * from \"./CustomMessageInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./CustomMessageInput.vue?vue&type=style&index=0&id=3f943eb8&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 \"3f943eb8\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { translate as t } from '@nextcloud/l10n'\n\n/**\n * Returns an array\n *\n * @return {object[]}\n */\nconst getAllClearAtOptions = () => {\n\treturn [{\n\t\tlabel: t('user_status', 'Don\\'t clear'),\n\t\tclearAt: null,\n\t}, {\n\t\tlabel: t('user_status', '30 minutes'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 1800,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '1 hour'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 3600,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '4 hours'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 14400,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'Today'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'day',\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'This week'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'week',\n\t\t},\n\t}]\n}\n\nexport {\n\tgetAllClearAtOptions,\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClearAtSelect.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!./ClearAtSelect.vue?vue&type=script&lang=js\"","\n\n\n\n\n\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!./ClearAtSelect.vue?vue&type=style&index=0&id=72be27d6&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClearAtSelect.vue?vue&type=style&index=0&id=72be27d6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ClearAtSelect.vue?vue&type=template&id=72be27d6&scoped=true\"\nimport script from \"./ClearAtSelect.vue?vue&type=script&lang=js\"\nexport * from \"./ClearAtSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./ClearAtSelect.vue?vue&type=style&index=0&id=72be27d6&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 \"72be27d6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"clear-at-select\"},[_c('label',{staticClass:\"clear-at-select__label\",attrs:{\"for\":\"clearStatus\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.$t('user_status', 'Clear status after'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{staticClass:\"clear-at-select__select\",attrs:{\"input-id\":\"clearStatus\",\"options\":_vm.options,\"value\":_vm.option,\"clearable\":false,\"placement\":\"top\"},on:{\"option:selected\":_vm.select}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnlineStatusSelect.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!./OnlineStatusSelect.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./OnlineStatusSelect.vue?vue&type=style&index=0&id=a73330f8&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnlineStatusSelect.vue?vue&type=style&index=0&id=a73330f8&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./OnlineStatusSelect.vue?vue&type=template&id=a73330f8&scoped=true\"\nimport script from \"./OnlineStatusSelect.vue?vue&type=script&lang=js\"\nexport * from \"./OnlineStatusSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./OnlineStatusSelect.vue?vue&type=style&index=0&id=a73330f8&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 \"a73330f8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-status-online-select\"},[_c('input',{staticClass:\"hidden-visually user-status-online-select__input\",attrs:{\"id\":_vm.id,\"type\":\"radio\",\"name\":\"user-status-online\"},domProps:{\"checked\":_vm.checked},on:{\"change\":_vm.onChange}}),_vm._v(\" \"),_c('label',{staticClass:\"user-status-online-select__label\",attrs:{\"for\":_vm.id}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.label)+\"\\n\\t\\t\"),_c('NcUserStatusIcon',{attrs:{\"status\":_vm.type,\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('em',{staticClass:\"user-status-online-select__subline\"},[_vm._v(_vm._s(_vm.subline))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./SetStatusModal.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!./SetStatusModal.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 { translate as t } from '@nextcloud/l10n'\n\n/**\n * Returns a list of all user-definable statuses\n *\n * @return {object[]}\n */\nconst getAllStatusOptions = () => {\n\treturn [{\n\t\ttype: 'online',\n\t\tlabel: t('user_status', 'Online'),\n\t}, {\n\t\ttype: 'away',\n\t\tlabel: t('user_status', 'Away'),\n\t}, {\n\t\ttype: 'dnd',\n\t\tlabel: t('user_status', 'Do not disturb'),\n\t\tsubline: t('user_status', 'Mute all notifications'),\n\t}, {\n\t\ttype: 'invisible',\n\t\tlabel: t('user_status', 'Invisible'),\n\t\tsubline: t('user_status', 'Appear offline'),\n\t}]\n}\n\nexport {\n\tgetAllStatusOptions,\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!./SetStatusModal.vue?vue&type=style&index=0&id=12fa49f2&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetStatusModal.vue?vue&type=style&index=0&id=12fa49f2&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SetStatusModal.vue?vue&type=template&id=12fa49f2&scoped=true\"\nimport script from \"./SetStatusModal.vue?vue&type=script&lang=js\"\nexport * from \"./SetStatusModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./SetStatusModal.vue?vue&type=style&index=0&id=12fa49f2&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 \"12fa49f2\",\n null\n \n)\n\nexport default component.exports"],"names":["___CSS_LOADER_EXPORT___","push","module","id","clearAtFilter","clearAt","t","type","time","moment","duration","humanize","momentNow","dateFactory","momentClearAt","diff","name","filters","props","messageId","String","required","icon","message","Object","default","selected","Boolean","computed","methods","select","$emit","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","attrs","domProps","on","_v","_s","_f","components","PredefinedStatus","data","lastSelected","mapState","predefinedStatuses","state","userStatus","mapGetters","watch","immediate","handler","created","$store","dispatch","selectStatus","status","statusesHaveLoaded","_l","key","$event","NcButton","indexOf","_k","keyCode","apply","arguments","$t","NcTextField","NcEmojiPicker","disabled","emits","visibleIcon","focus","$refs","input","onChange","event","target","value","setIcon","scopedSlots","_u","fn","proxy","ref","NcSelect","label","option","NcUserStatusIcon","checked","subline","ClearAtSelect","CustomMessageInput","NcModal","OnlineStatusSelect","PredefinedStatusesList","PreviousStatus","mixins","OnlineStatusMixin","inline","editedMessage","predefinedMessageId","isSavingStatus","statuses","hasBackupStatus","backupIcon","backupMessage","userBackupStatus","resetButtonText","setReturnFocus","document","querySelector","undefined","newValue","mounted","closeModal","$nextTick","customMessageInput","setMessage","setClearAt","selectPredefinedMessage","saveStatus","err","showError","console","debug","clearStatus","revertBackupFromServer","_b","statusType","changeStatus","preventDefault","_e"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/user_status-menu.js b/dist/user_status-menu.js index e8fe99b60b6bf..5b531f839acef 100644 --- a/dist/user_status-menu.js +++ b/dist/user_status-menu.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var e,s,a,r={20051:(e,s,a)=>{var r=a(21777),n=a(61338),u=a(85471),o=a(54914),i=a(54332),c=a(1522),d=a(53611),l=a(17334),m=a.n(l),p=a(65043),g=a(63814),f=a(33114),h=a(96763);const v={name:"UserStatus",components:{Fragment:o.F,NcButton:i.A,NcListItem:c.A,NcUserStatusIcon:d.A,SetStatusModal:()=>Promise.all([a.e(4208),a.e(5133)]).then(a.bind(a,70233))},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=m()((()=>{const e=this.isAway;this.isAway=!1,clearTimeout(this.setAwayTimeout),setTimeout(this.setAwayTimeout,12e4),e&&this._backgroundHeartbeat()}),2e3,!0),window.addEventListener("mousemove",this.mouseMoveListener,{capture:!0,passive:!0}),this._backgroundHeartbeat()),(0,n.B1)("user_status:status.updated",this.handleUserStatusUpdated)},beforeDestroy(){window.removeEventListener("mouseMove",this.mouseMoveListener),clearInterval(this.heartbeatInterval),(0,n.al)("user_status:status.updated",this.handleUserStatusUpdated)},methods:{openModal(){this.isModalOpen=!0},closeModal(){this.isModalOpen=!1},async _backgroundHeartbeat(){try{const e=await(async e=>{const t=(0,g.KT)("apps/user_status/api/v1/heartbeat?format=json");return(await p.Ay.put(t,{status:e?"away":"online"})).data.ocs.data})(this.isAway);e?.userId?this.$store.dispatch("setStatusFromHeartbeat",e):await this.$store.dispatch("reFetchStatusFromServer")}catch(e){h.debug("Failed sending heartbeat, got: "+e.response?.status)}},handleUserStatusUpdated(e){OC.getCurrentUser().uid===e.userId&&this.$store.dispatch("setStatusFromObject",{status:e.status,icon:e.icon,message:e.message})}}};var A=a(85072),y=a.n(A),S=a(97825),b=a.n(S),I=a(77659),w=a.n(I),_=a(55056),M=a.n(_),T=a(10540),C=a.n(T),k=a(41113),O=a.n(k),F=a(73111),P={};P.styleTagTransform=O(),P.setAttributes=M(),P.insert=w().bind(null,"head"),P.domAPI=b(),P.insertStyleElement=C(),y()(F.A,P),F.A&&F.A.locals&&F.A.locals;const U=(0,a(14486).A)(v,(function(){var e=this,t=e._self._c;return t("Fragment",[e.inline?t("div",[t("NcButton",{on:{click:function(t){return t.stopPropagation(),e.openModal.apply(null,arguments)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcUserStatusIcon",{staticClass:"user-status-icon",attrs:{status:e.statusType,"aria-hidden":"true"}})]},proxy:!0}])},[e._v("\n\t\t\t"+e._s(e.visibleMessage)+"\n\t\t")])],1):t("NcListItem",{staticClass:"user-status-menu-item",attrs:{compact:"",name:e.visibleMessage},on:{click:function(t){return t.stopPropagation(),e.openModal.apply(null,arguments)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcUserStatusIcon",{staticClass:"user-status-icon",attrs:{status:e.statusType,"aria-hidden":"true"}})]},proxy:!0}],null,!1,2300440294)}),e._v(" "),e.isModalOpen?t("SetStatusModal",{attrs:{inline:e.inline},on:{close:e.closeModal}}):e._e()],1)}),[],!1,null,"4864e961",null).exports;var x=a(95353);const j={state:{predefinedStatuses:[]},mutations:{addPredefinedStatus(e,t){e.predefinedStatuses=[...e.predefinedStatuses,t]}},getters:{statusesHaveLoaded:e=>e.predefinedStatuses.length>0},actions:{async loadAllPredefinedStatuses(e){let{state:t,commit:s}=e;if(t.predefinedStatuses.length>0)return;const a=await(async()=>{const e=(0,g.KT)("apps/user_status/api/v1/predefined_statuses?format=json");return(await p.Ay.get(e)).data.ocs.data})();for(const e of a)s("addPredefinedStatus",e)}}};var $=a(32981),D=a(61913),B=a(19231);const E=e=>{if(null===e)return null;const t=(0,D.R)();if("period"===e.type)return t.setSeconds(t.getSeconds()+e.time),Math.floor(t.getTime()/1e3);if("end-of"===e.type)switch(e.time){case"day":case"week":return Number((0,B.A)(t).endOf(e.time).format("X"))}return"_time"===e.type?e.time:null},H={state:{status:null,statusIsUserDefined:null,message:null,icon:null,clearAt:null,messageIsPredefined:null,messageId:null},mutations:{setStatus(e,t){let{statusType:s}=t;e.status=s,e.statusIsUserDefined=!0},setPredefinedMessage(e,t){let{messageId:s,clearAt:a,message:r,icon:n}=t;e.messageId=s,e.messageIsPredefined=!0,e.message=r,e.icon=n,e.clearAt=a},setCustomMessage(e,t){let{message:s,icon:a,clearAt:r}=t;e.messageId=null,e.messageIsPredefined=!1,e.message=s,e.icon=a,e.clearAt=r},clearMessage(e){e.messageId=null,e.messageIsPredefined=!1,e.message=null,e.icon=null,e.clearAt=null},loadStatusFromServer(e,t){let{status:s,statusIsUserDefined:a,message:r,icon:n,clearAt:u,messageIsPredefined:o,messageId:i}=t;e.status=s,e.message=r,e.icon=n,void 0!==a&&(e.statusIsUserDefined=a),void 0!==u&&(e.clearAt=u),void 0!==o&&(e.messageIsPredefined=o),void 0!==i&&(e.messageId=i)}},getters:{},actions:{async setStatus(e,t){let{commit:s,state:a}=e,{statusType:u}=t;await(async e=>{const t=(0,g.KT)("apps/user_status/api/v1/user_status/status");await p.Ay.put(t,{statusType:e})})(u),s("setStatus",{statusType:u}),(0,n.Ic)("user_status:status.updated",{status:a.status,message:a.message,icon:a.icon,clearAt:a.clearAt,userId:(0,r.HW)()?.uid})},async setStatusFromObject(e,t){let{commit:s,state:a}=e;s("loadStatusFromServer",t)},async setPredefinedMessage(e,t){let{commit:s,rootState:a,state:u}=e,{messageId:o,clearAt:i}=t;const c=E(i);await async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const s=(0,g.KT)("apps/user_status/api/v1/user_status/message/predefined?format=json");await p.Ay.put(s,{messageId:e,clearAt:t})}(o,c);const d=a.predefinedStatuses.predefinedStatuses.find((e=>e.id===o)),{message:l,icon:m}=d;s("setPredefinedMessage",{messageId:o,clearAt:c,message:l,icon:m}),(0,n.Ic)("user_status:status.updated",{status:u.status,message:u.message,icon:u.icon,clearAt:u.clearAt,userId:(0,r.HW)()?.uid})},async setCustomMessage(e,t){let{commit:s,state:a}=e,{message:u,icon:o,clearAt:i}=t;const c=E(i);await async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const a=(0,g.KT)("apps/user_status/api/v1/user_status/message/custom?format=json");await p.Ay.put(a,{message:e,statusIcon:t,clearAt:s})}(u,o,c),s("setCustomMessage",{message:u,icon:o,clearAt:c}),(0,n.Ic)("user_status:status.updated",{status:a.status,message:a.message,icon:a.icon,clearAt:a.clearAt,userId:(0,r.HW)()?.uid})},async clearMessage(e){let{commit:t,state:s}=e;await(async()=>{const e=(0,g.KT)("apps/user_status/api/v1/user_status/message?format=json");await p.Ay.delete(e)})(),t("clearMessage"),(0,n.Ic)("user_status:status.updated",{status:s.status,message:s.message,icon:s.icon,clearAt:s.clearAt,userId:(0,r.HW)()?.uid})},async reFetchStatusFromServer(e){let{commit:t}=e;t("loadStatusFromServer",await(async()=>{const e=(0,g.KT)("apps/user_status/api/v1/user_status");return(await p.Ay.get(e)).data.ocs.data})())},async setStatusFromHeartbeat(e,t){let{commit:s}=e;s("loadStatusFromServer",t)},loadStatusFromInitialState(e){let{commit:t}=e;t("loadStatusFromServer",(0,$.C)("user_status","status"))}}},L={state:{status:null,statusIsUserDefined:null,message:null,icon:null,clearAt:null,messageIsPredefined:null,messageId:null},mutations:{loadBackupStatusFromServer(e,t){let{status:s,statusIsUserDefined:a,message:r,icon:n,clearAt:u,messageIsPredefined:o,messageId:i}=t;e.status=s,e.message=r,e.icon=n,void 0!==a&&(e.statusIsUserDefined=a),void 0!==u&&(e.clearAt=u),void 0!==o&&(e.messageIsPredefined=o),void 0!==i&&(e.messageId=i)}},getters:{},actions:{async fetchBackupFromServer(e){let{commit:t}=e;try{t("loadBackupStatusFromServer",await(async e=>{const t=(0,g.KT)("apps/user_status/api/v1/statuses/{userId}",{userId:"_"+e});return(await p.Ay.get(t)).data.ocs.data})((0,r.HW)()?.uid))}catch(e){}},async revertBackupFromServer(e,t){let{commit:s}=e,{messageId:a}=t;const u=await(async e=>{const t=(0,g.KT)("apps/user_status/api/v1/user_status/revert/{messageId}",{messageId:e});return(await p.Ay.delete(t)).data.ocs.data})(a);u&&(s("loadBackupStatusFromServer",{}),s("loadStatusFromServer",u),(0,n.Ic)("user_status:status.updated",{status:u.status,message:u.message,icon:u.icon,clearAt:u.clearAt,userId:(0,r.HW)()?.uid}))}}};u.Ay.use(x.Ay);const N=new x.il({modules:{predefinedStatuses:j,userStatus:H,userBackupStatus:L},strict:!0});a.nc=(0,r.aV)(),u.Ay.prototype.t=t,u.Ay.prototype.$t=t;const K=()=>{const e=document.getElementById("user_status-menu-entry");new u.Ay({el:e,render:e=>e(U),store:N})};document.getElementById("user_status-menu-entry")?K():(0,n.B1)("core:user-menu:mounted",K),document.addEventListener("DOMContentLoaded",(function(){OCA.Dashboard&&OCA.Dashboard.registerStatus("status",(e=>new(u.Ay.extend(U))({propsData:{inline:!0},store:N}).$mount(e)))}))},33114:(e,t,s)=>{s.d(t,{A:()=>u});var a=s(95353),r=s(85168),n=s(96763);const u={computed:{...(0,a.aH)({statusType:e=>e.userStatus.status,statusIsUserDefined:e=>e.userStatus.statusIsUserDefined,customIcon:e=>e.userStatus.icon,customMessage:e=>e.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 this.$t("user_status","Online");case"away":case"busy":return this.$t("user_status","Away");case"dnd":return this.$t("user_status","Do not disturb");case"invisible":return this.$t("user_status","Invisible");case"offline":return this.$t("user_status","Offline")}return this.$t("user_status","Set status")}},methods:{async changeStatus(e){try{await this.$store.dispatch("setStatus",{statusType:e})}catch(e){(0,r.Qg)(this.$t("user_status","There was an error saving the new status")),n.debug(e)}}}}},61913:(e,t,s)=>{s.d(t,{R:()=>a});const a=()=>new Date},73111:(e,t,s)=>{s.d(t,{A:()=>o});var a=s(71354),r=s.n(a),n=s(76314),u=s.n(n)()(r());u.push([e.id,".user-status-icon[data-v-4864e961]{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 o=u},53611:(e,t,s)=>{s.d(t,{A:()=>a.N});var a=s(3507)}},n={};function u(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={id:e,loaded:!1,exports:{}};return r[e].call(s.exports,s,s.exports,u),s.loaded=!0,s.exports}u.m=r,e=[],u.O=(t,s,a,r)=>{if(!s){var n=1/0;for(d=0;d=r)&&Object.keys(u.O).every((e=>u.O[e](s[i])))?s.splice(i--,1):(o=!1,r0&&e[d-1][2]>r;d--)e[d]=e[d-1];e[d]=[s,a,r]},u.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return u.d(t,{a:t}),t},u.d=(e,t)=>{for(var s in t)u.o(t,s)&&!u.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},u.f={},u.e=e=>Promise.all(Object.keys(u.f).reduce(((t,s)=>(u.f[s](e,t),t)),[])),u.u=e=>(5133===e?"user-status-modal":e)+"-"+e+".js?v="+{4254:"5c2324570f66dff0c8a1",5133:"94007975b2ae7146c752",9480:"ffc85b17def7a3ab31f0"}[e],u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),u.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},a="nextcloud:",u.l=(e,t,r,n)=>{if(s[e])s[e].push(t);else{var o,i;if(void 0!==r)for(var c=document.getElementsByTagName("script"),d=0;d{o.onerror=o.onload=null,clearTimeout(p);var r=s[e];if(delete s[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach((e=>e(a))),t)return t(a)},p=setTimeout(m.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=m.bind(null,o.onerror),o.onload=m.bind(null,o.onload),i&&document.head.appendChild(o)}},u.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),u.j=9953,(()=>{var e;u.g.importScripts&&(e=u.g.location+"");var t=u.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var s=t.getElementsByTagName("script");if(s.length)for(var a=s.length-1;a>-1&&(!e||!/^http(s?):/.test(e));)e=s[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),u.p=e})(),(()=>{u.b=document.baseURI||self.location.href;var e={9953:0};u.f.j=(t,s)=>{var a=u.o(e,t)?e[t]:void 0;if(0!==a)if(a)s.push(a[2]);else{var r=new Promise(((s,r)=>a=e[t]=[s,r]));s.push(a[2]=r);var n=u.p+u.u(t),o=new Error;u.l(n,(s=>{if(u.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var r=s&&("load"===s.type?"missing":s.type),n=s&&s.target&&s.target.src;o.message="Loading chunk "+t+" failed.\n("+r+": "+n+")",o.name="ChunkLoadError",o.type=r,o.request=n,a[1](o)}}),"chunk-"+t,t)}},u.O.j=t=>0===e[t];var t=(t,s)=>{var a,r,n=s[0],o=s[1],i=s[2],c=0;if(n.some((t=>0!==e[t]))){for(a in o)u.o(o,a)&&(u.m[a]=o[a]);if(i)var d=i(u)}for(t&&t(s);cu(20051)));o=u.O(o)})(); -//# sourceMappingURL=user_status-menu.js.map?v=f2a92d425683a294e925 \ No newline at end of file +(()=>{"use strict";var e,s,a,r={20051:(e,s,a)=>{var r=a(21777),n=a(61338),u=a(85471),o=a(54914),i=a(54332),c=a(1522),d=a(53611),l=a(17334),m=a.n(l),p=a(65043),g=a(63814),f=a(33114),h=a(96763);const v={name:"UserStatus",components:{Fragment:o.F,NcButton:i.A,NcListItem:c.A,NcUserStatusIcon:d.A,SetStatusModal:()=>Promise.all([a.e(4208),a.e(5133)]).then(a.bind(a,121))},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=m()((()=>{const e=this.isAway;this.isAway=!1,clearTimeout(this.setAwayTimeout),setTimeout(this.setAwayTimeout,12e4),e&&this._backgroundHeartbeat()}),2e3,!0),window.addEventListener("mousemove",this.mouseMoveListener,{capture:!0,passive:!0}),this._backgroundHeartbeat()),(0,n.B1)("user_status:status.updated",this.handleUserStatusUpdated)},beforeDestroy(){window.removeEventListener("mouseMove",this.mouseMoveListener),clearInterval(this.heartbeatInterval),(0,n.al)("user_status:status.updated",this.handleUserStatusUpdated)},methods:{openModal(){this.isModalOpen=!0},closeModal(){this.isModalOpen=!1},async _backgroundHeartbeat(){try{const e=await(async e=>{const t=(0,g.KT)("apps/user_status/api/v1/heartbeat?format=json");return(await p.Ay.put(t,{status:e?"away":"online"})).data.ocs.data})(this.isAway);e?.userId?this.$store.dispatch("setStatusFromHeartbeat",e):await this.$store.dispatch("reFetchStatusFromServer")}catch(e){h.debug("Failed sending heartbeat, got: "+e.response?.status)}},handleUserStatusUpdated(e){OC.getCurrentUser().uid===e.userId&&this.$store.dispatch("setStatusFromObject",{status:e.status,icon:e.icon,message:e.message})}}};var A=a(85072),y=a.n(A),S=a(97825),b=a.n(S),I=a(77659),w=a.n(I),_=a(55056),M=a.n(_),T=a(10540),C=a.n(T),k=a(41113),O=a.n(k),F=a(73111),P={};P.styleTagTransform=O(),P.setAttributes=M(),P.insert=w().bind(null,"head"),P.domAPI=b(),P.insertStyleElement=C(),y()(F.A,P),F.A&&F.A.locals&&F.A.locals;const U=(0,a(14486).A)(v,(function(){var e=this,t=e._self._c;return t("Fragment",[e.inline?t("div",[t("NcButton",{on:{click:function(t){return t.stopPropagation(),e.openModal.apply(null,arguments)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcUserStatusIcon",{staticClass:"user-status-icon",attrs:{status:e.statusType,"aria-hidden":"true"}})]},proxy:!0}])},[e._v("\n\t\t\t"+e._s(e.visibleMessage)+"\n\t\t")])],1):t("NcListItem",{staticClass:"user-status-menu-item",attrs:{compact:"",name:e.visibleMessage},on:{click:function(t){return t.stopPropagation(),e.openModal.apply(null,arguments)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcUserStatusIcon",{staticClass:"user-status-icon",attrs:{status:e.statusType,"aria-hidden":"true"}})]},proxy:!0}],null,!1,2300440294)}),e._v(" "),e.isModalOpen?t("SetStatusModal",{attrs:{inline:e.inline},on:{close:e.closeModal}}):e._e()],1)}),[],!1,null,"4864e961",null).exports;var x=a(95353);const j={state:{predefinedStatuses:[]},mutations:{addPredefinedStatus(e,t){e.predefinedStatuses=[...e.predefinedStatuses,t]}},getters:{statusesHaveLoaded:e=>e.predefinedStatuses.length>0},actions:{async loadAllPredefinedStatuses(e){let{state:t,commit:s}=e;if(t.predefinedStatuses.length>0)return;const a=await(async()=>{const e=(0,g.KT)("apps/user_status/api/v1/predefined_statuses?format=json");return(await p.Ay.get(e)).data.ocs.data})();for(const e of a)s("addPredefinedStatus",e)}}};var $=a(32981),D=a(61913),B=a(19231);const E=e=>{if(null===e)return null;const t=(0,D.R)();if("period"===e.type)return t.setSeconds(t.getSeconds()+e.time),Math.floor(t.getTime()/1e3);if("end-of"===e.type)switch(e.time){case"day":case"week":return Number((0,B.A)(t).endOf(e.time).format("X"))}return"_time"===e.type?e.time:null},H={state:{status:null,statusIsUserDefined:null,message:null,icon:null,clearAt:null,messageIsPredefined:null,messageId:null},mutations:{setStatus(e,t){let{statusType:s}=t;e.status=s,e.statusIsUserDefined=!0},setPredefinedMessage(e,t){let{messageId:s,clearAt:a,message:r,icon:n}=t;e.messageId=s,e.messageIsPredefined=!0,e.message=r,e.icon=n,e.clearAt=a},setCustomMessage(e,t){let{message:s,icon:a,clearAt:r}=t;e.messageId=null,e.messageIsPredefined=!1,e.message=s,e.icon=a,e.clearAt=r},clearMessage(e){e.messageId=null,e.messageIsPredefined=!1,e.message=null,e.icon=null,e.clearAt=null},loadStatusFromServer(e,t){let{status:s,statusIsUserDefined:a,message:r,icon:n,clearAt:u,messageIsPredefined:o,messageId:i}=t;e.status=s,e.message=r,e.icon=n,void 0!==a&&(e.statusIsUserDefined=a),void 0!==u&&(e.clearAt=u),void 0!==o&&(e.messageIsPredefined=o),void 0!==i&&(e.messageId=i)}},getters:{},actions:{async setStatus(e,t){let{commit:s,state:a}=e,{statusType:u}=t;await(async e=>{const t=(0,g.KT)("apps/user_status/api/v1/user_status/status");await p.Ay.put(t,{statusType:e})})(u),s("setStatus",{statusType:u}),(0,n.Ic)("user_status:status.updated",{status:a.status,message:a.message,icon:a.icon,clearAt:a.clearAt,userId:(0,r.HW)()?.uid})},async setStatusFromObject(e,t){let{commit:s,state:a}=e;s("loadStatusFromServer",t)},async setPredefinedMessage(e,t){let{commit:s,rootState:a,state:u}=e,{messageId:o,clearAt:i}=t;const c=E(i);await async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const s=(0,g.KT)("apps/user_status/api/v1/user_status/message/predefined?format=json");await p.Ay.put(s,{messageId:e,clearAt:t})}(o,c);const d=a.predefinedStatuses.predefinedStatuses.find((e=>e.id===o)),{message:l,icon:m}=d;s("setPredefinedMessage",{messageId:o,clearAt:c,message:l,icon:m}),(0,n.Ic)("user_status:status.updated",{status:u.status,message:u.message,icon:u.icon,clearAt:u.clearAt,userId:(0,r.HW)()?.uid})},async setCustomMessage(e,t){let{commit:s,state:a}=e,{message:u,icon:o,clearAt:i}=t;const c=E(i);await async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const a=(0,g.KT)("apps/user_status/api/v1/user_status/message/custom?format=json");await p.Ay.put(a,{message:e,statusIcon:t,clearAt:s})}(u,o,c),s("setCustomMessage",{message:u,icon:o,clearAt:c}),(0,n.Ic)("user_status:status.updated",{status:a.status,message:a.message,icon:a.icon,clearAt:a.clearAt,userId:(0,r.HW)()?.uid})},async clearMessage(e){let{commit:t,state:s}=e;await(async()=>{const e=(0,g.KT)("apps/user_status/api/v1/user_status/message?format=json");await p.Ay.delete(e)})(),t("clearMessage"),(0,n.Ic)("user_status:status.updated",{status:s.status,message:s.message,icon:s.icon,clearAt:s.clearAt,userId:(0,r.HW)()?.uid})},async reFetchStatusFromServer(e){let{commit:t}=e;t("loadStatusFromServer",await(async()=>{const e=(0,g.KT)("apps/user_status/api/v1/user_status");return(await p.Ay.get(e)).data.ocs.data})())},async setStatusFromHeartbeat(e,t){let{commit:s}=e;s("loadStatusFromServer",t)},loadStatusFromInitialState(e){let{commit:t}=e;t("loadStatusFromServer",(0,$.C)("user_status","status"))}}},L={state:{status:null,statusIsUserDefined:null,message:null,icon:null,clearAt:null,messageIsPredefined:null,messageId:null},mutations:{loadBackupStatusFromServer(e,t){let{status:s,statusIsUserDefined:a,message:r,icon:n,clearAt:u,messageIsPredefined:o,messageId:i}=t;e.status=s,e.message=r,e.icon=n,void 0!==a&&(e.statusIsUserDefined=a),void 0!==u&&(e.clearAt=u),void 0!==o&&(e.messageIsPredefined=o),void 0!==i&&(e.messageId=i)}},getters:{},actions:{async fetchBackupFromServer(e){let{commit:t}=e;try{t("loadBackupStatusFromServer",await(async e=>{const t=(0,g.KT)("apps/user_status/api/v1/statuses/{userId}",{userId:"_"+e});return(await p.Ay.get(t)).data.ocs.data})((0,r.HW)()?.uid))}catch(e){}},async revertBackupFromServer(e,t){let{commit:s}=e,{messageId:a}=t;const u=await(async e=>{const t=(0,g.KT)("apps/user_status/api/v1/user_status/revert/{messageId}",{messageId:e});return(await p.Ay.delete(t)).data.ocs.data})(a);u&&(s("loadBackupStatusFromServer",{}),s("loadStatusFromServer",u),(0,n.Ic)("user_status:status.updated",{status:u.status,message:u.message,icon:u.icon,clearAt:u.clearAt,userId:(0,r.HW)()?.uid}))}}};u.Ay.use(x.Ay);const N=new x.il({modules:{predefinedStatuses:j,userStatus:H,userBackupStatus:L},strict:!0});a.nc=(0,r.aV)(),u.Ay.prototype.t=t,u.Ay.prototype.$t=t;const K=()=>{const e=document.getElementById("user_status-menu-entry");new u.Ay({el:e,render:e=>e(U),store:N})};document.getElementById("user_status-menu-entry")?K():(0,n.B1)("core:user-menu:mounted",K),document.addEventListener("DOMContentLoaded",(function(){OCA.Dashboard&&OCA.Dashboard.registerStatus("status",(e=>new(u.Ay.extend(U))({propsData:{inline:!0},store:N}).$mount(e)))}))},33114:(e,t,s)=>{s.d(t,{A:()=>u});var a=s(95353),r=s(85168),n=s(96763);const u={computed:{...(0,a.aH)({statusType:e=>e.userStatus.status,statusIsUserDefined:e=>e.userStatus.statusIsUserDefined,customIcon:e=>e.userStatus.icon,customMessage:e=>e.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 this.$t("user_status","Online");case"away":case"busy":return this.$t("user_status","Away");case"dnd":return this.$t("user_status","Do not disturb");case"invisible":return this.$t("user_status","Invisible");case"offline":return this.$t("user_status","Offline")}return this.$t("user_status","Set status")}},methods:{async changeStatus(e){try{await this.$store.dispatch("setStatus",{statusType:e})}catch(e){(0,r.Qg)(this.$t("user_status","There was an error saving the new status")),n.debug(e)}}}}},61913:(e,t,s)=>{s.d(t,{R:()=>a});const a=()=>new Date},73111:(e,t,s)=>{s.d(t,{A:()=>o});var a=s(71354),r=s.n(a),n=s(76314),u=s.n(n)()(r());u.push([e.id,".user-status-icon[data-v-4864e961]{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 o=u},53611:(e,t,s)=>{s.d(t,{A:()=>a.N});var a=s(3507)}},n={};function u(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={id:e,loaded:!1,exports:{}};return r[e].call(s.exports,s,s.exports,u),s.loaded=!0,s.exports}u.m=r,e=[],u.O=(t,s,a,r)=>{if(!s){var n=1/0;for(d=0;d=r)&&Object.keys(u.O).every((e=>u.O[e](s[i])))?s.splice(i--,1):(o=!1,r0&&e[d-1][2]>r;d--)e[d]=e[d-1];e[d]=[s,a,r]},u.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return u.d(t,{a:t}),t},u.d=(e,t)=>{for(var s in t)u.o(t,s)&&!u.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},u.f={},u.e=e=>Promise.all(Object.keys(u.f).reduce(((t,s)=>(u.f[s](e,t),t)),[])),u.u=e=>(5133===e?"user-status-modal":e)+"-"+e+".js?v="+{4254:"5c2324570f66dff0c8a1",5133:"4b2b2fdbb5db688639dc",9480:"ffc85b17def7a3ab31f0"}[e],u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),u.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},a="nextcloud:",u.l=(e,t,r,n)=>{if(s[e])s[e].push(t);else{var o,i;if(void 0!==r)for(var c=document.getElementsByTagName("script"),d=0;d{o.onerror=o.onload=null,clearTimeout(p);var r=s[e];if(delete s[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach((e=>e(a))),t)return t(a)},p=setTimeout(m.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=m.bind(null,o.onerror),o.onload=m.bind(null,o.onload),i&&document.head.appendChild(o)}},u.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),u.j=9953,(()=>{var e;u.g.importScripts&&(e=u.g.location+"");var t=u.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var s=t.getElementsByTagName("script");if(s.length)for(var a=s.length-1;a>-1&&(!e||!/^http(s?):/.test(e));)e=s[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),u.p=e})(),(()=>{u.b=document.baseURI||self.location.href;var e={9953:0};u.f.j=(t,s)=>{var a=u.o(e,t)?e[t]:void 0;if(0!==a)if(a)s.push(a[2]);else{var r=new Promise(((s,r)=>a=e[t]=[s,r]));s.push(a[2]=r);var n=u.p+u.u(t),o=new Error;u.l(n,(s=>{if(u.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var r=s&&("load"===s.type?"missing":s.type),n=s&&s.target&&s.target.src;o.message="Loading chunk "+t+" failed.\n("+r+": "+n+")",o.name="ChunkLoadError",o.type=r,o.request=n,a[1](o)}}),"chunk-"+t,t)}},u.O.j=t=>0===e[t];var t=(t,s)=>{var a,r,n=s[0],o=s[1],i=s[2],c=0;if(n.some((t=>0!==e[t]))){for(a in o)u.o(o,a)&&(u.m[a]=o[a]);if(i)var d=i(u)}for(t&&t(s);cu(20051)));o=u.O(o)})(); +//# sourceMappingURL=user_status-menu.js.map?v=a06b986dbb636ca0b951 \ No newline at end of file diff --git a/dist/user_status-menu.js.map b/dist/user_status-menu.js.map index 1d08fdfa6061f..4e7994e0c7c20 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=f2a92d425683a294e925","mappings":"uBAAIA,ECAAC,EACAC,E,mKC+CJ,MChDgL,EDgDhL,CACAC,KAAA,aAEAC,WAAA,CACAC,SAAA,IACAC,SAAA,IACAC,WAAA,IACAC,iBAAA,IACAC,eAAAA,IAAA,0DAEAC,OAAA,CAAAC,EAAAA,GAEAC,MAAA,CAMAC,OAAA,CACAC,KAAAC,QACAC,SAAA,IAIAC,KAAAA,KACA,CACAC,kBAAA,KACAC,QAAA,EACAC,aAAA,EACAC,kBAAA,KACAC,eAAA,OAQAC,OAAAA,GACA,KAAAC,OAAAC,SAAA,8BAEAC,GAAAC,OAAAC,oBAEA,KAAAV,kBAAAW,YAAA,KAAAC,qBAAAC,KAAA,WACA,KAAAT,eAAA,KACA,KAAAH,QAAA,GAGA,KAAAE,kBAAAW,KAAA,KACA,MAAAC,EAAA,KAAAd,OACA,KAAAA,QAAA,EAEAe,aAAA,KAAAZ,gBAGAa,WAAA,KAAAb,eAAA,MAEAW,GACA,KAAAH,sBACA,GACA,QACAM,OAAAC,iBAAA,iBAAAhB,kBAAA,CACAiB,SAAA,EACAC,SAAA,IAGA,KAAAT,yBAEAU,EAAAA,EAAAA,IAAA,kCAAAC,wBACA,EAKAC,aAAAA,GACAN,OAAAO,oBAAA,iBAAAtB,mBACAuB,cAAA,KAAA1B,oBACA2B,EAAAA,EAAAA,IAAA,kCAAAJ,wBACA,EAEAK,QAAA,CAIAC,SAAAA,GACA,KAAA3B,aAAA,CACA,EAIA4B,UAAAA,GACA,KAAA5B,aAAA,CACA,EAQA,0BAAAU,GACA,IACA,MAAAmB,OExIsBC,WACrB,MAAMC,GAAMC,EAAAA,EAAAA,IAAe,iDAI3B,aAHuBC,EAAAA,GAAWC,IAAIH,EAAK,CAC1CF,OAAQ9B,EAAS,OAAS,YAEXF,KAAKsC,IAAItC,IAAI,EFmI9BuC,CAAA,KAAArC,QACA8B,GAAAQ,OACA,KAAAjC,OAAAC,SAAA,yBAAAwB,SAEA,KAAAzB,OAAAC,SAAA,0BAEA,OAAAiC,GACAC,EAAAC,MAAA,kCAAAF,EAAAG,UAAAZ,OACA,CACA,EACAR,uBAAAA,CAAAqB,GACApC,GAAAqC,iBAAAC,MAAAF,EAAAL,QACA,KAAAjC,OAAAC,SAAA,uBACAwB,OAAAa,EAAAb,OACAgB,KAAAH,EAAAG,KACAC,QAAAJ,EAAAI,SAGA,I,uIG7JIC,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,IAAQM,QAAS,IAAQA,OCP1D,SAXgB,E,SAAA,GACd,GCTW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAAGF,EAAI7D,OAA2Z+D,EAAG,MAAM,CAACA,EAAG,WAAW,CAACE,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOC,kBAAyBN,EAAI3B,UAAUkC,MAAM,KAAMC,UAAU,GAAGC,YAAYT,EAAIU,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACV,EAAG,mBAAmB,CAACW,YAAY,mBAAmBC,MAAM,CAAC,OAASd,EAAIe,WAAW,cAAc,UAAU,EAAEC,OAAM,MAAS,CAAChB,EAAIiB,GAAG,WAAWjB,EAAIkB,GAAGlB,EAAImB,gBAAgB,aAAa,GAA/vBjB,EAAG,aAAa,CAACW,YAAY,wBAAwBC,MAAM,CAAC,QAAU,GAAG,KAAOd,EAAImB,gBAAgBf,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOC,kBAAyBN,EAAI3B,UAAUkC,MAAM,KAAMC,UAAU,GAAGC,YAAYT,EAAIU,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACV,EAAG,mBAAmB,CAACW,YAAY,mBAAmBC,MAAM,CAAC,OAASd,EAAIe,WAAW,cAAc,UAAU,EAAEC,OAAM,IAAO,MAAK,EAAM,cAA6XhB,EAAIiB,GAAG,KAAMjB,EAAItD,YAAawD,EAAG,iBAAiB,CAACY,MAAM,CAAC,OAASd,EAAI7D,QAAQiE,GAAG,CAAC,MAAQJ,EAAI1B,cAAc0B,EAAIoB,MAAM,EACz9B,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,Q,eENhC,MCuCA,GAAiBhC,MA7CH,CACbiC,mBAAoB,IA4CGC,UAzCN,CAQjBC,mBAAAA,CAAoBnC,EAAOb,GAC1Ba,EAAMiC,mBAAqB,IAAIjC,EAAMiC,mBAAoB9C,EAC1D,GA+BkCiD,QA5BnB,CACfC,mBAAmBrC,GACXA,EAAMiC,mBAAmBK,OAAS,GA0BCC,QAtB5B,CASf,+BAAMC,CAAyBC,GAAoB,IAAnB,MAAEzC,EAAK,OAAE0C,GAAQD,EAChD,GAAIzC,EAAMiC,mBAAmBK,OAAS,EACrC,OAGD,MAAMK,OD/B2BvD,WAClC,MAAMC,GAAMC,EAAAA,EAAAA,IAAe,2DAG3B,aAFuBC,EAAAA,GAAWqD,IAAIvD,IAEtBlC,KAAKsC,IAAItC,IAAI,EC2BL0F,GACvB,IAAK,MAAM1D,KAAUwD,EACpBD,EAAO,sBAAuBvD,EAEhC,I,qCChCD,MAAM2D,EAA0BC,IAC/B,GAAgB,OAAZA,EACH,OAAO,KAGR,MAAMC,GAAOC,EAAAA,EAAAA,KAEb,GAAqB,WAAjBF,EAAQ/F,KAEX,OADAgG,EAAKE,WAAWF,EAAKG,aAAeJ,EAAQK,MACrCC,KAAKC,MAAMN,EAAKO,UAAY,KAEpC,GAAqB,WAAjBR,EAAQ/F,KACX,OAAQ+F,EAAQK,MAChB,IAAK,MACL,IAAK,OACJ,OAAOI,QAAOC,EAAAA,EAAAA,GAAOT,GAAMU,MAAMX,EAAQK,MAAMO,OAAO,MAMxD,MAAqB,UAAjBZ,EAAQ/F,KACJ+F,EAAQK,KAGT,IAAI,EC6PZ,GAAiBpD,MArRH,CAEbb,OAAQ,KAERyE,oBAAqB,KAErBxD,QAAS,KAETD,KAAM,KAEN4C,QAAS,KAGTc,oBAAqB,KAErBC,UAAW,MAsQY5B,UAnQN,CASjB6B,SAAAA,CAAU/D,EAAKyC,GAAkB,IAAhB,WAAEd,GAAYc,EAC9BzC,EAAMb,OAASwC,EACf3B,EAAM4D,qBAAsB,CAC7B,EAYAI,oBAAAA,CAAqBhE,EAAKiE,GAAyC,IAAvC,UAAEH,EAAS,QAAEf,EAAO,QAAE3C,EAAO,KAAED,GAAM8D,EAChEjE,EAAM8D,UAAYA,EAClB9D,EAAM6D,qBAAsB,EAE5B7D,EAAMI,QAAUA,EAChBJ,EAAMG,KAAOA,EACbH,EAAM+C,QAAUA,CACjB,EAWAmB,gBAAAA,CAAiBlE,EAAKmE,GAA8B,IAA5B,QAAE/D,EAAO,KAAED,EAAI,QAAE4C,GAASoB,EACjDnE,EAAM8D,UAAY,KAClB9D,EAAM6D,qBAAsB,EAE5B7D,EAAMI,QAAUA,EAChBJ,EAAMG,KAAOA,EACbH,EAAM+C,QAAUA,CACjB,EAOAqB,YAAAA,CAAapE,GACZA,EAAM8D,UAAY,KAClB9D,EAAM6D,qBAAsB,EAE5B7D,EAAMI,QAAU,KAChBJ,EAAMG,KAAO,KACbH,EAAM+C,QAAU,IACjB,EAeAsB,oBAAAA,CAAqBrE,EAAKsE,GAA2F,IAAzF,OAAEnF,EAAM,oBAAEyE,EAAmB,QAAExD,EAAO,KAAED,EAAI,QAAE4C,EAAO,oBAAEc,EAAmB,UAAEC,GAAWQ,EAClHtE,EAAMb,OAASA,EACfa,EAAMI,QAAUA,EAChBJ,EAAMG,KAAOA,OAIsB,IAAxByD,IACV5D,EAAM4D,oBAAsBA,QAEN,IAAZb,IACV/C,EAAM+C,QAAUA,QAEkB,IAAxBc,IACV7D,EAAM6D,oBAAsBA,QAEJ,IAAdC,IACV9D,EAAM8D,UAAYA,EAEpB,GAkKkC1B,QA/JnB,CAAC,EA+J2BG,QA7J5B,CAYf,eAAMwB,CAASQ,EAAAC,GAAoC,IAAnC,OAAE9B,EAAM,MAAE1C,GAAOuE,GAAE,WAAE5C,GAAY6C,OC9GhCpF,WACjB,MAAMC,GAAMC,EAAAA,EAAAA,IAAe,oDACrBC,EAAAA,GAAWC,IAAIH,EAAK,CACzBsC,cACC,ED2GKoC,CAAUpC,GAChBe,EAAO,YAAa,CAAEf,gBACtB8C,EAAAA,EAAAA,IAAK,6BAA8B,CAClCtF,OAAQa,EAAMb,OACdiB,QAASJ,EAAMI,QACfD,KAAMH,EAAMG,KACZ4C,QAAS/C,EAAM+C,QACfpD,QAAQM,EAAAA,EAAAA,OAAkBC,KAE5B,EAaA,yBAAMwE,CAAmBC,EAAoBxF,GAAQ,IAA3B,OAAEuD,EAAM,MAAE1C,GAAO2E,EAC1CjC,EAAO,uBAAwBvD,EAChC,EAcA,0BAAM6E,CAAoBY,EAAAC,GAAuD,IAAtD,OAAEnC,EAAM,UAAEoC,EAAS,MAAE9E,GAAO4E,GAAE,UAAEd,EAAS,QAAEf,GAAS8B,EAC9E,MAAME,EAAkBjC,EAAuBC,SCxIpB3D,eAAO0E,GAA8B,IAAnBf,EAAO3B,UAAAkB,OAAA,QAAA0C,IAAA5D,UAAA,GAAAA,UAAA,GAAG,KACxD,MAAM/B,GAAMC,EAAAA,EAAAA,IAAe,4EACrBC,EAAAA,GAAWC,IAAIH,EAAK,CACzByE,YACAf,WAEF,CDoIQiB,CAAqBF,EAAWiB,GACtC,MAAM5F,EAAS2F,EAAU7C,mBAAmBA,mBAAmBgD,MAAM9F,GAAWA,EAAO+F,KAAOpB,KACxF,QAAE1D,EAAO,KAAED,GAAShB,EAE1BuD,EAAO,uBAAwB,CAAEoB,YAAWf,QAASgC,EAAiB3E,UAASD,UAC/EsE,EAAAA,EAAAA,IAAK,6BAA8B,CAClCtF,OAAQa,EAAMb,OACdiB,QAASJ,EAAMI,QACfD,KAAMH,EAAMG,KACZ4C,QAAS/C,EAAM+C,QACfpD,QAAQM,EAAAA,EAAAA,OAAkBC,KAE5B,EAcA,sBAAMgE,CAAgBiB,EAAAC,GAAgD,IAA/C,OAAE1C,EAAM,MAAE1C,GAAOmF,GAAE,QAAE/E,EAAO,KAAED,EAAI,QAAE4C,GAASqC,EACnE,MAAML,EAAkBjC,EAAuBC,SCrJxB3D,eAAOgB,GAA+C,IAAtCiF,EAAUjE,UAAAkB,OAAA,QAAA0C,IAAA5D,UAAA,GAAAA,UAAA,GAAG,KAAM2B,EAAO3B,UAAAkB,OAAA,QAAA0C,IAAA5D,UAAA,GAAAA,UAAA,GAAG,KACrE,MAAM/B,GAAMC,EAAAA,EAAAA,IAAe,wEACrBC,EAAAA,GAAWC,IAAIH,EAAK,CACzBe,UACAiF,aACAtC,WAEF,CDgJQmB,CAAiB9D,EAASD,EAAM4E,GACtCrC,EAAO,mBAAoB,CAAEtC,UAASD,OAAM4C,QAASgC,KACrDN,EAAAA,EAAAA,IAAK,6BAA8B,CAClCtF,OAAQa,EAAMb,OACdiB,QAASJ,EAAMI,QACfD,KAAMH,EAAMG,KACZ4C,QAAS/C,EAAM+C,QACfpD,QAAQM,EAAAA,EAAAA,OAAkBC,KAE5B,EAUA,kBAAMkE,CAAYkB,GAAoB,IAAnB,OAAE5C,EAAM,MAAE1C,GAAOsF,OC5JhBlG,WACpB,MAAMC,GAAMC,EAAAA,EAAAA,IAAe,iEACrBC,EAAAA,GAAWgG,OAAOlG,EAAI,ED2JrB+E,GACN1B,EAAO,iBACP+B,EAAAA,EAAAA,IAAK,6BAA8B,CAClCtF,OAAQa,EAAMb,OACdiB,QAASJ,EAAMI,QACfD,KAAMH,EAAMG,KACZ4C,QAAS/C,EAAM+C,QACfpD,QAAQM,EAAAA,EAAAA,OAAkBC,KAE5B,EASA,6BAAMsF,CAAuBC,GAAa,IAAZ,OAAE/C,GAAQ+C,EAEvC/C,EAAO,4BCvPkBtD,WAC1B,MAAMC,GAAMC,EAAAA,EAAAA,IAAe,uCAG3B,aAFuBC,EAAAA,GAAWqD,IAAIvD,IAEtBlC,KAAKsC,IAAItC,IAAI,EDkPPuI,GAEtB,EAiBA,4BAAMC,CAAsBC,EAAazG,GAAQ,IAApB,OAAEuD,GAAQkD,EACtClD,EAAO,uBAAwBvD,EAChC,EAQA0G,0BAAAA,CAA0BC,GAAa,IAAZ,OAAEpD,GAAQoD,EAEpCpD,EAAO,wBADQqD,EAAAA,EAAAA,GAAU,cAAe,UAEzC,IE9LD,GAAiB/F,MAzFH,CAEbb,OAAQ,KAERyE,oBAAqB,KAErBxD,QAAS,KAETD,KAAM,KAEN4C,QAAS,KAGTc,oBAAqB,KAErBC,UAAW,MA0EY5B,UAvEN,CAcjB8D,0BAAAA,CAA2BhG,EAAKyC,GAA2F,IAAzF,OAAEtD,EAAM,oBAAEyE,EAAmB,QAAExD,EAAO,KAAED,EAAI,QAAE4C,EAAO,oBAAEc,EAAmB,UAAEC,GAAWrB,EACxHzC,EAAMb,OAASA,EACfa,EAAMI,QAAUA,EAChBJ,EAAMG,KAAOA,OAIsB,IAAxByD,IACV5D,EAAM4D,oBAAsBA,QAEN,IAAZb,IACV/C,EAAM+C,QAAUA,QAEkB,IAAxBc,IACV7D,EAAM6D,oBAAsBA,QAEJ,IAAdC,IACV9D,EAAM8D,UAAYA,EAEpB,GAsCkC1B,QAnCnB,CAAC,EAmC2BG,QAjC5B,CAQf,2BAAM0D,CAAqBhC,GAAa,IAAZ,OAAEvB,GAAQuB,EACrC,IAECvB,EAAO,kCDrDgBtD,WACzB,MAAMC,GAAMC,EAAAA,EAAAA,IAAe,4CAA6C,CAAEK,OAAQ,IAAMA,IAGxF,aAFuBJ,EAAAA,GAAWqD,IAAIvD,IAEtBlC,KAAKsC,IAAItC,IAAI,ECgDN+I,EAAkBjG,EAAAA,EAAAA,OAAkBC,KAE1D,CAAE,MAAOiG,GACR,CAEF,EAEA,4BAAMC,CAAsBjC,EAAAG,GAA4B,IAA3B,OAAE5B,GAAQyB,GAAE,UAAEL,GAAWQ,EACrD,MAAMnF,ODQqBC,WAC5B,MAAMC,GAAMC,EAAAA,EAAAA,IAAe,yDAA0D,CAAEwE,cAGvF,aAFuBvE,EAAAA,GAAWgG,OAAOlG,IAEzBlC,KAAKsC,IAAItC,IAAI,ECZPkJ,CAAqBvC,GACtC3E,IACHuD,EAAO,6BAA8B,CAAC,GACtCA,EAAO,uBAAwBvD,IAC/BsF,EAAAA,EAAAA,IAAK,6BAA8B,CAClCtF,OAAQA,EAAOA,OACfiB,QAASjB,EAAOiB,QAChBD,KAAMhB,EAAOgB,KACb4C,QAAS5D,EAAO4D,QAChBpD,QAAQM,EAAAA,EAAAA,OAAkBC,MAG7B,ICvFDoG,EAAAA,GAAIC,IAAIC,EAAAA,IAER,YAAmBC,EAAAA,GAAM,CACxBC,QAAS,CACRzE,mBAAkB,EAClB0E,WAAU,EACVC,iBAAgBA,GAEjBC,QAAQ,ICNTC,EAAAA,IAAoBC,EAAAA,EAAAA,MAEpBT,EAAAA,GAAIU,UAAUC,EAAIA,EAClBX,EAAAA,GAAIU,UAAUE,GAAKD,EAEnB,MAEME,EAAiBA,KACtB,MAAMC,EAAaC,SAASC,eAAe,0BAE3C,IAAIhB,EAAAA,GAAI,CACPiB,GAAIH,EACJI,OAAQC,GAAKA,EAAEC,GACfC,MAAKA,GACJ,EATgBN,SAASC,eAAe,0BAa1CH,KAEAzI,EAAAA,EAAAA,IAAU,yBAA0ByI,GAIrCE,SAAS9I,iBAAiB,oBAAoB,WACxCqJ,IAAIC,WAITD,IAAIC,UAAUC,eAAe,UAAWP,GAEhC,IADWjB,EAAAA,GAAIyB,OAAOL,GACtB,CAAc,CACpBM,UAAW,CACVjL,QAAQ,GAET4K,MAAKA,IACHM,OAAOV,IAEZ,G,wEC3CA,SACCW,SAAU,KACNC,EAAAA,EAAAA,IAAS,CACXxG,WAAY3B,GAASA,EAAM2G,WAAWxH,OACtCyE,oBAAqB5D,GAASA,EAAM2G,WAAW/C,oBAC/CwE,WAAYpI,GAASA,EAAM2G,WAAWxG,KACtCkI,cAAerI,GAASA,EAAM2G,WAAWvG,UAQ1C2B,cAAAA,GACC,GAAIlB,KAAKuH,YAAcvH,KAAKwH,cAC3B,MAAO,GAAGxH,KAAKuH,cAAcvH,KAAKwH,gBAGnC,GAAIxH,KAAKwH,cACR,OAAOxH,KAAKwH,cAGb,GAAIxH,KAAK+C,oBACR,OAAQ/C,KAAKc,YACb,IAAK,SACJ,OAAOd,KAAKqG,GAAG,cAAe,UAE/B,IAAK,OACL,IAAK,OACJ,OAAOrG,KAAKqG,GAAG,cAAe,QAE/B,IAAK,MACJ,OAAOrG,KAAKqG,GAAG,cAAe,kBAE/B,IAAK,YACJ,OAAOrG,KAAKqG,GAAG,cAAe,aAE/B,IAAK,UACJ,OAAOrG,KAAKqG,GAAG,cAAe,WAIhC,OAAOrG,KAAKqG,GAAG,cAAe,aAC/B,GAGDlI,QAAS,CAMR,kBAAMsJ,CAAa3G,GAClB,UACOd,KAAKnD,OAAOC,SAAS,YAAa,CAAEgE,cAC3C,CAAE,MAAO4G,IACRC,EAAAA,EAAAA,IAAU3H,KAAKqG,GAAG,cAAe,6CACjCrH,EAAQC,MAAMyI,EACf,CACD,G,mCC/DF,MAAMtF,EAAcA,IACZ,IAAIwF,I,sECHRC,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAO1D,GAAI,8LAA+L,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mDAAmD,MAAQ,GAAG,SAAW,wEAAwE,eAAiB,CAAC,wOAAwO,WAAa,MAE3pB,S,qDCNI2D,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB/D,IAAjBgE,EACH,OAAOA,EAAaC,QAGrB,IAAIL,EAASC,EAAyBE,GAAY,CACjD7D,GAAI6D,EACJG,QAAQ,EACRD,QAAS,CAAC,GAUX,OANAE,EAAoBJ,GAAUK,KAAKR,EAAOK,QAASL,EAAQA,EAAOK,QAASH,GAG3EF,EAAOM,QAAS,EAGTN,EAAOK,OACf,CAGAH,EAAoBO,EAAIF,EnB5BpBjN,EAAW,GACf4M,EAAoBQ,EAAI,CAACC,EAAQC,EAAUhI,EAAIiI,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAI1N,EAASoG,OAAQsH,IAAK,CACrCJ,EAAWtN,EAAS0N,GAAG,GACvBpI,EAAKtF,EAAS0N,GAAG,GACjBH,EAAWvN,EAAS0N,GAAG,GAE3B,IAJA,IAGIC,GAAY,EACPC,EAAI,EAAGA,EAAIN,EAASlH,OAAQwH,MACpB,EAAXL,GAAsBC,GAAgBD,IAAaM,OAAOC,KAAKlB,EAAoBQ,GAAGW,OAAO1I,GAASuH,EAAoBQ,EAAE/H,GAAKiI,EAASM,MAC9IN,EAASU,OAAOJ,IAAK,IAErBD,GAAY,EACTJ,EAAWC,IAAcA,EAAeD,IAG7C,GAAGI,EAAW,CACb3N,EAASgO,OAAON,IAAK,GACrB,IAAIO,EAAI3I,SACEwD,IAANmF,IAAiBZ,EAASY,EAC/B,CACD,CACA,OAAOZ,CArBP,CAJCE,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAI1N,EAASoG,OAAQsH,EAAI,GAAK1N,EAAS0N,EAAI,GAAG,GAAKH,EAAUG,IAAK1N,EAAS0N,GAAK1N,EAAS0N,EAAI,GACrG1N,EAAS0N,GAAK,CAACJ,EAAUhI,EAAIiI,EAuBjB,EoB3BdX,EAAoBsB,EAAKxB,IACxB,IAAIyB,EAASzB,GAAUA,EAAO0B,WAC7B,IAAO1B,EAAiB,QACxB,IAAM,EAEP,OADAE,EAAoByB,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdvB,EAAoByB,EAAI,CAACtB,EAASwB,KACjC,IAAI,IAAIlJ,KAAOkJ,EACX3B,EAAoB4B,EAAED,EAAYlJ,KAASuH,EAAoB4B,EAAEzB,EAAS1H,IAC5EwI,OAAOY,eAAe1B,EAAS1H,EAAK,CAAEqJ,YAAY,EAAMhI,IAAK6H,EAAWlJ,IAE1E,ECNDuH,EAAoB+B,EAAI,CAAC,EAGzB/B,EAAoB3C,EAAK2E,GACjBC,QAAQC,IAAIjB,OAAOC,KAAKlB,EAAoB+B,GAAGI,QAAO,CAACC,EAAU3J,KACvEuH,EAAoB+B,EAAEtJ,GAAKuJ,EAASI,GAC7BA,IACL,KCNJpC,EAAoBqC,EAAKL,IAEC,OAAZA,EAAmB,oBAAsBA,GAAW,IAAMA,EAAU,SAAW,CAAC,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,wBAAwBA,GCHzLhC,EAAoBsC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOxK,MAAQ,IAAIyK,SAAS,cAAb,EAChB,CAAE,MAAOnF,GACR,GAAsB,iBAAX7H,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBwK,EAAoB4B,EAAI,CAACa,EAAKC,IAAUzB,OAAO/C,UAAUyE,eAAerC,KAAKmC,EAAKC,GxBA9ErP,EAAa,CAAC,EACdC,EAAoB,aAExB0M,EAAoB4C,EAAI,CAACrM,EAAKsM,EAAMpK,EAAKuJ,KACxC,GAAG3O,EAAWkD,GAAQlD,EAAWkD,GAAKsJ,KAAKgD,OAA3C,CACA,IAAIC,EAAQC,EACZ,QAAW7G,IAARzD,EAEF,IADA,IAAIuK,EAAUzE,SAAS0E,qBAAqB,UACpCnC,EAAI,EAAGA,EAAIkC,EAAQxJ,OAAQsH,IAAK,CACvC,IAAIoC,EAAIF,EAAQlC,GAChB,GAAGoC,EAAEC,aAAa,QAAU5M,GAAO2M,EAAEC,aAAa,iBAAmB7P,EAAoBmF,EAAK,CAAEqK,EAASI,EAAG,KAAO,CACpH,CAEGJ,IACHC,GAAa,GACbD,EAASvE,SAAS6E,cAAc,WAEzBC,QAAU,QACjBP,EAAOQ,QAAU,IACbtD,EAAoBuD,IACvBT,EAAOU,aAAa,QAASxD,EAAoBuD,IAElDT,EAAOU,aAAa,eAAgBlQ,EAAoBmF,GAExDqK,EAAOW,IAAMlN,GAEdlD,EAAWkD,GAAO,CAACsM,GACnB,IAAIa,EAAmB,CAACC,EAAMC,KAE7Bd,EAAOe,QAAUf,EAAOgB,OAAS,KACjCxO,aAAagO,GACb,IAAIS,EAAU1Q,EAAWkD,GAIzB,UAHOlD,EAAWkD,GAClBuM,EAAOkB,YAAclB,EAAOkB,WAAWC,YAAYnB,GACnDiB,GAAWA,EAAQG,SAASxL,GAAQA,EAAGkL,KACpCD,EAAM,OAAOA,EAAKC,EAAM,EAExBN,EAAU/N,WAAWmO,EAAiBvO,KAAK,UAAM+G,EAAW,CAAEhI,KAAM,UAAWiQ,OAAQrB,IAAW,MACtGA,EAAOe,QAAUH,EAAiBvO,KAAK,KAAM2N,EAAOe,SACpDf,EAAOgB,OAASJ,EAAiBvO,KAAK,KAAM2N,EAAOgB,QACnDf,GAAcxE,SAAS6F,KAAKC,YAAYvB,EApCkB,CAoCX,EyBvChD9C,EAAoBqB,EAAKlB,IACH,oBAAXmE,QAA0BA,OAAOC,aAC1CtD,OAAOY,eAAe1B,EAASmE,OAAOC,YAAa,CAAEC,MAAO,WAE7DvD,OAAOY,eAAe1B,EAAS,aAAc,CAAEqE,OAAO,GAAO,ECL9DxE,EAAoByE,IAAO3E,IAC1BA,EAAO4E,MAAQ,GACV5E,EAAO6E,WAAU7E,EAAO6E,SAAW,IACjC7E,GCHRE,EAAoBgB,EAAI,K,MCAxB,IAAI4D,EACA5E,EAAoBsC,EAAEuC,gBAAeD,EAAY5E,EAAoBsC,EAAEwC,SAAW,IACtF,IAAIvG,EAAWyB,EAAoBsC,EAAE/D,SACrC,IAAKqG,GAAarG,IACbA,EAASwG,gBACZH,EAAYrG,EAASwG,cAActB,MAC/BmB,GAAW,CACf,IAAI5B,EAAUzE,EAAS0E,qBAAqB,UAC5C,GAAGD,EAAQxJ,OAEV,IADA,IAAIsH,EAAIkC,EAAQxJ,OAAS,EAClBsH,GAAK,KAAO8D,IAAc,aAAaI,KAAKJ,KAAaA,EAAY5B,EAAQlC,KAAK2C,GAE3F,CAID,IAAKmB,EAAW,MAAM,IAAIK,MAAM,yDAChCL,EAAYA,EAAUM,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KACpFlF,EAAoBmF,EAAIP,C,WClBxB5E,EAAoBoF,EAAI7G,SAAS8G,SAAWC,KAAKR,SAASS,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAGPxF,EAAoB+B,EAAEf,EAAI,CAACgB,EAASI,KAElC,IAAIqD,EAAqBzF,EAAoB4B,EAAE4D,EAAiBxD,GAAWwD,EAAgBxD,QAAW9F,EACtG,GAA0B,IAAvBuJ,EAGF,GAAGA,EACFrD,EAASvC,KAAK4F,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIzD,SAAQ,CAAC0D,EAASC,IAAYH,EAAqBD,EAAgBxD,GAAW,CAAC2D,EAASC,KAC1GxD,EAASvC,KAAK4F,EAAmB,GAAKC,GAGtC,IAAInP,EAAMyJ,EAAoBmF,EAAInF,EAAoBqC,EAAEL,GAEpDlL,EAAQ,IAAImO,MAgBhBjF,EAAoB4C,EAAErM,GAfFqN,IACnB,GAAG5D,EAAoB4B,EAAE4D,EAAiBxD,KAEf,KAD1ByD,EAAqBD,EAAgBxD,MACRwD,EAAgBxD,QAAW9F,GACrDuJ,GAAoB,CACtB,IAAII,EAAYjC,IAAyB,SAAfA,EAAM1P,KAAkB,UAAY0P,EAAM1P,MAChE4R,EAAUlC,GAASA,EAAMO,QAAUP,EAAMO,OAAOV,IACpD3M,EAAMQ,QAAU,iBAAmB0K,EAAU,cAAgB6D,EAAY,KAAOC,EAAU,IAC1FhP,EAAMvD,KAAO,iBACbuD,EAAM5C,KAAO2R,EACb/O,EAAMiP,QAAUD,EAChBL,EAAmB,GAAG3O,EACvB,CACD,GAEwC,SAAWkL,EAASA,EAE/D,CACD,EAWFhC,EAAoBQ,EAAEQ,EAAKgB,GAA0C,IAA7BwD,EAAgBxD,GAGxD,IAAIgE,EAAuB,CAACC,EAA4B5R,KACvD,IAKI4L,EAAU+B,EALVtB,EAAWrM,EAAK,GAChB6R,EAAc7R,EAAK,GACnB8R,EAAU9R,EAAK,GAGIyM,EAAI,EAC3B,GAAGJ,EAAS0F,MAAMhK,GAAgC,IAAxBoJ,EAAgBpJ,KAAa,CACtD,IAAI6D,KAAYiG,EACZlG,EAAoB4B,EAAEsE,EAAajG,KACrCD,EAAoBO,EAAEN,GAAYiG,EAAYjG,IAGhD,GAAGkG,EAAS,IAAI1F,EAAS0F,EAAQnG,EAClC,CAEA,IADGiG,GAA4BA,EAA2B5R,GACrDyM,EAAIJ,EAASlH,OAAQsH,IACzBkB,EAAUtB,EAASI,GAChBd,EAAoB4B,EAAE4D,EAAiBxD,IAAYwD,EAAgBxD,IACrEwD,EAAgBxD,GAAS,KAE1BwD,EAAgBxD,GAAW,EAE5B,OAAOhC,EAAoBQ,EAAEC,EAAO,EAGjC4F,EAAqBf,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1Fe,EAAmBnC,QAAQ8B,EAAqB7Q,KAAK,KAAM,IAC3DkR,EAAmBxG,KAAOmG,EAAqB7Q,KAAK,KAAMkR,EAAmBxG,KAAK1K,KAAKkR,G,KCvFvFrG,EAAoBuD,QAAKrH,ECGzB,IAAIoK,EAAsBtG,EAAoBQ,OAAEtE,EAAW,CAAC,OAAO,IAAO8D,EAAoB,SAC9FsG,EAAsBtG,EAAoBQ,EAAE8F,E","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","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?e463","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?d74a","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?e2b3","webpack:///nextcloud/apps/user_status/src/services/predefinedStatusService.js","webpack:///nextcloud/apps/user_status/src/store/predefinedStatuses.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/services/statusService.js","webpack:///nextcloud/apps/user_status/src/store/userBackupStatus.js","webpack:///nextcloud/apps/user_status/src/store/index.js","webpack:///nextcloud/apps/user_status/src/menu.js","webpack:///nextcloud/apps/user_status/src/mixins/OnlineStatusMixin.js","webpack:///nextcloud/apps/user_status/src/services/dateService.js","webpack:///nextcloud/apps/user_status/src/UserStatus.vue?vue&type=style&index=0&id=4864e961&prod&lang=scss&scoped=true","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\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\tscript.timeout = 120;\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};","\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 */\nconst sendHeartbeat = async (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=4864e961&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserStatus.vue?vue&type=style&index=0&id=4864e961&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=4864e961&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=4864e961&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 \"4864e961\",\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 HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Fetches all predefined statuses from the server\n *\n * @return {Promise}\n */\nconst fetchAllPredefinedStatuses = async () => {\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 { 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 {\n\tdateFactory,\n} from './dateService.js'\nimport moment from '@nextcloud/moment'\n\n/**\n * Calculates the actual clearAt timestamp\n *\n * @param {object | null} clearAt The clear-at config\n * @return {number | null}\n */\nconst 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\tcase 'day':\n\t\tcase 'week':\n\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 {\n\tfetchCurrentStatus,\n\tsetStatus,\n\tsetPredefinedMessage,\n\tsetCustomMessage,\n\tclearMessage,\n} from '../services/statusService.js'\nimport { loadState } from '@nextcloud/initial-state'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getTimestampForClearAt } from '../services/clearAtService.js'\nimport { emit } from '@nextcloud/event-bus'\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, state }, 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 HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Fetches the current user-status\n *\n * @return {Promise}\n */\nconst fetchCurrentStatus = async () => {\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\n * @return {Promise}\n */\nconst fetchBackupStatus = async (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 */\nconst setStatus = async (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 */\nconst setPredefinedMessage = async (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 */\nconst setCustomMessage = async (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 */\nconst clearMessage = async () => {\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\n * @return {Promise}\n */\nconst revertToBackupStatus = async (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\tfetchCurrentStatus,\n\tfetchBackupStatus,\n\tsetStatus,\n\tsetCustomMessage,\n\tsetPredefinedMessage,\n\tclearMessage,\n\trevertToBackupStatus,\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tfetchBackupStatus,\n\trevertToBackupStatus,\n} from '../services/statusService.js'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { emit } from '@nextcloud/event-bus'\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 (e) {\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 Vue from 'vue'\nimport Vuex, { Store } from 'vuex'\nimport predefinedStatuses from './predefinedStatuses.js'\nimport userStatus from './userStatus.js'\nimport userBackupStatus from './userBackupStatus.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'\n\nimport UserStatus from './UserStatus.vue'\nimport store from './store/index.js'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\nVue.prototype.t = t\nVue.prototype.$t = t\n\nconst mountPoint = document.getElementById('user_status-menu-entry')\n\nconst mountMenuEntry = () => {\n\tconst mountPoint = document.getElementById('user_status-menu-entry')\n\t// eslint-disable-next-line no-new\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 * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { mapState } from 'vuex'\nimport { showError } from '@nextcloud/dialogs'\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\tcase 'online':\n\t\t\t\t\treturn this.$t('user_status', 'Online')\n\n\t\t\t\tcase 'away':\n\t\t\t\tcase 'busy':\n\t\t\t\t\treturn this.$t('user_status', 'Away')\n\n\t\t\t\tcase 'dnd':\n\t\t\t\t\treturn this.$t('user_status', 'Do not disturb')\n\n\t\t\t\tcase 'invisible':\n\t\t\t\t\treturn this.$t('user_status', 'Invisible')\n\n\t\t\t\tcase 'offline':\n\t\t\t\t\treturn this.$t('user_status', 'Offline')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.$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(this.$t('user_status', 'There was an error saving the new status'))\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst dateFactory = () => {\n\treturn new Date()\n}\n\nexport {\n\tdateFactory,\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-status-icon[data-v-4864e961]{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","// 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=\" + {\"4254\":\"5c2324570f66dff0c8a1\",\"5133\":\"94007975b2ae7146c752\",\"9480\":\"ffc85b17def7a3ab31f0\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 9953;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\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(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\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 = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(20051)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","name","components","Fragment","NcButton","NcListItem","NcUserStatusIcon","SetStatusModal","mixins","OnlineStatusMixin","props","inline","type","Boolean","default","data","heartbeatInterval","isAway","isModalOpen","mouseMoveListener","setAwayTimeout","mounted","$store","dispatch","OC","config","session_keepalive","setInterval","_backgroundHeartbeat","bind","debounce","wasAway","clearTimeout","setTimeout","window","addEventListener","capture","passive","subscribe","handleUserStatusUpdated","beforeDestroy","removeEventListener","clearInterval","unsubscribe","methods","openModal","closeModal","status","async","url","generateOcsUrl","HttpClient","put","ocs","sendHeartbeat","userId","error","console","debug","response","state","getCurrentUser","uid","icon","message","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","on","$event","stopPropagation","apply","arguments","scopedSlots","_u","key","fn","staticClass","attrs","statusType","proxy","_v","_s","visibleMessage","_e","predefinedStatuses","mutations","addPredefinedStatus","getters","statusesHaveLoaded","length","actions","loadAllPredefinedStatuses","_ref","commit","statuses","get","fetchAllPredefinedStatuses","getTimestampForClearAt","clearAt","date","dateFactory","setSeconds","getSeconds","time","Math","floor","getTime","Number","moment","endOf","format","statusIsUserDefined","messageIsPredefined","messageId","setStatus","setPredefinedMessage","_ref2","setCustomMessage","_ref3","clearMessage","loadStatusFromServer","_ref4","_ref5","_ref6","emit","setStatusFromObject","_ref7","_ref8","_ref9","rootState","resolvedClearAt","undefined","find","id","_ref10","_ref11","statusIcon","_ref12","delete","reFetchStatusFromServer","_ref13","fetchCurrentStatus","setStatusFromHeartbeat","_ref14","loadStatusFromInitialState","_ref15","loadState","loadBackupStatusFromServer","fetchBackupFromServer","fetchBackupStatus","e","revertBackupFromServer","revertToBackupStatus","Vue","use","Vuex","Store","modules","userStatus","userBackupStatus","strict","__webpack_nonce__","getCSPNonce","prototype","t","$t","mountMenuEntry","mountPoint","document","getElementById","el","render","h","UserStatus","store","OCA","Dashboard","registerStatus","extend","propsData","$mount","computed","mapState","customIcon","customMessage","changeStatus","err","showError","Date","___CSS_LOADER_EXPORT___","push","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","doneFns","parentNode","removeChild","forEach","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","importScripts","location","currentScript","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"user_status-menu.js?v=a06b986dbb636ca0b951","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","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?e463","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?d74a","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?e2b3","webpack:///nextcloud/apps/user_status/src/services/predefinedStatusService.js","webpack:///nextcloud/apps/user_status/src/store/predefinedStatuses.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/services/statusService.js","webpack:///nextcloud/apps/user_status/src/store/userBackupStatus.js","webpack:///nextcloud/apps/user_status/src/store/index.js","webpack:///nextcloud/apps/user_status/src/menu.js","webpack:///nextcloud/apps/user_status/src/mixins/OnlineStatusMixin.js","webpack:///nextcloud/apps/user_status/src/services/dateService.js","webpack:///nextcloud/apps/user_status/src/UserStatus.vue?vue&type=style&index=0&id=4864e961&prod&lang=scss&scoped=true","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\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\tscript.timeout = 120;\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};","\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 */\nconst sendHeartbeat = async (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=4864e961&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserStatus.vue?vue&type=style&index=0&id=4864e961&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=4864e961&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=4864e961&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 \"4864e961\",\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 HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Fetches all predefined statuses from the server\n *\n * @return {Promise}\n */\nconst fetchAllPredefinedStatuses = async () => {\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 { 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 {\n\tdateFactory,\n} from './dateService.js'\nimport moment from '@nextcloud/moment'\n\n/**\n * Calculates the actual clearAt timestamp\n *\n * @param {object | null} clearAt The clear-at config\n * @return {number | null}\n */\nconst 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\tcase 'day':\n\t\tcase 'week':\n\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 {\n\tfetchCurrentStatus,\n\tsetStatus,\n\tsetPredefinedMessage,\n\tsetCustomMessage,\n\tclearMessage,\n} from '../services/statusService.js'\nimport { loadState } from '@nextcloud/initial-state'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getTimestampForClearAt } from '../services/clearAtService.js'\nimport { emit } from '@nextcloud/event-bus'\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, state }, 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 HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Fetches the current user-status\n *\n * @return {Promise}\n */\nconst fetchCurrentStatus = async () => {\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\n * @return {Promise}\n */\nconst fetchBackupStatus = async (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 */\nconst setStatus = async (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 */\nconst setPredefinedMessage = async (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 */\nconst setCustomMessage = async (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 */\nconst clearMessage = async () => {\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\n * @return {Promise}\n */\nconst revertToBackupStatus = async (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\tfetchCurrentStatus,\n\tfetchBackupStatus,\n\tsetStatus,\n\tsetCustomMessage,\n\tsetPredefinedMessage,\n\tclearMessage,\n\trevertToBackupStatus,\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tfetchBackupStatus,\n\trevertToBackupStatus,\n} from '../services/statusService.js'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { emit } from '@nextcloud/event-bus'\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 (e) {\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 Vue from 'vue'\nimport Vuex, { Store } from 'vuex'\nimport predefinedStatuses from './predefinedStatuses.js'\nimport userStatus from './userStatus.js'\nimport userBackupStatus from './userBackupStatus.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'\n\nimport UserStatus from './UserStatus.vue'\nimport store from './store/index.js'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\nVue.prototype.t = t\nVue.prototype.$t = t\n\nconst mountPoint = document.getElementById('user_status-menu-entry')\n\nconst mountMenuEntry = () => {\n\tconst mountPoint = document.getElementById('user_status-menu-entry')\n\t// eslint-disable-next-line no-new\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 * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { mapState } from 'vuex'\nimport { showError } from '@nextcloud/dialogs'\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\tcase 'online':\n\t\t\t\t\treturn this.$t('user_status', 'Online')\n\n\t\t\t\tcase 'away':\n\t\t\t\tcase 'busy':\n\t\t\t\t\treturn this.$t('user_status', 'Away')\n\n\t\t\t\tcase 'dnd':\n\t\t\t\t\treturn this.$t('user_status', 'Do not disturb')\n\n\t\t\t\tcase 'invisible':\n\t\t\t\t\treturn this.$t('user_status', 'Invisible')\n\n\t\t\t\tcase 'offline':\n\t\t\t\t\treturn this.$t('user_status', 'Offline')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.$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(this.$t('user_status', 'There was an error saving the new status'))\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst dateFactory = () => {\n\treturn new Date()\n}\n\nexport {\n\tdateFactory,\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-status-icon[data-v-4864e961]{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","// 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=\" + {\"4254\":\"5c2324570f66dff0c8a1\",\"5133\":\"4b2b2fdbb5db688639dc\",\"9480\":\"ffc85b17def7a3ab31f0\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 9953;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\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(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\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 = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(20051)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","name","components","Fragment","NcButton","NcListItem","NcUserStatusIcon","SetStatusModal","mixins","OnlineStatusMixin","props","inline","type","Boolean","default","data","heartbeatInterval","isAway","isModalOpen","mouseMoveListener","setAwayTimeout","mounted","$store","dispatch","OC","config","session_keepalive","setInterval","_backgroundHeartbeat","bind","debounce","wasAway","clearTimeout","setTimeout","window","addEventListener","capture","passive","subscribe","handleUserStatusUpdated","beforeDestroy","removeEventListener","clearInterval","unsubscribe","methods","openModal","closeModal","status","async","url","generateOcsUrl","HttpClient","put","ocs","sendHeartbeat","userId","error","console","debug","response","state","getCurrentUser","uid","icon","message","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","on","$event","stopPropagation","apply","arguments","scopedSlots","_u","key","fn","staticClass","attrs","statusType","proxy","_v","_s","visibleMessage","_e","predefinedStatuses","mutations","addPredefinedStatus","getters","statusesHaveLoaded","length","actions","loadAllPredefinedStatuses","_ref","commit","statuses","get","fetchAllPredefinedStatuses","getTimestampForClearAt","clearAt","date","dateFactory","setSeconds","getSeconds","time","Math","floor","getTime","Number","moment","endOf","format","statusIsUserDefined","messageIsPredefined","messageId","setStatus","setPredefinedMessage","_ref2","setCustomMessage","_ref3","clearMessage","loadStatusFromServer","_ref4","_ref5","_ref6","emit","setStatusFromObject","_ref7","_ref8","_ref9","rootState","resolvedClearAt","undefined","find","id","_ref10","_ref11","statusIcon","_ref12","delete","reFetchStatusFromServer","_ref13","fetchCurrentStatus","setStatusFromHeartbeat","_ref14","loadStatusFromInitialState","_ref15","loadState","loadBackupStatusFromServer","fetchBackupFromServer","fetchBackupStatus","e","revertBackupFromServer","revertToBackupStatus","Vue","use","Vuex","Store","modules","userStatus","userBackupStatus","strict","__webpack_nonce__","getCSPNonce","prototype","t","$t","mountMenuEntry","mountPoint","document","getElementById","el","render","h","UserStatus","store","OCA","Dashboard","registerStatus","extend","propsData","$mount","computed","mapState","customIcon","customMessage","changeStatus","err","showError","Date","___CSS_LOADER_EXPORT___","push","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","doneFns","parentNode","removeChild","forEach","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","importScripts","location","currentScript","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file