(()=>{"use strict";vara,e,n,i={36824:(a,e,n)=>{vari=n(20144),o=n(31352),d=n(49683),r=n(79954),l=n(64024),s=n(14596),p=n(4820),A=n(56580),c=n.n(A),u=n(79753),v=n(77958);constm=c()((t=>(p.default.defaults.headers["X-Requested-With"]="XMLHttpRequest",s.lD().patch("request",p.default),s.eI((0,u.generateRemoteUrl)("dav/".concat(t,"/").concat((0,v.ts)().uid)))))),f=(0,n(17499).IY)().setApp("dav").detectUser().build();varC=n(10861),b=n.n(C),y=n(20571),g=n.n(y),x=n(13299),h=n.n(x),w=n(31144),k=n.n(w),B=n(25108);constS={name:"Availability",components:{NcButton:b(),NcCheckboxRadioSwitch:g(),CalendarAvailability:d.Dx,NcSettingsSection:h(),NcTimezonePicker:k()},data(){vart,a,e;return{loading:!0,saving:!1,timezone:null!==(t=null===(a=newIntl.DateTimeFormat)||void0===a||null===(e=a.resolvedOptions())||void0===e?void0:e.timeZone)&&void0!==t?t:"UTC",slots:{MO:[],TU:[],WE:[],TH:[],FR:[],SA:[],SU:[]},automated:"yes"===(0,r.j)("dav","user_status_automation")}},asyncmounted(){try{constt=awaitasyncfunction(){vart,a,e;constn=m("calendars"),i=awaitn.customRequest("inbox",{method:"PROPFIND",data:'<?xml version="1.0"?>\n\t\t\t<x0:propfind xmlns:x0="DAV:">\n\t\t\t <x0:prop>\n\t\t\t\t<x1:calendar-availability xmlns:x1="urn:ietf:params:xml:ns:caldav"/>\n\t\t\t </x0:prop>\n\t\t\t</x0:propfind>'}),o=await(0,s.sw)(i.data);if(!o)return;constr=null==o||null===(t=o.multistatus)||void0===t||null===(a=t.response[0])||void0===a||null===(e=a.propstat)||void0===e?void0:e.prop["calendar-availability"];returnr?(0,d.Xg)(r):void0}();if(t){const{slots:a,timezoneId:e}=t;this.slots=a,e&&(this.timezone=e),B.info("availability loaded",this.slots,this.timezoneId)}elseB.info("no availability is set"),this.slots={MO:[],TU:[],WE:[],TH:[],FR:[],SA:[],SU:[]}}catch(a){B.error("could not load existing availability",a),(0,l.x2)(t("dav","Failed to load availability"))}finally{this.loading=!1}},methods:{asyncsave(){try{this.saving=!0,awaitasyncfunction(t,a){conste=[...Object.keys(t).flatMap((a=>t[a].map((t=>({...t,day:a})))))],n=(0,d.ST)(e,a);f.debug("New availability ical created",{vavailability:n});consti=m("calendars");awaiti.customRequest("inbox",{method:"PROPPATCH",data:'<?xml version="1.0"?>\n\t\t\t<x0:propertyupdate xmlns:x0="DAV:">\n\t\t\t <x0:set>\n\t\t\t\t<x0:prop>\n\t\t\t\t <x1:calendar-availability xmlns:x1="urn:ietf:params:xml:ns:caldav">'.concat(n,"</x1:calendar-availability>\n\t\t\t\t</x0:prop>\n\t\t\t </x0:set>\n\t\t\t</x0:propertyupdate>")})}(this.slots,this.timezone),this.automated?awaitasyncfunction(){returnawaitp.default.post((0,u.generateOcsUrl)("/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}",{appId:"dav",configKey:"user_status_automation"}),{configValue:"yes"})}():awaitasyncfunction(){returnawaitp.default.delete((0,u.generateOcsUrl)("/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}",{appId:"dav",configKey:"user_status_automation"}))}(),(0,l.s$)(t("dav","Saved availability"))}catch(a){B.error("could not save availability",a),(0,l.x2)(t("dav","Failed to save availability"))}finally{this.saving=!1}}}};varE=n(93379),_=n.n(E),T=n(7795),D=n.n(T),O=n(90569),$=n.n(O),z=n(3565),I=n.n(z),N=n(19216),P=n.n(N),j=n(44589),U=n.n(j),R=n(32413),F={};F.styleTagTransform=U(),F.setAttributes=I(),F.insert=$().bind(null,"head"),F.domAPI=D(),F.insertStyleElement=P(),_()(R.Z,F),R.Z&&R.Z.locals&&R.Z.locals;constq=(0,n(51900).Z)(S,(function(){vart=this,a=t._self._c;returna("NcSettingsSection",{attrs:{title:t.$t("dav","Availability"),description:t.$t("dav","If you configure your working hours, other users will see when you are out of office when they book a meeting.")}},[a("div",{staticClass:"time-zone"},[a("strong",[t._v("\n\t\t\t"+t._s(t.$t("dav","Time zone:"))+"\n\t\t")]),t._v(" "),a("span",{staticClass:"time-zone-text"},[a("NcTimezonePicker",{model:{value:t.timezone,callback:function(a){t.timezone=a},expression:"timezone"}})],1)]),t._v(" "),a("CalendarAvailability",{attrs:{slots:t.slots,loading:t.loading,"l10n-to":t.$t("dav","to"),"l10n-delete-slot":t.$t("dav","Delete slot"),"l10n-empty-day":t.$t("da