diff options
author | nextcloud-command <nextcloud-command@users.noreply.github.com> | 2025-03-26 19:02:01 +0000 |
---|---|---|
committer | nextcloud-command <nextcloud-command@users.noreply.github.com> | 2025-03-26 19:02:01 +0000 |
commit | ed5e79644c8c6073d84debe31e142e50f7941f11 (patch) | |
tree | f14d74e7a9a88be37a69c3d9b7face55d46b2ed8 | |
parent | 99bba9f507ea7fe9add295d14a9a32b0ac79edac (diff) | |
download | nextcloud-server-backport/51737/stable29.tar.gz nextcloud-server-backport/51737/stable29.zip |
chore(assets): Recompile assetsbackport/51737/stable29
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
-rw-r--r-- | dist/files_reminders-init.js | 4 | ||||
-rw-r--r-- | dist/files_reminders-init.js.map | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/dist/files_reminders-init.js b/dist/files_reminders-init.js index a953f1a02ea..4217b7554b9 100644 --- a/dist/files_reminders-init.js +++ b/dist/files_reminders-init.js @@ -1,3 +1,3 @@ /*! For license information please see files_reminders-init.js.LICENSE.txt */ -(()=>{"use strict";var e,t,r,n={19672:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(71354),i=r.n(n),a=r(76314),s=r.n(a)()(i());s.push([e.id,'.files-list__row-action-set-reminder-custom{margin-top:13px;position:relative}.files-list__row-action-set-reminder-custom::before{content:"";margin:3px 10px 3px 15px;border-bottom:1px solid var(--color-border-dark);cursor:default;display:flex;height:0;position:absolute;left:0;right:0;top:-10px}',"",{version:3,sources:["webpack://./apps/files_reminders/src/actions/setReminderSuggestionActions.scss"],names:[],mappings:"AAuBA,4CACC,eAAA,CACA,iBAAA,CAEA,oDACC,UAAA,CACA,wBAAA,CACA,gDAAA,CACA,cAAA,CACA,YAAA,CACA,QAAA,CACA,iBAAA,CACA,MAAA,CACA,OAAA,CACA,SAAA",sourcesContent:['/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n // TODO: remove when/if the actions API supports a separator\n // This the last preset action, so we need to add a separator\n.files-list__row-action-set-reminder-custom {\n\tmargin-top: 13px;\n\tposition: relative;\n\n\t&::before {\n\t\tcontent: "";\n\t\tmargin: 3px 10px 3px 15px;\n\t\tborder-bottom: 1px solid var(--color-border-dark);\n\t\tcursor: default;\n\t\tdisplay: flex;\n\t\theight: 0;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\ttop: -10px;\n\t}\n}\n'],sourceRoot:""}]);const o=s},25852:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(71354),i=r.n(n),a=r(76314),s=r.n(a)()(i());s.push([e.id,".custom-reminder-modal[data-v-5a1353a8]{margin:0 12px}","",{version:3,sources:["webpack://./apps/files_reminders/src/components/SetCustomReminderModal.vue"],names:[],mappings:"AACA,wCACC,aAAA",sourcesContent:["\n.custom-reminder-modal {\n\tmargin: 0 12px;\n}\n"],sourceRoot:""}]);const o=s},91410:(e,t,r)=>{var n=r(25883),i=r(53334);const a='<svg xmlns="http://www.w3.org/2000/svg" id="mdi-alarm" viewBox="0 0 24 24"><path d="M12,20A7,7 0 0,1 5,13A7,7 0 0,1 12,6A7,7 0 0,1 19,13A7,7 0 0,1 12,20M12,4A9,9 0 0,0 3,13A9,9 0 0,0 12,22A9,9 0 0,0 21,13A9,9 0 0,0 12,4M12.5,8H11V14L15.75,16.85L16.5,15.62L12.5,13.25V8M7.88,3.39L6.6,1.86L2,5.71L3.29,7.24L7.88,3.39M22,5.72L17.4,1.86L16.11,3.39L20.71,7.25L22,5.72Z" /></svg>';var s,o=r(85471),l=r(61338),d=r(85168),c=r(32051),m=r(4604),u=r(48046),f=r(94219),p=r(40083);!function(e){e.LaterToday="later-today",e.Tomorrow="tomorrow",e.ThisWeekend="this-weekend",e.NextWeek="next-week"}(s||(s={}));const h=()=>{const e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-e.getDay()+1),new Date(e)},g=e=>{new Date(e).setHours(0,0,0,0);const t=new Date(e.getFullYear(),0,1,0,0,0,0),r=(e.getTime()-t.getTime())/864e5;return Math.ceil((r+t.getDay()+1)/7)},A=e=>({[s.LaterToday]:()=>{const e=new Date,t=new Date;t.setHours(18,0,0,0);const r=new Date;return r.setHours(17,0,0,0),e>=r?null:t},[s.Tomorrow]:()=>{const e=new Date,t=new Date;return t.setDate(e.getDate()+1),t.setHours(8,0,0,0),t},[s.ThisWeekend]:()=>{const e=new Date;if([5,6,0].includes(e.getDay()))return null;const t=new Date,r=h();return t.setDate(r.getDate()+5),t.setHours(8,0,0,0),t},[s.NextWeek]:()=>{if(0===(new Date).getDay())return null;const e=new Date,t=h();return e.setDate(t.getDate()+7),e.setHours(8,0,0,0),e}}[e]()),v=e=>{let t={hour:"numeric",minute:"2-digit"};const r=new Date;var n,a;return a=r,((n=e).getDate()!==a.getDate()||n.getMonth()!==a.getMonth()||n.getFullYear()!==a.getFullYear())&&(t={...t,weekday:"short"}),((e,t)=>g(e)===g(t)&&e.getFullYear()===t.getFullYear())(e,r)||(t={...t,month:"short",day:"numeric"}),e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString((0,i.lO)(),t)},b=e=>{let t={month:"long",day:"numeric",weekday:"long",hour:"numeric",minute:"2-digit"};const r=new Date;return e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString((0,i.lO)(),t)},w=(0,r(35947).YK)().setApp("files_reminders").detectUser().build();var y=r(65043),D=r(63814);const T=async(e,t)=>{const r=(0,D.KT)("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await y.Ay.put(r,{dueDate:t.toISOString()})).data.ocs.data},C=async e=>{const t=(0,D.KT)("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await y.Ay.delete(t)).data.ocs.data},_=o.Ay.extend({name:"SetCustomReminderModal",components:{NcButton:c.A,NcDateTime:m.A,NcDateTimePickerNative:u.A,NcDialog:f.A,NcNoteCard:p.A},data:()=>({node:void 0,hasDueDate:!1,opened:!1,isValid:!0,customDueDate:null,nowDate:new Date}),computed:{fileId(){return this.node.fileid},fileName(){return this.node.basename},name(){return(0,i.Tl)("files_reminders",'Set reminder for "{fileName}"',{fileName:this.fileName})},label:()=>(0,i.Tl)("files_reminders","Set reminder at custom date & time"),clearAriaLabel:()=>(0,i.Tl)("files_reminders","Clear reminder")},methods:{t:i.Tl,getDateString:v,open(e){const t=e.attributes["reminder-due-date"]?new Date(e.attributes["reminder-due-date"]):null;this.node=e,this.hasDueDate=Boolean(t),this.isValid=!0,this.opened=!0,this.customDueDate=t??(()=>{const e=new Date,t=new Date;return t.setHours(e.getHours()+2,0,0,0),t})(),this.nowDate=new Date,setTimeout((()=>{const e=document.getElementById("set-custom-reminder");e.focus(),this.hasDueDate||e.showPicker()}),300)},async setCustom(){if(this.customDueDate instanceof Date&&!isNaN(this.customDueDate))try{await T(this.fileId,this.customDueDate),o.Ay.set(this.node.attributes,"reminder-due-date",this.customDueDate.toISOString()),(0,l.Ic)("files:node:updated",this.node),(0,d.Te)((0,i.Tl)("files_reminders",'Reminder set for "{fileName}"',{fileName:this.fileName})),this.onClose()}catch(e){w.error("Failed to set reminder",{error:e}),(0,d.Qg)((0,i.Tl)("files_reminders","Failed to set reminder"))}else(0,d.Qg)((0,i.Tl)("files_reminders","Please choose a valid date & time"))},async clear(){try{await C(this.fileId),o.Ay.set(this.node.attributes,"reminder-due-date",""),(0,l.Ic)("files:node:updated",this.node),(0,d.Te)((0,i.Tl)("files_reminders",'Reminder cleared for "{fileName}"',{fileName:this.fileName})),this.onClose()}catch(e){w.error("Failed to clear reminder",{error:e}),(0,d.Qg)((0,i.Tl)("files_reminders","Failed to clear reminder"))}},onClose(){this.opened=!1,this.$emit("close")},onInput(){const e=document.getElementById("set-custom-reminder");this.isValid=e.checkValidity()}}});var S=r(85072),L=r.n(S),N=r(97825),x=r.n(N),k=r(77659),I=r.n(k),P=r(55056),M=r.n(P),O=r(10540),F=r.n(O),H=r(41113),Y=r.n(H),B=r(25852),E={};E.styleTagTransform=Y(),E.setAttributes=M(),E.insert=I().bind(null,"head"),E.domAPI=x(),E.insertStyleElement=F(),L()(B.A,E),B.A&&B.A.locals&&B.A.locals;const R=(0,r(14486).A)(_,(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.opened?t("NcDialog",{attrs:{name:e.name,"out-transition":!0,size:"small","close-on-click-outside":""},on:{closing:e.onClose},scopedSlots:e._u([{key:"actions",fn:function(){return[t("NcButton",{attrs:{type:"tertiary"},on:{click:e.onClose}},[e._v("\n\t\t\t"+e._s(e.t("files_reminders","Cancel"))+"\n\t\t")]),e._v(" "),e.hasDueDate?t("NcButton",{on:{click:e.clear}},[e._v("\n\t\t\t"+e._s(e.t("files_reminders","Clear reminder"))+"\n\t\t")]):e._e(),e._v(" "),t("NcButton",{attrs:{disabled:!e.isValid,type:"primary",form:"set-custom-reminder-form","native-type":"submit"}},[e._v("\n\t\t\t"+e._s(e.t("files_reminders","Set reminder"))+"\n\t\t")])]},proxy:!0}],null,!1,2766788902)},[t("form",{staticClass:"custom-reminder-modal",attrs:{id:"set-custom-reminder-form"},on:{submit:function(t){return t.preventDefault(),e.setCustom.apply(null,arguments)}}},[t("NcDateTimePickerNative",{attrs:{id:"set-custom-reminder",label:e.label,min:e.nowDate,required:!0,type:"datetime-local"},on:{input:e.onInput},model:{value:e.customDueDate,callback:function(t){e.customDueDate=t},expression:"customDueDate"}}),e._v(" "),e.isValid?t("NcNoteCard",{attrs:{type:"info"}},[e._v("\n\t\t\t"+e._s(e.t("files_reminders","We will remind you of this file"))+"\n\t\t\t"),t("NcDateTime",{attrs:{timestamp:e.customDueDate}})],1):t("NcNoteCard",{attrs:{type:"error"}},[e._v("\n\t\t\t"+e._s(e.t("files_reminders","Please choose a valid date & time"))+"\n\t\t")])],1)]):e._e()}),[],!1,null,"5a1353a8",null).exports,V=o.Ay.extend(R),j=document.createElement("div");j.id="set-custom-reminder-modal",document.body.appendChild(j);const $=new V({name:"SetCustomReminderModal",el:j}),G=e=>($.open(e),new Promise((e=>{$.$once("close",e)}))),U=new n.hY({id:"reminder-status",inline:()=>!0,displayName:()=>"",title:e=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${(0,i.Tl)("files_reminders","Reminder set")} – ${b(r)}`},iconSvgInline:()=>a,enabled:e=>{if(1!==e.length)return!1;const t=e.at(0).attributes["reminder-due-date"];return Boolean(t)},exec:async e=>(G(e),null),order:-15}),W=new n.hY({id:"clear-reminder",displayName:()=>(0,i.Tl)("files_reminders","Clear reminder"),title:e=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${(0,i.Tl)("files_reminders","Clear reminder")} – ${b(r)}`},iconSvgInline:()=>'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-alarm-off" viewBox="0 0 24 24"><path d="M8,3.28L6.6,1.86L5.74,2.57L7.16,4M16.47,18.39C15.26,19.39 13.7,20 12,20A7,7 0 0,1 5,13C5,11.3 5.61,9.74 6.61,8.53M2.92,2.29L1.65,3.57L3,4.9L1.87,5.83L3.29,7.25L4.4,6.31L5.2,7.11C3.83,8.69 3,10.75 3,13A9,9 0 0,0 12,22C14.25,22 16.31,21.17 17.89,19.8L20.09,22L21.36,20.73L3.89,3.27L2.92,2.29M22,5.72L17.4,1.86L16.11,3.39L20.71,7.25L22,5.72M12,6A7,7 0 0,1 19,13C19,13.84 18.84,14.65 18.57,15.4L20.09,16.92C20.67,15.73 21,14.41 21,13A9,9 0 0,0 12,4C10.59,4 9.27,4.33 8.08,4.91L9.6,6.43C10.35,6.16 11.16,6 12,6Z" /></svg>',enabled:e=>{if(1!==e.length)return!1;const t=e.at(0).attributes["reminder-due-date"];return Boolean(t)},async exec(e){if(e.fileid)try{return await C(e.fileid),o.Ay.set(e.attributes,"reminder-due-date",""),(0,l.Ic)("files:node:updated",e),!0}catch(e){return!1}return null},order:19}),Q="set-reminder-menu",K=new n.hY({id:Q,displayName:()=>(0,i.Tl)("files_reminders","Set reminder"),iconSvgInline:()=>a,enabled:()=>!0,exec:async()=>null,order:20});var Z=r(19672),q={};q.styleTagTransform=Y(),q.setAttributes=M(),q.insert=I().bind(null,"head"),q.domAPI=x(),q.insertStyleElement=F(),L()(Z.A,q),Z.A&&Z.A.locals&&Z.A.locals;const J={dateTimePreset:s.LaterToday,label:(0,i.Tl)("files_reminders","Later today"),ariaLabel:(0,i.Tl)("files_reminders","Set reminder for later today"),dateString:"",verboseDateString:""},z={dateTimePreset:s.Tomorrow,label:(0,i.Tl)("files_reminders","Tomorrow"),ariaLabel:(0,i.Tl)("files_reminders","Set reminder for tomorrow"),dateString:"",verboseDateString:""},X={dateTimePreset:s.ThisWeekend,label:(0,i.Tl)("files_reminders","This weekend"),ariaLabel:(0,i.Tl)("files_reminders","Set reminder for this weekend"),dateString:"",verboseDateString:""},ee={dateTimePreset:s.NextWeek,label:(0,i.Tl)("files_reminders","Next week"),ariaLabel:(0,i.Tl)("files_reminders","Set reminder for next week"),dateString:"",verboseDateString:""};[J,z,X,ee].forEach((e=>{const t=A(e.dateTimePreset);t&&(e.dateString=v(t),e.verboseDateString=b(t),setInterval((()=>{const t=A(e.dateTimePreset);t&&(e.dateString=v(t),e.verboseDateString=b(t))}),18e5))}));const te=[J,z,X,ee].map((e=>new n.hY({id:`set-reminder-${e.dateTimePreset}`,displayName:()=>`${e.label} – ${e.dateString}`,title:()=>`${e.ariaLabel} – ${e.verboseDateString}`,iconSvgInline:()=>"<svg></svg>",enabled:()=>Boolean(A(e.dateTimePreset)),parent:Q,async exec(t){if(!t.fileid)return w.error("Failed to set reminder, missing file id"),(0,d.Qg)((0,i.Tl)("files_reminders","Failed to set reminder")),null;try{const r=A(e.dateTimePreset);await T(t.fileid,r),o.Ay.set(t.attributes,"reminder-due-date",r.toISOString()),(0,l.Ic)("files:node:updated",t),(0,d.Te)((0,i.Tl)("files_reminders",'Reminder set for "{fileName}"',{fileName:t.basename}))}catch(e){w.error("Failed to set reminder",{error:e}),(0,d.Qg)((0,i.Tl)("files_reminders","Failed to set reminder"))}return null},order:21}))),re=new n.hY({id:"set-reminder-custom",displayName:()=>(0,i.Tl)("files_reminders","Set custom reminder"),title:()=>(0,i.Tl)("files_reminders","Set reminder at custom date & time"),iconSvgInline:()=>'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-calendar-clock" viewBox="0 0 24 24"><path d="M15,13H16.5V15.82L18.94,17.23L18.19,18.53L15,16.69V13M19,8H5V19H9.67C9.24,18.09 9,17.07 9,16A7,7 0 0,1 16,9C17.07,9 18.09,9.24 19,9.67V8M5,21C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H6V1H8V3H16V1H18V3H19A2,2 0 0,1 21,5V11.1C22.24,12.36 23,14.09 23,16A7,7 0 0,1 16,23C14.09,23 12.36,22.24 11.1,21H5M16,11.15A4.85,4.85 0 0,0 11.15,16C11.15,18.68 13.32,20.85 16,20.85A4.85,4.85 0 0,0 20.85,16C20.85,13.32 18.68,11.15 16,11.15Z" /></svg>',enabled:()=>!0,parent:Q,exec:async e=>(G(e),null),order:22});(0,n.Yc)("nc:reminder-due-date",{nc:"http://nextcloud.org/ns"}),(0,n.Gg)(U),(0,n.Gg)(W),(0,n.Gg)(K),(0,n.Gg)(re),te.forEach((e=>(0,n.Gg)(e)))}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={id:e,loaded:!1,exports:{}};return n[e].call(r.exports,r,r.exports,a),r.loaded=!0,r.exports}a.m=n,e=[],a.O=(t,r,n,i)=>{if(!r){var s=1/0;for(c=0;c<e.length;c++){r=e[c][0],n=e[c][1],i=e[c][2];for(var o=!0,l=0;l<r.length;l++)(!1&i||s>=i)&&Object.keys(a.O).every((e=>a.O[e](r[l])))?r.splice(l--,1):(o=!1,i<s&&(s=i));if(o){e.splice(c--,1);var d=n();void 0!==d&&(t=d)}}return t}i=i||0;for(var c=e.length;c>0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[r,n,i]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,r)=>(a.f[r](e,t),t)),[])),a.u=e=>e+"-"+e+".js?v="+{2441:"bd6d3dc836e836cd4795",5775:"bdb5a44b157eaff757ea",5862:"18c97d281a8207f0ce8d"}[e],a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},r="nextcloud:",a.l=(e,n,i,s)=>{if(t[e])t[e].push(n);else{var o,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),c=0;c<d.length;c++){var m=d[c];if(m.getAttribute("src")==e||m.getAttribute("data-webpack")==r+i){o=m;break}}o||(l=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,a.nc&&o.setAttribute("nonce",a.nc),o.setAttribute("data-webpack",r+i),o.src=e),t[e]=[n];var u=(r,n)=>{o.onerror=o.onload=null,clearTimeout(f);var i=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),i&&i.forEach((e=>e(n))),r)return r(n)},f=setTimeout(u.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=u.bind(null,o.onerror),o.onload=u.bind(null,o.onload),l&&document.head.appendChild(o)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.j=9735,(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{a.b=document.baseURI||self.location.href;var e={9735:0};a.f.j=(t,r)=>{var n=a.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var i=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=i);var s=a.p+a.u(t),o=new Error;a.l(s,(r=>{if(a.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=r&&("load"===r.type?"missing":r.type),s=r&&r.target&&r.target.src;o.message="Loading chunk "+t+" failed.\n("+i+": "+s+")",o.name="ChunkLoadError",o.type=i,o.request=s,n[1](o)}}),"chunk-"+t,t)}},a.O.j=t=>0===e[t];var t=(t,r)=>{var n,i,s=r[0],o=r[1],l=r[2],d=0;if(s.some((t=>0!==e[t]))){for(n in o)a.o(o,n)&&(a.m[n]=o[n]);if(l)var c=l(a)}for(t&&t(r);d<s.length;d++)i=s[d],a.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return a.O(c)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),a.nc=void 0;var s=a.O(void 0,[4208],(()=>a(91410)));s=a.O(s)})(); -//# sourceMappingURL=files_reminders-init.js.map?v=42cbc6a011273fc5222f
\ No newline at end of file +(()=>{"use strict";var e,t,r,n={19672:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(71354),i=r.n(n),a=r(76314),s=r.n(a)()(i());s.push([e.id,'.files-list__row-action-set-reminder-custom{margin-top:13px;position:relative}.files-list__row-action-set-reminder-custom::before{content:"";margin:3px 10px 3px 15px;border-bottom:1px solid var(--color-border-dark);cursor:default;display:flex;height:0;position:absolute;left:0;right:0;top:-10px}',"",{version:3,sources:["webpack://./apps/files_reminders/src/actions/setReminderSuggestionActions.scss"],names:[],mappings:"AAuBA,4CACC,eAAA,CACA,iBAAA,CAEA,oDACC,UAAA,CACA,wBAAA,CACA,gDAAA,CACA,cAAA,CACA,YAAA,CACA,QAAA,CACA,iBAAA,CACA,MAAA,CACA,OAAA,CACA,SAAA",sourcesContent:['/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n // TODO: remove when/if the actions API supports a separator\n // This the last preset action, so we need to add a separator\n.files-list__row-action-set-reminder-custom {\n\tmargin-top: 13px;\n\tposition: relative;\n\n\t&::before {\n\t\tcontent: "";\n\t\tmargin: 3px 10px 3px 15px;\n\t\tborder-bottom: 1px solid var(--color-border-dark);\n\t\tcursor: default;\n\t\tdisplay: flex;\n\t\theight: 0;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\ttop: -10px;\n\t}\n}\n'],sourceRoot:""}]);const o=s},25852:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(71354),i=r.n(n),a=r(76314),s=r.n(a)()(i());s.push([e.id,".custom-reminder-modal[data-v-5a1353a8]{margin:0 12px}","",{version:3,sources:["webpack://./apps/files_reminders/src/components/SetCustomReminderModal.vue"],names:[],mappings:"AACA,wCACC,aAAA",sourcesContent:["\n.custom-reminder-modal {\n\tmargin: 0 12px;\n}\n"],sourceRoot:""}]);const o=s},91410:(e,t,r)=>{var n=r(25883),i=r(53334);const a='<svg xmlns="http://www.w3.org/2000/svg" id="mdi-alarm" viewBox="0 0 24 24"><path d="M12,20A7,7 0 0,1 5,13A7,7 0 0,1 12,6A7,7 0 0,1 19,13A7,7 0 0,1 12,20M12,4A9,9 0 0,0 3,13A9,9 0 0,0 12,22A9,9 0 0,0 21,13A9,9 0 0,0 12,4M12.5,8H11V14L15.75,16.85L16.5,15.62L12.5,13.25V8M7.88,3.39L6.6,1.86L2,5.71L3.29,7.24L7.88,3.39M22,5.72L17.4,1.86L16.11,3.39L20.71,7.25L22,5.72Z" /></svg>';var s,o=r(85471),l=r(61338),d=r(85168),c=r(32051),m=r(4604),u=r(48046),f=r(94219),p=r(40083);!function(e){e.LaterToday="later-today",e.Tomorrow="tomorrow",e.ThisWeekend="this-weekend",e.NextWeek="next-week"}(s||(s={}));const h=()=>{const e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-e.getDay()+1),new Date(e)},g=e=>{new Date(e).setHours(0,0,0,0);const t=new Date(e.getFullYear(),0,1,0,0,0,0),r=(e.getTime()-t.getTime())/864e5;return Math.ceil((r+t.getDay()+1)/7)},A=e=>({[s.LaterToday]:()=>{const e=new Date,t=new Date;t.setHours(18,0,0,0);const r=new Date;return r.setHours(17,0,0,0),e>=r?null:t},[s.Tomorrow]:()=>{const e=new Date,t=new Date;return t.setDate(e.getDate()+1),t.setHours(8,0,0,0),t},[s.ThisWeekend]:()=>{const e=new Date;if([5,6,0].includes(e.getDay()))return null;const t=new Date,r=h();return t.setDate(r.getDate()+5),t.setHours(8,0,0,0),t},[s.NextWeek]:()=>{if(0===(new Date).getDay())return null;const e=new Date,t=h();return e.setDate(t.getDate()+7),e.setHours(8,0,0,0),e}}[e]()),v=e=>{let t={hour:"numeric",minute:"2-digit"};const r=new Date;var n,a;return a=r,((n=e).getDate()!==a.getDate()||n.getMonth()!==a.getMonth()||n.getFullYear()!==a.getFullYear())&&(t={...t,weekday:"short"}),((e,t)=>g(e)===g(t)&&e.getFullYear()===t.getFullYear())(e,r)||(t={...t,month:"short",day:"numeric"}),e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString((0,i.lO)(),t)},b=e=>{let t={month:"long",day:"numeric",weekday:"long",hour:"numeric",minute:"2-digit"};const r=new Date;return e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString((0,i.lO)(),t)},w=(0,r(35947).YK)().setApp("files_reminders").detectUser().build();var y=r(65043),D=r(63814);const T=async(e,t)=>{const r=(0,D.KT)("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await y.Ay.put(r,{dueDate:t.toISOString()})).data.ocs.data},C=async e=>{const t=(0,D.KT)("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await y.Ay.delete(t)).data.ocs.data},_=o.Ay.extend({name:"SetCustomReminderModal",components:{NcButton:c.A,NcDateTime:m.A,NcDateTimePickerNative:u.A,NcDialog:f.A,NcNoteCard:p.A},data:()=>({node:void 0,hasDueDate:!1,opened:!1,isValid:!0,customDueDate:null,nowDate:new Date}),computed:{fileId(){return this.node.fileid},fileName(){return this.node.basename},name(){return(0,i.Tl)("files_reminders",'Set reminder for "{fileName}"',{fileName:this.fileName})},label:()=>(0,i.Tl)("files_reminders","Set reminder at custom date & time"),clearAriaLabel:()=>(0,i.Tl)("files_reminders","Clear reminder")},methods:{t:i.Tl,getDateString:v,open(e){const t=e.attributes["reminder-due-date"]?new Date(e.attributes["reminder-due-date"]):null;this.node=e,this.hasDueDate=Boolean(t),this.isValid=!0,this.opened=!0,this.customDueDate=t??(()=>{const e=new Date,t=new Date;return t.setHours(e.getHours()+2,0,0,0),t})(),this.nowDate=new Date,setTimeout((()=>{const e=document.getElementById("set-custom-reminder");e.focus(),this.hasDueDate||e.showPicker()}),300)},async setCustom(){if(this.customDueDate instanceof Date&&!isNaN(this.customDueDate))try{await T(this.fileId,this.customDueDate),o.Ay.set(this.node.attributes,"reminder-due-date",this.customDueDate.toISOString()),(0,l.Ic)("files:node:updated",this.node),(0,d.Te)((0,i.Tl)("files_reminders",'Reminder set for "{fileName}"',{fileName:this.fileName})),this.onClose()}catch(e){w.error("Failed to set reminder",{error:e}),(0,d.Qg)((0,i.Tl)("files_reminders","Failed to set reminder"))}else(0,d.Qg)((0,i.Tl)("files_reminders","Please choose a valid date & time"))},async clear(){try{await C(this.fileId),o.Ay.set(this.node.attributes,"reminder-due-date",""),(0,l.Ic)("files:node:updated",this.node),(0,d.Te)((0,i.Tl)("files_reminders",'Reminder cleared for "{fileName}"',{fileName:this.fileName})),this.onClose()}catch(e){w.error("Failed to clear reminder",{error:e}),(0,d.Qg)((0,i.Tl)("files_reminders","Failed to clear reminder"))}},onClose(){this.opened=!1,this.$emit("close")},onInput(){const e=document.getElementById("set-custom-reminder");this.isValid=e.checkValidity()}}});var S=r(85072),L=r.n(S),N=r(97825),x=r.n(N),k=r(77659),I=r.n(k),P=r(55056),M=r.n(P),O=r(10540),F=r.n(O),H=r(41113),Y=r.n(H),B=r(25852),E={};E.styleTagTransform=Y(),E.setAttributes=M(),E.insert=I().bind(null,"head"),E.domAPI=x(),E.insertStyleElement=F(),L()(B.A,E),B.A&&B.A.locals&&B.A.locals;const R=(0,r(14486).A)(_,(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.opened?t("NcDialog",{attrs:{name:e.name,"out-transition":!0,size:"small","close-on-click-outside":""},on:{closing:e.onClose},scopedSlots:e._u([{key:"actions",fn:function(){return[t("NcButton",{attrs:{type:"tertiary"},on:{click:e.onClose}},[e._v("\n\t\t\t"+e._s(e.t("files_reminders","Cancel"))+"\n\t\t")]),e._v(" "),e.hasDueDate?t("NcButton",{on:{click:e.clear}},[e._v("\n\t\t\t"+e._s(e.t("files_reminders","Clear reminder"))+"\n\t\t")]):e._e(),e._v(" "),t("NcButton",{attrs:{disabled:!e.isValid,type:"primary",form:"set-custom-reminder-form","native-type":"submit"}},[e._v("\n\t\t\t"+e._s(e.t("files_reminders","Set reminder"))+"\n\t\t")])]},proxy:!0}],null,!1,2766788902)},[t("form",{staticClass:"custom-reminder-modal",attrs:{id:"set-custom-reminder-form"},on:{submit:function(t){return t.preventDefault(),e.setCustom.apply(null,arguments)}}},[t("NcDateTimePickerNative",{attrs:{id:"set-custom-reminder",label:e.label,min:e.nowDate,required:!0,type:"datetime-local"},on:{input:e.onInput},model:{value:e.customDueDate,callback:function(t){e.customDueDate=t},expression:"customDueDate"}}),e._v(" "),e.isValid?t("NcNoteCard",{attrs:{type:"info"}},[e._v("\n\t\t\t"+e._s(e.t("files_reminders","We will remind you of this file"))+"\n\t\t\t"),t("NcDateTime",{attrs:{timestamp:e.customDueDate}})],1):t("NcNoteCard",{attrs:{type:"error"}},[e._v("\n\t\t\t"+e._s(e.t("files_reminders","Please choose a valid date & time"))+"\n\t\t")])],1)]):e._e()}),[],!1,null,"5a1353a8",null).exports,V=o.Ay.extend(R),j=document.createElement("div");j.id="set-custom-reminder-modal",document.body.appendChild(j);const $=new V({name:"SetCustomReminderModal",el:j}),G=e=>($.open(e),new Promise((e=>{$.$once("close",e)}))),U=new n.hY({id:"reminder-status",inline:()=>!0,displayName:()=>"",title:e=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${(0,i.Tl)("files_reminders","Reminder set")} – ${b(r)}`},iconSvgInline:()=>a,enabled:e=>{if(1!==e.length)return!1;const t=e.at(0).attributes["reminder-due-date"];return Boolean(t)},exec:async e=>(G(e),null),order:-15}),W=new n.hY({id:"clear-reminder",displayName:()=>(0,i.Tl)("files_reminders","Clear reminder"),title:e=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${(0,i.Tl)("files_reminders","Clear reminder")} – ${b(r)}`},iconSvgInline:()=>'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-alarm-off" viewBox="0 0 24 24"><path d="M8,3.28L6.6,1.86L5.74,2.57L7.16,4M16.47,18.39C15.26,19.39 13.7,20 12,20A7,7 0 0,1 5,13C5,11.3 5.61,9.74 6.61,8.53M2.92,2.29L1.65,3.57L3,4.9L1.87,5.83L3.29,7.25L4.4,6.31L5.2,7.11C3.83,8.69 3,10.75 3,13A9,9 0 0,0 12,22C14.25,22 16.31,21.17 17.89,19.8L20.09,22L21.36,20.73L3.89,3.27L2.92,2.29M22,5.72L17.4,1.86L16.11,3.39L20.71,7.25L22,5.72M12,6A7,7 0 0,1 19,13C19,13.84 18.84,14.65 18.57,15.4L20.09,16.92C20.67,15.73 21,14.41 21,13A9,9 0 0,0 12,4C10.59,4 9.27,4.33 8.08,4.91L9.6,6.43C10.35,6.16 11.16,6 12,6Z" /></svg>',enabled:e=>{if(1!==e.length)return!1;const t=e.at(0).attributes["reminder-due-date"];return Boolean(t)},async exec(e){if(e.fileid)try{return await C(e.fileid),o.Ay.set(e.attributes,"reminder-due-date",""),(0,l.Ic)("files:node:updated",e),!0}catch(e){return!1}return null},order:19}),Q="set-reminder-menu",K=new n.hY({id:Q,displayName:()=>(0,i.Tl)("files_reminders","Set reminder"),iconSvgInline:()=>a,enabled:(e,t)=>"trashbin"!==t.id&&(1===e.length&&void 0!==e.at(0).attributes["reminder-due-date"]),exec:async()=>null,order:20});var Z=r(19672),q={};q.styleTagTransform=Y(),q.setAttributes=M(),q.insert=I().bind(null,"head"),q.domAPI=x(),q.insertStyleElement=F(),L()(Z.A,q),Z.A&&Z.A.locals&&Z.A.locals;const J={dateTimePreset:s.LaterToday,label:(0,i.Tl)("files_reminders","Later today"),ariaLabel:(0,i.Tl)("files_reminders","Set reminder for later today"),dateString:"",verboseDateString:""},z={dateTimePreset:s.Tomorrow,label:(0,i.Tl)("files_reminders","Tomorrow"),ariaLabel:(0,i.Tl)("files_reminders","Set reminder for tomorrow"),dateString:"",verboseDateString:""},X={dateTimePreset:s.ThisWeekend,label:(0,i.Tl)("files_reminders","This weekend"),ariaLabel:(0,i.Tl)("files_reminders","Set reminder for this weekend"),dateString:"",verboseDateString:""},ee={dateTimePreset:s.NextWeek,label:(0,i.Tl)("files_reminders","Next week"),ariaLabel:(0,i.Tl)("files_reminders","Set reminder for next week"),dateString:"",verboseDateString:""};[J,z,X,ee].forEach((e=>{const t=A(e.dateTimePreset);t&&(e.dateString=v(t),e.verboseDateString=b(t),setInterval((()=>{const t=A(e.dateTimePreset);t&&(e.dateString=v(t),e.verboseDateString=b(t))}),18e5))}));const te=[J,z,X,ee].map((e=>new n.hY({id:`set-reminder-${e.dateTimePreset}`,displayName:()=>`${e.label} – ${e.dateString}`,title:()=>`${e.ariaLabel} – ${e.verboseDateString}`,iconSvgInline:()=>"<svg></svg>",enabled:(t,r)=>"trashbin"!==r.id&&(1===t.length&&(void 0!==t.at(0).attributes["reminder-due-date"]&&Boolean(A(e.dateTimePreset)))),parent:Q,async exec(t){if(!t.fileid)return w.error("Failed to set reminder, missing file id"),(0,d.Qg)((0,i.Tl)("files_reminders","Failed to set reminder")),null;try{const r=A(e.dateTimePreset);await T(t.fileid,r),o.Ay.set(t.attributes,"reminder-due-date",r.toISOString()),(0,l.Ic)("files:node:updated",t),(0,d.Te)((0,i.Tl)("files_reminders",'Reminder set for "{fileName}"',{fileName:t.basename}))}catch(e){w.error("Failed to set reminder",{error:e}),(0,d.Qg)((0,i.Tl)("files_reminders","Failed to set reminder"))}return null},order:21}))),re=new n.hY({id:"set-reminder-custom",displayName:()=>(0,i.Tl)("files_reminders","Set custom reminder"),title:()=>(0,i.Tl)("files_reminders","Set reminder at custom date & time"),iconSvgInline:()=>'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-calendar-clock" viewBox="0 0 24 24"><path d="M15,13H16.5V15.82L18.94,17.23L18.19,18.53L15,16.69V13M19,8H5V19H9.67C9.24,18.09 9,17.07 9,16A7,7 0 0,1 16,9C17.07,9 18.09,9.24 19,9.67V8M5,21C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H6V1H8V3H16V1H18V3H19A2,2 0 0,1 21,5V11.1C22.24,12.36 23,14.09 23,16A7,7 0 0,1 16,23C14.09,23 12.36,22.24 11.1,21H5M16,11.15A4.85,4.85 0 0,0 11.15,16C11.15,18.68 13.32,20.85 16,20.85A4.85,4.85 0 0,0 20.85,16C20.85,13.32 18.68,11.15 16,11.15Z" /></svg>',enabled:(e,t)=>"trashbin"!==t.id&&(1===e.length&&void 0!==e.at(0).attributes["reminder-due-date"]),parent:Q,exec:async e=>(G(e),null),order:22});(0,n.Yc)("nc:reminder-due-date",{nc:"http://nextcloud.org/ns"}),(0,n.Gg)(U),(0,n.Gg)(W),(0,n.Gg)(K),(0,n.Gg)(re),te.forEach((e=>(0,n.Gg)(e)))}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={id:e,loaded:!1,exports:{}};return n[e].call(r.exports,r,r.exports,a),r.loaded=!0,r.exports}a.m=n,e=[],a.O=(t,r,n,i)=>{if(!r){var s=1/0;for(c=0;c<e.length;c++){r=e[c][0],n=e[c][1],i=e[c][2];for(var o=!0,l=0;l<r.length;l++)(!1&i||s>=i)&&Object.keys(a.O).every((e=>a.O[e](r[l])))?r.splice(l--,1):(o=!1,i<s&&(s=i));if(o){e.splice(c--,1);var d=n();void 0!==d&&(t=d)}}return t}i=i||0;for(var c=e.length;c>0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[r,n,i]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,r)=>(a.f[r](e,t),t)),[])),a.u=e=>e+"-"+e+".js?v="+{2441:"bd6d3dc836e836cd4795",5775:"bdb5a44b157eaff757ea",5862:"18c97d281a8207f0ce8d"}[e],a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},r="nextcloud:",a.l=(e,n,i,s)=>{if(t[e])t[e].push(n);else{var o,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),c=0;c<d.length;c++){var m=d[c];if(m.getAttribute("src")==e||m.getAttribute("data-webpack")==r+i){o=m;break}}o||(l=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,a.nc&&o.setAttribute("nonce",a.nc),o.setAttribute("data-webpack",r+i),o.src=e),t[e]=[n];var u=(r,n)=>{o.onerror=o.onload=null,clearTimeout(f);var i=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),i&&i.forEach((e=>e(n))),r)return r(n)},f=setTimeout(u.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=u.bind(null,o.onerror),o.onload=u.bind(null,o.onload),l&&document.head.appendChild(o)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.j=9735,(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{a.b=document.baseURI||self.location.href;var e={9735:0};a.f.j=(t,r)=>{var n=a.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var i=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=i);var s=a.p+a.u(t),o=new Error;a.l(s,(r=>{if(a.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=r&&("load"===r.type?"missing":r.type),s=r&&r.target&&r.target.src;o.message="Loading chunk "+t+" failed.\n("+i+": "+s+")",o.name="ChunkLoadError",o.type=i,o.request=s,n[1](o)}}),"chunk-"+t,t)}},a.O.j=t=>0===e[t];var t=(t,r)=>{var n,i,s=r[0],o=r[1],l=r[2],d=0;if(s.some((t=>0!==e[t]))){for(n in o)a.o(o,n)&&(a.m[n]=o[n]);if(l)var c=l(a)}for(t&&t(r);d<s.length;d++)i=s[d],a.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return a.O(c)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),a.nc=void 0;var s=a.O(void 0,[4208],(()=>a(91410)));s=a.O(s)})(); +//# sourceMappingURL=files_reminders-init.js.map?v=8de22a1d71d4351e8fd7
\ No newline at end of file diff --git a/dist/files_reminders-init.js.map b/dist/files_reminders-init.js.map index f2e722cb333..04565e46fac 100644 --- a/dist/files_reminders-init.js.map +++ b/dist/files_reminders-init.js.map @@ -1 +1 @@ -{"version":3,"file":"files_reminders-init.js?v=42cbc6a011273fc5222f","mappings":";uBAAIA,ECAAC,EACAC,yECEAC,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,0SAA2S,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kFAAkF,MAAQ,GAAG,SAAW,2IAA2I,eAAiB,CAAC,+zCAAi0C,WAAa,MAEl8D,+ECJIH,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,yDAA0D,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,8EAA8E,MAAQ,GAAG,SAAW,kBAAkB,eAAiB,CAAC,sDAAsD,WAAa,MAEzU,ybCeWC,0FACX,SAAWA,GACPA,EAA2B,WAAI,cAC/BA,EAAyB,SAAI,WAC7BA,EAA4B,YAAI,eAChCA,EAAyB,SAAI,WAChC,CALD,CAKGA,IAAmBA,EAAiB,CAAC,IACxC,MAAMC,EAAwBA,KAC1B,MAAMC,EAAM,IAAIC,KAGhB,OAFAD,EAAIE,SAAS,EAAG,EAAG,EAAG,GACtBF,EAAIG,QAAQH,EAAII,UAAYJ,EAAIK,SAAW,GACpC,IAAIJ,KAAKD,EAAI,EAElBM,EAAWC,IACK,IAAIN,KAAKM,GACjBL,SAAS,EAAG,EAAG,EAAG,GAC5B,MAAMM,EAAiB,IAAIP,KAAKM,EAAKE,cAAe,EAAG,EAAG,EAAG,EAAG,EAAG,GAC7DC,GAAoBH,EAAKI,UAAYH,EAAeG,WAAa,MACvE,OAAOC,KAAKC,MAAMH,EAAmBF,EAAeH,SAAW,GAAK,EAAE,EAW7DS,EAAeC,IACJ,CAChB,CAACjB,EAAekB,YAAa,KACzB,MAAMhB,EAAM,IAAIC,KACVgB,EAAU,IAAIhB,KACpBgB,EAAQf,SAAS,GAAI,EAAG,EAAG,GAC3B,MAAMgB,EAAS,IAAIjB,KAEnB,OADAiB,EAAOhB,SAAS,GAAI,EAAG,EAAG,GACtBF,GAAOkB,EACA,KAEJD,CAAO,EAElB,CAACnB,EAAeqB,UAAW,KACvB,MAAMnB,EAAM,IAAIC,KACVmB,EAAM,IAAInB,KAGhB,OAFAmB,EAAIjB,QAAQH,EAAII,UAAY,GAC5BgB,EAAIlB,SAAS,EAAG,EAAG,EAAG,GACfkB,CAAG,EAEd,CAACtB,EAAeuB,aAAc,KAC1B,MAAMC,EAAQ,IAAIrB,KAClB,GAAI,CACA,EACA,EACA,GACFsB,SAASD,EAAMjB,UACb,OAAO,KAEX,MAAMmB,EAAW,IAAIvB,KACfwB,EAAqB1B,IAG3B,OAFAyB,EAASrB,QAAQsB,EAAmBrB,UAAY,GAChDoB,EAAStB,SAAS,EAAG,EAAG,EAAG,GACpBsB,CAAQ,EAEnB,CAAC1B,EAAe4B,UAAW,KAEvB,GAAuB,KADT,IAAIzB,MACRI,SACN,OAAO,KAEX,MAAMsB,EAAU,IAAI1B,KACdwB,EAAqB1B,IAG3B,OAFA4B,EAAQxB,QAAQsB,EAAmBrB,UAAY,GAC/CuB,EAAQzB,SAAS,EAAG,EAAG,EAAG,GACnByB,CAAO,GAGHZ,MAQVa,EAAiBC,IAC1B,IAAIC,EAAgB,CAChBC,KAAM,UACNC,OAAQ,WAEZ,MAAMV,EAAQ,IAAIrB,KAjEHgC,IAACC,EAAGC,EAqFnB,OArFmBA,EAkEMb,IAlETY,EAkEAL,GAjEPzB,YAAc+B,EAAE/B,WAClB8B,EAAEE,aAAeD,EAAEC,YACnBF,EAAEzB,gBAAkB0B,EAAE1B,iBAgEzBqB,EAAgB,IACTA,EACHO,QAAS,UAzEFC,EAACJ,EAAGC,IACZ7B,EAAQ4B,KAAO5B,EAAQ6B,IACvBD,EAAEzB,gBAAkB0B,EAAE1B,cA0ExB6B,CAAWT,EAASP,KACrBQ,EAAgB,IACTA,EACHS,MAAO,QACPnB,IAAK,YAGTS,EAAQpB,gBAAkBa,EAAMb,gBAChCqB,EAAgB,IACTA,EACHU,KAAM,YAGPX,EAAQY,gBAAeC,EAAAA,EAAAA,MAAsBZ,EAAc,EAEzDa,EAAwBd,IACjC,IAAIC,EAAgB,CAChBS,MAAO,OACPnB,IAAK,UACLiB,QAAS,OACTN,KAAM,UACNC,OAAQ,WAEZ,MAAMV,EAAQ,IAAIrB,KAOlB,OANI4B,EAAQpB,gBAAkBa,EAAMb,gBAChCqB,EAAgB,IACTA,EACHU,KAAM,YAGPX,EAAQY,gBAAeC,EAAAA,EAAAA,MAAsBZ,EAAc,EC9HzDc,GAASC,WAAAA,MACjBC,OAAO,mBACPC,aACAC,kCCFE,MAQMC,EAAcC,MAAOC,EAAQtB,KACtC,MAAMuB,GAAMC,EAAAA,EAAAA,IAAe,wCAAyC,CAAEF,WAItE,aAHuBG,EAAAA,GAAMC,IAAIH,EAAK,CAClCvB,QAASA,EAAQ2B,iBAELC,KAAKC,IAAID,IAAI,EAEpBE,EAAgBT,UACzB,MAAME,GAAMC,EAAAA,EAAAA,IAAe,wCAAyC,CAAEF,WAEtE,aADuBG,EAAAA,GAAMM,OAAOR,IACpBK,KAAKC,IAAID,IAAI,ECzCqO,ECYvPI,EAAAA,GAAIC,OAAO,CACtBC,KAAM,yBACNC,WAAY,CACRC,SAAQ,IACRC,WAAU,IACVC,uBAAsB,IACtBC,SAAQ,IACRC,WAAUA,EAAAA,GAEdZ,KAAIA,KACO,CACHa,UAAMC,EACNC,YAAY,EACZC,QAAQ,EACRC,SAAS,EACTC,cAAe,KACfC,QAAS,IAAI3E,OAGrB4E,SAAU,CACN1B,MAAAA,GACI,OAAO,KAAKmB,KAAKQ,MACrB,EACAC,QAAAA,GACI,OAAO,KAAKT,KAAKU,QACrB,EACAjB,IAAAA,GACI,OAAOkB,EAAAA,EAAAA,IAAE,kBAAmB,gCAAiC,CAAEF,SAAU,KAAKA,UAClF,EACAG,MAAKA,KACMD,EAAAA,EAAAA,IAAE,kBAAmB,sCAEhCE,eAAcA,KACHF,EAAAA,EAAAA,IAAE,kBAAmB,mBAGpCG,QAAS,CACLH,EAAC,KACDrD,cAAa,EAMbyD,IAAAA,CAAKf,GACD,MAAMzC,EAAUyC,EAAKgB,WAAW,qBAAuB,IAAIrF,KAAKqE,EAAKgB,WAAW,sBAAwB,KACxG,KAAKhB,KAAOA,EACZ,KAAKE,WAAae,QAAQ1D,GAC1B,KAAK6C,SAAU,EACf,KAAKD,QAAS,EACd,KAAKE,cAAgB9C,GJsCM2D,MACnC,MAAMxF,EAAM,IAAIC,KACV4B,EAAU,IAAI5B,KAEpB,OADA4B,EAAQ3B,SAASF,EAAIyF,WAAa,EAAG,EAAG,EAAG,GACpC5D,CAAO,EI1C0B2D,GAChC,KAAKZ,QAAU,IAAI3E,KAEnByF,YAAW,KACP,MAAMC,EAAQC,SAASC,eAAe,uBACtCF,EAAMG,QACD,KAAKtB,YACNmB,EAAMI,YACV,GACD,IACP,EACA,eAAMC,GAEF,GAAM,KAAKrB,yBAAyB1E,OAASgG,MAAM,KAAKtB,eAIxD,UACU1B,EAAY,KAAKE,OAAQ,KAAKwB,eACpCd,EAAAA,GAAAA,IAAQ,KAAKS,KAAKgB,WAAY,oBAAqB,KAAKX,cAAcnB,gBACtE0C,EAAAA,EAAAA,IAAK,qBAAsB,KAAK5B,OAChC6B,EAAAA,EAAAA,KAAYlB,EAAAA,EAAAA,IAAE,kBAAmB,gCAAiC,CAAEF,SAAU,KAAKA,YACnF,KAAKqB,SACT,CACA,MAAOC,GACHzD,EAAOyD,MAAM,yBAA0B,CAAEA,WACzCC,EAAAA,EAAAA,KAAUrB,EAAAA,EAAAA,IAAE,kBAAmB,0BACnC,MAbIqB,EAAAA,EAAAA,KAAUrB,EAAAA,EAAAA,IAAE,kBAAmB,qCAcvC,EACA,WAAMsB,GACF,UACU5C,EAAc,KAAKR,QACzBU,EAAAA,GAAAA,IAAQ,KAAKS,KAAKgB,WAAY,oBAAqB,KACnDY,EAAAA,EAAAA,IAAK,qBAAsB,KAAK5B,OAChC6B,EAAAA,EAAAA,KAAYlB,EAAAA,EAAAA,IAAE,kBAAmB,oCAAqC,CAAEF,SAAU,KAAKA,YACvF,KAAKqB,SACT,CACA,MAAOC,GACHzD,EAAOyD,MAAM,2BAA4B,CAAEA,WAC3CC,EAAAA,EAAAA,KAAUrB,EAAAA,EAAAA,IAAE,kBAAmB,4BACnC,CACJ,EACAmB,OAAAA,GACI,KAAK3B,QAAS,EACd,KAAK+B,MAAM,QACf,EACAC,OAAAA,GACI,MAAMd,EAAQC,SAASC,eAAe,uBACtC,KAAKnB,QAAUiB,EAAMe,eACzB,4ICpGJC,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IACxBF,EAAQG,OAAS,SAAc,KAAM,QACrCH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,IAAQM,QAAS,IAAQA,OCL1D,SAXgB,cACd,GFTW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAgC,OAAtBF,EAAIG,MAAMC,YAAoBJ,EAAIzC,OAAQ2C,EAAG,WAAW,CAACG,MAAM,CAAC,KAAOL,EAAInD,KAAK,kBAAiB,EAAK,KAAO,QAAQ,yBAAyB,IAAIyD,GAAG,CAAC,QAAUN,EAAId,SAASqB,YAAYP,EAAIQ,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,WAAW,MAAO,CAACR,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,YAAYC,GAAG,CAAC,MAAQN,EAAId,UAAU,CAACc,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIjC,EAAE,kBAAmB,WAAW,YAAYiC,EAAIW,GAAG,KAAMX,EAAI1C,WAAY4C,EAAG,WAAW,CAACI,GAAG,CAAC,MAAQN,EAAIX,QAAQ,CAACW,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIjC,EAAE,kBAAmB,mBAAmB,YAAYiC,EAAIa,KAAKb,EAAIW,GAAG,KAAKT,EAAG,WAAW,CAACG,MAAM,CAAC,UAAYL,EAAIxC,QAAQ,KAAO,UAAU,KAAO,2BAA2B,cAAc,WAAW,CAACwC,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIjC,EAAE,kBAAmB,iBAAiB,YAAY,EAAE+C,OAAM,IAAO,MAAK,EAAM,aAAa,CAACZ,EAAG,OAAO,CAACa,YAAY,wBAAwBV,MAAM,CAAC,GAAK,4BAA4BC,GAAG,CAAC,OAAS,SAASU,GAAgC,OAAxBA,EAAOC,iBAAwBjB,EAAIlB,UAAUoC,MAAM,KAAMC,UAAU,IAAI,CAACjB,EAAG,yBAAyB,CAACG,MAAM,CAAC,GAAK,sBAAsB,MAAQL,EAAIhC,MAAM,IAAMgC,EAAItC,QAAQ,UAAW,EAAK,KAAO,kBAAkB4C,GAAG,CAAC,MAAQN,EAAIT,SAAS6B,MAAM,CAACC,MAAOrB,EAAIvC,cAAe6D,SAAS,SAAUC,GAAMvB,EAAIvC,cAAc8D,CAAG,EAAEC,WAAW,mBAAmBxB,EAAIW,GAAG,KAAMX,EAAIxC,QAAS0C,EAAG,aAAa,CAACG,MAAM,CAAC,KAAO,SAAS,CAACL,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIjC,EAAE,kBAAmB,oCAAoC,YAAYmC,EAAG,aAAa,CAACG,MAAM,CAAC,UAAYL,EAAIvC,kBAAkB,GAAGyC,EAAG,aAAa,CAACG,MAAM,CAAC,KAAO,UAAU,CAACL,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIjC,EAAE,kBAAmB,sCAAsC,aAAa,KAAKiC,EAAIa,IAC9pD,GACsB,IEUpB,EACA,KACA,WACA,MAI8B,QCI1BY,EAAO9E,EAAAA,GAAIC,OAAO8E,GAClBC,EAAQjD,SAASkD,cAAc,OACrCD,EAAMhJ,GAAK,4BACX+F,SAASmD,KAAKC,YAAYH,GAE1B,MAAMI,EAAsB,IAAIN,EAAK,CACjC5E,KAAM,yBACNmF,GAAIL,IAEKM,EAAkB7E,IAC3B2E,EAAoB5D,KAAKf,GAElB,IAAI8E,SAASC,IAChBJ,EAAoBK,MAAM,QAASD,EAAQ,KCVtCE,EAAS,IAAIC,EAAAA,GAAW,CACjC3J,GAAI,kBACJ4J,OAAQA,KAAM,EACdC,YAAaA,IAAM,GACnBC,MAAQC,IACJ,MAAMtF,EAAOsF,EAAMC,GAAG,GAChBhI,EAAU,IAAI5B,KAAKqE,EAAKgB,WAAW,sBACzC,MAAO,IAAGL,EAAAA,EAAAA,IAAE,kBAAmB,qBAAqBtC,EAAqBd,IAAU,EAEvFiI,cAAeA,IAAMC,EACrBC,QAAUJ,IAEN,GAAqB,IAAjBA,EAAMK,OACN,OAAO,EAEX,MACMpI,EADO+H,EAAMC,GAAG,GACDvE,WAAW,qBAChC,OAAOC,QAAQ1D,EAAQ,EAE3BqB,KAAUgH,MAAC5F,IACP6E,EAAe7E,GACR,MAEX6F,OAAQ,KCrBCZ,EAAS,IAAIC,EAAAA,GAAW,CACjC3J,GAAI,iBACJ6J,YAAaA,KAAMzE,EAAAA,EAAAA,IAAE,kBAAmB,kBACxC0E,MAAQC,IACJ,MAAMtF,EAAOsF,EAAMC,GAAG,GAChBhI,EAAU,IAAI5B,KAAKqE,EAAKgB,WAAW,sBACzC,MAAO,IAAGL,EAAAA,EAAAA,IAAE,kBAAmB,uBAAuBtC,EAAqBd,IAAU,EAEzFiI,cAAeA,mmBACfE,QAAUJ,IAEN,GAAqB,IAAjBA,EAAMK,OACN,OAAO,EAEX,MACMpI,EADO+H,EAAMC,GAAG,GACDvE,WAAW,qBAChC,OAAOC,QAAQ1D,EAAQ,EAE3B,UAAMqI,CAAK5F,GACP,GAAIA,EAAKQ,OACL,IAII,aAHMnB,EAAcW,EAAKQ,QACzBjB,EAAAA,GAAAA,IAAQS,EAAKgB,WAAY,oBAAqB,KAC9CY,EAAAA,EAAAA,IAAK,qBAAsB5B,IACpB,CACX,CACA,MAAO+B,GACH,OAAO,CACX,CAEJ,OAAO,IACX,EACA8D,MAAO,KCpCEC,EAAuB,oBACvBb,EAAS,IAAIC,EAAAA,GAAW,CACjC3J,GAAIuK,EACJV,YAAaA,KAAMzE,EAAAA,EAAAA,IAAE,kBAAmB,gBACxC6E,cAAeA,IAAMC,EACrBC,QAASA,KAAM,EACf9G,KAAUgH,SACC,KAEXC,MAAO,oBCtBP,EAAU,CAAC,EAEf,EAAQvD,kBAAoB,IAC5B,EAAQC,cAAgB,IACxB,EAAQC,OAAS,SAAc,KAAM,QACrC,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OAAnD,MCODoD,EAAa,CACfC,eAAgBxK,EAAekB,WAC/BkE,OAAOD,EAAAA,EAAAA,IAAE,kBAAmB,eAC5BsF,WAAWtF,EAAAA,EAAAA,IAAE,kBAAmB,gCAChCuF,WAAY,GACZC,kBAAmB,IAEjBC,EAAW,CACbJ,eAAgBxK,EAAeqB,SAC/B+D,OAAOD,EAAAA,EAAAA,IAAE,kBAAmB,YAC5BsF,WAAWtF,EAAAA,EAAAA,IAAE,kBAAmB,6BAChCuF,WAAY,GACZC,kBAAmB,IAEjBE,EAAc,CAChBL,eAAgBxK,EAAeuB,YAC/B6D,OAAOD,EAAAA,EAAAA,IAAE,kBAAmB,gBAC5BsF,WAAWtF,EAAAA,EAAAA,IAAE,kBAAmB,iCAChCuF,WAAY,GACZC,kBAAmB,IAEjBG,GAAW,CACbN,eAAgBxK,EAAe4B,SAC/BwD,OAAOD,EAAAA,EAAAA,IAAE,kBAAmB,aAC5BsF,WAAWtF,EAAAA,EAAAA,IAAE,kBAAmB,8BAChCuF,WAAY,GACZC,kBAAmB,IA0CvB,CAACJ,EAAYK,EAAUC,EAAaC,IAAUC,SAASC,IAEnD,MAAM/J,EAAWD,EAAYgK,EAAOR,gBAC/BvJ,IAGL+J,EAAON,WAAa5I,EAAcb,GAClC+J,EAAOL,kBAAoB9H,EAAqB5B,GAEhDgK,aAAY,KACR,MAAMhK,EAAWD,EAAYgK,EAAOR,gBAC/BvJ,IAIL+J,EAAON,WAAa5I,EAAcb,GAClC+J,EAAOL,kBAAoB9H,EAAqB5B,GAAS,GAC1D,MAAe,IAGf,MAAMiK,GAAU,CAACX,EAAYK,EAAUC,EAAaC,IACtDK,KAvDuBH,GACjB,IAAItB,EAAAA,GAAW,CAClB3J,GAAI,gBAAgBiL,EAAOR,iBAC3BZ,YAAaA,IAAM,GAAGoB,EAAO5F,WAAW4F,EAAON,aAC/Cb,MAAOA,IAAM,GAAGmB,EAAOP,eAAeO,EAAOL,oBAE7CX,cAAeA,IAAM,cACrBE,QAASA,IAAMzE,QAAQzE,EAAYgK,EAAOR,iBAC1CY,OAAQd,EACR,UAAMF,CAAK5F,GAEP,IAAKA,EAAKQ,OAGN,OAFAlC,EAAOyD,MAAM,4CACbC,EAAAA,EAAAA,KAAUrB,EAAAA,EAAAA,IAAE,kBAAmB,2BACxB,KAGX,IACI,MAAMlE,EAAWD,EAAYgK,EAAOR,sBAC9BrH,EAAYqB,EAAKQ,OAAQ/D,GAC/B8C,EAAAA,GAAAA,IAAQS,EAAKgB,WAAY,oBAAqBvE,EAASyC,gBACvD0C,EAAAA,EAAAA,IAAK,qBAAsB5B,IAC3B6B,EAAAA,EAAAA,KAAYlB,EAAAA,EAAAA,IAAE,kBAAmB,gCAAiC,CAAEF,SAAUT,EAAKU,WACvF,CACA,MAAOqB,GACHzD,EAAOyD,MAAM,yBAA0B,CAAEA,WACzCC,EAAAA,EAAAA,KAAUrB,EAAAA,EAAAA,IAAE,kBAAmB,0BACnC,CAEA,OAAO,IACX,EACAkF,MAAO,OCtEFZ,GAAS,IAAIC,EAAAA,GAAW,CACjC3J,GAAI,sBACJ6J,YAAaA,KAAMzE,EAAAA,EAAAA,IAAE,kBAAmB,uBACxC0E,MAAOA,KAAM1E,EAAAA,EAAAA,IAAE,kBAAmB,sCAClC6E,cAAeA,ohBACfE,QAASA,KAAM,EACfkB,OAAQd,EACRlH,KAAUgH,MAACiB,IACPhC,EAAegC,GACR,MAGXhB,MAAO,MCXXiB,EAAAA,EAAAA,IAAoB,uBAAwB,CAAEC,GAAI,6BAClDC,EAAAA,EAAAA,IAAmBC,IACnBD,EAAAA,EAAAA,IAAmBE,IACnBF,EAAAA,EAAAA,IAAmBG,IACnBH,EAAAA,EAAAA,IAAmBI,IACnBC,GAAkBd,SAAStB,IAAW+B,EAAAA,EAAAA,IAAmB/B,OC/BrDqC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBvH,IAAjBwH,EACH,OAAOA,EAAaC,QAGrB,IAAIpM,EAASgM,EAAyBE,GAAY,CACjDjM,GAAIiM,EACJG,QAAQ,EACRD,QAAS,CAAC,GAUX,OANAE,EAAoBJ,GAAUK,KAAKvM,EAAOoM,QAASpM,EAAQA,EAAOoM,QAASH,GAG3EjM,EAAOqM,QAAS,EAGTrM,EAAOoM,OACf,CAGAH,EAAoBO,EAAIF,EnB5BpB3M,EAAW,GACfsM,EAAoBQ,EAAI,CAACC,EAAQC,EAAU3E,EAAI4E,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAIpN,EAAS0K,OAAQ0C,IAAK,CACrCJ,EAAWhN,EAASoN,GAAG,GACvB/E,EAAKrI,EAASoN,GAAG,GACjBH,EAAWjN,EAASoN,GAAG,GAE3B,IAJA,IAGIC,GAAY,EACPC,EAAI,EAAGA,EAAIN,EAAStC,OAAQ4C,MACpB,EAAXL,GAAsBC,GAAgBD,IAAaM,OAAOC,KAAKlB,EAAoBQ,GAAGW,OAAOrF,GAASkE,EAAoBQ,EAAE1E,GAAK4E,EAASM,MAC9IN,EAASU,OAAOJ,IAAK,IAErBD,GAAY,EACTJ,EAAWC,IAAcA,EAAeD,IAG7C,GAAGI,EAAW,CACbrN,EAAS0N,OAAON,IAAK,GACrB,IAAIO,EAAItF,SACErD,IAAN2I,IAAiBZ,EAASY,EAC/B,CACD,CACA,OAAOZ,CArBP,CAJCE,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAIpN,EAAS0K,OAAQ0C,EAAI,GAAKpN,EAASoN,EAAI,GAAG,GAAKH,EAAUG,IAAKpN,EAASoN,GAAKpN,EAASoN,EAAI,GACrGpN,EAASoN,GAAK,CAACJ,EAAU3E,EAAI4E,EAuBjB,EoB3BdX,EAAoBsB,EAAKvN,IACxB,IAAIwN,EAASxN,GAAUA,EAAOyN,WAC7B,IAAOzN,EAAiB,QACxB,IAAM,EAEP,OADAiM,EAAoByB,EAAEF,EAAQ,CAAElL,EAAGkL,IAC5BA,CAAM,ECLdvB,EAAoByB,EAAI,CAACtB,EAASuB,KACjC,IAAI,IAAI5F,KAAO4F,EACX1B,EAAoB2B,EAAED,EAAY5F,KAASkE,EAAoB2B,EAAExB,EAASrE,IAC5EmF,OAAOW,eAAezB,EAASrE,EAAK,CAAE+F,YAAY,EAAMC,IAAKJ,EAAW5F,IAE1E,ECNDkE,EAAoB+B,EAAI,CAAC,EAGzB/B,EAAoBgC,EAAKC,GACjB1E,QAAQ2E,IAAIjB,OAAOC,KAAKlB,EAAoB+B,GAAGI,QAAO,CAACC,EAAUtG,KACvEkE,EAAoB+B,EAAEjG,GAAKmG,EAASG,GAC7BA,IACL,KCNJpC,EAAoBqC,EAAKJ,GAEZA,EAAU,IAAMA,EAAU,SAAW,CAAC,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,wBAAwBA,GCH9IjC,EAAoBsC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOjH,MAAQ,IAAIkH,SAAS,cAAb,EAChB,CAAE,MAAOR,GACR,GAAsB,iBAAXS,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBzC,EAAoB2B,EAAI,CAACe,EAAKC,IAAU1B,OAAO2B,UAAUC,eAAevC,KAAKoC,EAAKC,GxBA9EhP,EAAa,CAAC,EACdC,EAAoB,aAExBoM,EAAoB8C,EAAI,CAACvL,EAAKwL,EAAMjH,EAAKmG,KACxC,GAAGtO,EAAW4D,GAAQ5D,EAAW4D,GAAKzD,KAAKiP,OAA3C,CACA,IAAIC,EAAQC,EACZ,QAAWvK,IAARoD,EAEF,IADA,IAAIoH,EAAUnJ,SAASoJ,qBAAqB,UACpCrC,EAAI,EAAGA,EAAIoC,EAAQ9E,OAAQ0C,IAAK,CACvC,IAAIsC,EAAIF,EAAQpC,GAChB,GAAGsC,EAAEC,aAAa,QAAU9L,GAAO6L,EAAEC,aAAa,iBAAmBzP,EAAoBkI,EAAK,CAAEkH,EAASI,EAAG,KAAO,CACpH,CAEGJ,IACHC,GAAa,GACbD,EAASjJ,SAASkD,cAAc,WAEzBqG,QAAU,QACjBN,EAAOO,QAAU,IACbvD,EAAoBR,IACvBwD,EAAOQ,aAAa,QAASxD,EAAoBR,IAElDwD,EAAOQ,aAAa,eAAgB5P,EAAoBkI,GAExDkH,EAAOS,IAAMlM,GAEd5D,EAAW4D,GAAO,CAACwL,GACnB,IAAIW,EAAmB,CAACC,EAAMC,KAE7BZ,EAAOa,QAAUb,EAAOc,OAAS,KACjCC,aAAaR,GACb,IAAIS,EAAUrQ,EAAW4D,GAIzB,UAHO5D,EAAW4D,GAClByL,EAAOiB,YAAcjB,EAAOiB,WAAWC,YAAYlB,GACnDgB,GAAWA,EAAQhF,SAASjD,GAAQA,EAAG6H,KACpCD,EAAM,OAAOA,EAAKC,EAAM,EAExBL,EAAU1J,WAAW6J,EAAiBS,KAAK,UAAMzL,EAAW,CAAE0L,KAAM,UAAWC,OAAQrB,IAAW,MACtGA,EAAOa,QAAUH,EAAiBS,KAAK,KAAMnB,EAAOa,SACpDb,EAAOc,OAASJ,EAAiBS,KAAK,KAAMnB,EAAOc,QACnDb,GAAclJ,SAASuK,KAAKnH,YAAY6F,EApCkB,CAoCX,EyBvChDhD,EAAoBqB,EAAKlB,IACH,oBAAXoE,QAA0BA,OAAOC,aAC1CvD,OAAOW,eAAezB,EAASoE,OAAOC,YAAa,CAAE9H,MAAO,WAE7DuE,OAAOW,eAAezB,EAAS,aAAc,CAAEzD,OAAO,GAAO,ECL9DsD,EAAoByE,IAAO1Q,IAC1BA,EAAO2Q,MAAQ,GACV3Q,EAAO4Q,WAAU5Q,EAAO4Q,SAAW,IACjC5Q,GCHRiM,EAAoBgB,EAAI,WCAxB,IAAI4D,EACA5E,EAAoBsC,EAAEuC,gBAAeD,EAAY5E,EAAoBsC,EAAEwC,SAAW,IACtF,IAAI/K,EAAWiG,EAAoBsC,EAAEvI,SACrC,IAAK6K,GAAa7K,IACbA,EAASgL,eAAkE,WAAjDhL,EAASgL,cAAcC,QAAQC,gBAC5DL,EAAY7K,EAASgL,cAActB,MAC/BmB,GAAW,CACf,IAAI1B,EAAUnJ,EAASoJ,qBAAqB,UAC5C,GAAGD,EAAQ9E,OAEV,IADA,IAAI0C,EAAIoC,EAAQ9E,OAAS,EAClB0C,GAAK,KAAO8D,IAAc,aAAaM,KAAKN,KAAaA,EAAY1B,EAAQpC,KAAK2C,GAE3F,CAID,IAAKmB,EAAW,MAAM,IAAIO,MAAM,yDAChCP,EAAYA,EAAUQ,QAAQ,SAAU,IAAIA,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KAC1GpF,EAAoBqF,EAAIT,YClBxB5E,EAAoB1J,EAAIyD,SAASuL,SAAWC,KAAKT,SAASU,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAGPzF,EAAoB+B,EAAEf,EAAI,CAACiB,EAASG,KAElC,IAAIsD,EAAqB1F,EAAoB2B,EAAE8D,EAAiBxD,GAAWwD,EAAgBxD,QAAWvJ,EACtG,GAA0B,IAAvBgN,EAGF,GAAGA,EACFtD,EAAStO,KAAK4R,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIpI,SAAQ,CAACC,EAASoI,IAAYF,EAAqBD,EAAgBxD,GAAW,CAACzE,EAASoI,KAC1GxD,EAAStO,KAAK4R,EAAmB,GAAKC,GAGtC,IAAIpO,EAAMyI,EAAoBqF,EAAIrF,EAAoBqC,EAAEJ,GAEpDzH,EAAQ,IAAI2K,MAgBhBnF,EAAoB8C,EAAEvL,GAfFqM,IACnB,GAAG5D,EAAoB2B,EAAE8D,EAAiBxD,KAEf,KAD1ByD,EAAqBD,EAAgBxD,MACRwD,EAAgBxD,QAAWvJ,GACrDgN,GAAoB,CACtB,IAAIG,EAAYjC,IAAyB,SAAfA,EAAMQ,KAAkB,UAAYR,EAAMQ,MAChE0B,EAAUlC,GAASA,EAAMS,QAAUT,EAAMS,OAAOZ,IACpDjJ,EAAMuL,QAAU,iBAAmB9D,EAAU,cAAgB4D,EAAY,KAAOC,EAAU,IAC1FtL,EAAMtC,KAAO,iBACbsC,EAAM4J,KAAOyB,EACbrL,EAAMwL,QAAUF,EAChBJ,EAAmB,GAAGlL,EACvB,CACD,GAEwC,SAAWyH,EAASA,EAE/D,CACD,EAWFjC,EAAoBQ,EAAEQ,EAAKiB,GAA0C,IAA7BwD,EAAgBxD,GAGxD,IAAIgE,EAAuB,CAACC,EAA4BtO,KACvD,IAKIqI,EAAUgC,EALVvB,EAAW9I,EAAK,GAChBuO,EAAcvO,EAAK,GACnBwO,EAAUxO,EAAK,GAGIkJ,EAAI,EAC3B,GAAGJ,EAAS2F,MAAMrS,GAAgC,IAAxByR,EAAgBzR,KAAa,CACtD,IAAIiM,KAAYkG,EACZnG,EAAoB2B,EAAEwE,EAAalG,KACrCD,EAAoBO,EAAEN,GAAYkG,EAAYlG,IAGhD,GAAGmG,EAAS,IAAI3F,EAAS2F,EAAQpG,EAClC,CAEA,IADGkG,GAA4BA,EAA2BtO,GACrDkJ,EAAIJ,EAAStC,OAAQ0C,IACzBmB,EAAUvB,EAASI,GAChBd,EAAoB2B,EAAE8D,EAAiBxD,IAAYwD,EAAgBxD,IACrEwD,EAAgBxD,GAAS,KAE1BwD,EAAgBxD,GAAW,EAE5B,OAAOjC,EAAoBQ,EAAEC,EAAO,EAGjC6F,EAAqBf,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1Fe,EAAmBtH,QAAQiH,EAAqB9B,KAAK,KAAM,IAC3DmC,EAAmBxS,KAAOmS,EAAqB9B,KAAK,KAAMmC,EAAmBxS,KAAKqQ,KAAKmC,QCvFvFtG,EAAoBR,QAAK9G,ECGzB,IAAI6N,EAAsBvG,EAAoBQ,OAAE9H,EAAW,CAAC,OAAO,IAAOsH,EAAoB,SAC9FuG,EAAsBvG,EAAoBQ,EAAE+F","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files_reminders/src/actions/setReminderSuggestionActions.scss","webpack:///nextcloud/apps/files_reminders/src/components/SetCustomReminderModal.vue?vue&type=style&index=0&id=5a1353a8&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_reminders/src/shared/utils.ts","webpack:///nextcloud/apps/files_reminders/src/shared/logger.ts","webpack:///nextcloud/apps/files_reminders/src/services/reminderService.ts","webpack:///nextcloud/apps/files_reminders/src/components/SetCustomReminderModal.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files_reminders/src/components/SetCustomReminderModal.vue","webpack://nextcloud/./apps/files_reminders/src/components/SetCustomReminderModal.vue?42df","webpack://nextcloud/./apps/files_reminders/src/components/SetCustomReminderModal.vue?011c","webpack:///nextcloud/apps/files_reminders/src/services/customPicker.ts","webpack:///nextcloud/apps/files_reminders/src/actions/reminderStatusAction.ts","webpack:///nextcloud/apps/files_reminders/src/actions/clearReminderAction.ts","webpack:///nextcloud/apps/files_reminders/src/actions/setReminderMenuAction.ts","webpack://nextcloud/./apps/files_reminders/src/actions/setReminderSuggestionActions.scss?3734","webpack:///nextcloud/apps/files_reminders/src/actions/setReminderSuggestionActions.ts","webpack:///nextcloud/apps/files_reminders/src/actions/setReminderCustomAction.ts","webpack:///nextcloud/apps/files_reminders/src/init.ts","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};","// 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, `.files-list__row-action-set-reminder-custom{margin-top:13px;position:relative}.files-list__row-action-set-reminder-custom::before{content:\"\";margin:3px 10px 3px 15px;border-bottom:1px solid var(--color-border-dark);cursor:default;display:flex;height:0;position:absolute;left:0;right:0;top:-10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_reminders/src/actions/setReminderSuggestionActions.scss\"],\"names\":[],\"mappings\":\"AAuBA,4CACC,eAAA,CACA,iBAAA,CAEA,oDACC,UAAA,CACA,wBAAA,CACA,gDAAA,CACA,cAAA,CACA,YAAA,CACA,QAAA,CACA,iBAAA,CACA,MAAA,CACA,OAAA,CACA,SAAA\",\"sourcesContent\":[\"/**\\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license AGPL-3.0-or-later\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n // TODO: remove when/if the actions API supports a separator\\n // This the last preset action, so we need to add a separator\\n.files-list__row-action-set-reminder-custom {\\n\\tmargin-top: 13px;\\n\\tposition: relative;\\n\\n\\t&::before {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\tmargin: 3px 10px 3px 15px;\\n\\t\\tborder-bottom: 1px solid var(--color-border-dark);\\n\\t\\tcursor: default;\\n\\t\\tdisplay: flex;\\n\\t\\theight: 0;\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t\\ttop: -10px;\\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-reminder-modal[data-v-5a1353a8]{margin:0 12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_reminders/src/components/SetCustomReminderModal.vue\"],\"names\":[],\"mappings\":\"AACA,wCACC,aAAA\",\"sourcesContent\":[\"\\n.custom-reminder-modal {\\n\\tmargin: 0 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getCanonicalLocale } from '@nextcloud/l10n';\nexport var DateTimePreset;\n(function (DateTimePreset) {\n DateTimePreset[\"LaterToday\"] = \"later-today\";\n DateTimePreset[\"Tomorrow\"] = \"tomorrow\";\n DateTimePreset[\"ThisWeekend\"] = \"this-weekend\";\n DateTimePreset[\"NextWeek\"] = \"next-week\";\n})(DateTimePreset || (DateTimePreset = {}));\nconst getFirstWorkdayOfWeek = () => {\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n now.setDate(now.getDate() - now.getDay() + 1);\n return new Date(now);\n};\nconst getWeek = (date) => {\n const dateClone = new Date(date);\n dateClone.setHours(0, 0, 0, 0);\n const firstDayOfYear = new Date(date.getFullYear(), 0, 1, 0, 0, 0, 0);\n const daysFromFirstDay = (date.getTime() - firstDayOfYear.getTime()) / 86400000;\n return Math.ceil((daysFromFirstDay + firstDayOfYear.getDay() + 1) / 7);\n};\nconst isSameWeek = (a, b) => {\n return getWeek(a) === getWeek(b)\n && a.getFullYear() === b.getFullYear();\n};\nconst isSameDate = (a, b) => {\n return a.getDate() === b.getDate()\n && a.getMonth() === b.getMonth()\n && a.getFullYear() === b.getFullYear();\n};\nexport const getDateTime = (dateTime) => {\n const matchPreset = {\n [DateTimePreset.LaterToday]: () => {\n const now = new Date();\n const evening = new Date();\n evening.setHours(18, 0, 0, 0);\n const cutoff = new Date();\n cutoff.setHours(17, 0, 0, 0);\n if (now >= cutoff) {\n return null;\n }\n return evening;\n },\n [DateTimePreset.Tomorrow]: () => {\n const now = new Date();\n const day = new Date();\n day.setDate(now.getDate() + 1);\n day.setHours(8, 0, 0, 0);\n return day;\n },\n [DateTimePreset.ThisWeekend]: () => {\n const today = new Date();\n if ([\n 5, // Friday\n 6, // Saturday\n 0, // Sunday\n ].includes(today.getDay())) {\n return null;\n }\n const saturday = new Date();\n const firstWorkdayOfWeek = getFirstWorkdayOfWeek();\n saturday.setDate(firstWorkdayOfWeek.getDate() + 5);\n saturday.setHours(8, 0, 0, 0);\n return saturday;\n },\n [DateTimePreset.NextWeek]: () => {\n const today = new Date();\n if (today.getDay() === 0) { // Sunday\n return null;\n }\n const workday = new Date();\n const firstWorkdayOfWeek = getFirstWorkdayOfWeek();\n workday.setDate(firstWorkdayOfWeek.getDate() + 7);\n workday.setHours(8, 0, 0, 0);\n return workday;\n },\n };\n return matchPreset[dateTime]();\n};\nexport const getInitialCustomDueDate = () => {\n const now = new Date();\n const dueDate = new Date();\n dueDate.setHours(now.getHours() + 2, 0, 0, 0);\n return dueDate;\n};\nexport const getDateString = (dueDate) => {\n let formatOptions = {\n hour: 'numeric',\n minute: '2-digit',\n };\n const today = new Date();\n if (!isSameDate(dueDate, today)) {\n formatOptions = {\n ...formatOptions,\n weekday: 'short',\n };\n }\n if (!isSameWeek(dueDate, today)) {\n formatOptions = {\n ...formatOptions,\n month: 'short',\n day: 'numeric',\n };\n }\n if (dueDate.getFullYear() !== today.getFullYear()) {\n formatOptions = {\n ...formatOptions,\n year: 'numeric',\n };\n }\n return dueDate.toLocaleString(getCanonicalLocale(), formatOptions);\n};\nexport const getVerboseDateString = (dueDate) => {\n let formatOptions = {\n month: 'long',\n day: 'numeric',\n weekday: 'long',\n hour: 'numeric',\n minute: '2-digit',\n };\n const today = new Date();\n if (dueDate.getFullYear() !== today.getFullYear()) {\n formatOptions = {\n ...formatOptions,\n year: 'numeric',\n };\n }\n return dueDate.toLocaleString(getCanonicalLocale(), formatOptions);\n};\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport const logger = getLoggerBuilder()\n .setApp('files_reminders')\n .detectUser()\n .build();\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nexport const getReminder = async (fileId) => {\n const url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId });\n const response = await axios.get(url);\n const dueDate = response.data.ocs.data.dueDate ? new Date(response.data.ocs.data.dueDate) : null;\n return {\n dueDate,\n };\n};\nexport const setReminder = async (fileId, dueDate) => {\n const url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId });\n const response = await axios.put(url, {\n dueDate: dueDate.toISOString(), // timezone of string is always UTC\n });\n return response.data.ocs.data;\n};\nexport const clearReminder = async (fileId) => {\n const url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId });\n const response = await axios.delete(url);\n return response.data.ocs.data;\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetCustomReminderModal.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetCustomReminderModal.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.opened)?_c('NcDialog',{attrs:{\"name\":_vm.name,\"out-transition\":true,\"size\":\"small\",\"close-on-click-outside\":\"\"},on:{\"closing\":_vm.onClose},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{attrs:{\"type\":\"tertiary\"},on:{\"click\":_vm.onClose}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_reminders', 'Cancel'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.hasDueDate)?_c('NcButton',{on:{\"click\":_vm.clear}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_reminders', 'Clear reminder'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcButton',{attrs:{\"disabled\":!_vm.isValid,\"type\":\"primary\",\"form\":\"set-custom-reminder-form\",\"native-type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_reminders', 'Set reminder'))+\"\\n\\t\\t\")])]},proxy:true}],null,false,2766788902)},[_c('form',{staticClass:\"custom-reminder-modal\",attrs:{\"id\":\"set-custom-reminder-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.setCustom.apply(null, arguments)}}},[_c('NcDateTimePickerNative',{attrs:{\"id\":\"set-custom-reminder\",\"label\":_vm.label,\"min\":_vm.nowDate,\"required\":true,\"type\":\"datetime-local\"},on:{\"input\":_vm.onInput},model:{value:(_vm.customDueDate),callback:function ($$v) {_vm.customDueDate=$$v},expression:\"customDueDate\"}}),_vm._v(\" \"),(_vm.isValid)?_c('NcNoteCard',{attrs:{\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_reminders', 'We will remind you of this file'))+\"\\n\\t\\t\\t\"),_c('NcDateTime',{attrs:{\"timestamp\":_vm.customDueDate}})],1):_c('NcNoteCard',{attrs:{\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_reminders', 'Please choose a valid date & time'))+\"\\n\\t\\t\")])],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./SetCustomReminderModal.vue?vue&type=style&index=0&id=5a1353a8&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetCustomReminderModal.vue?vue&type=style&index=0&id=5a1353a8&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SetCustomReminderModal.vue?vue&type=template&id=5a1353a8&scoped=true\"\nimport script from \"./SetCustomReminderModal.vue?vue&type=script&lang=ts\"\nexport * from \"./SetCustomReminderModal.vue?vue&type=script&lang=ts\"\nimport style0 from \"./SetCustomReminderModal.vue?vue&type=style&index=0&id=5a1353a8&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 \"5a1353a8\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue';\nimport SetCustomReminderModal from '../components/SetCustomReminderModal.vue';\nconst View = Vue.extend(SetCustomReminderModal);\nconst mount = document.createElement('div');\nmount.id = 'set-custom-reminder-modal';\ndocument.body.appendChild(mount);\n// Create a new Vue instance and mount it to our modal container\nconst CustomReminderModal = new View({\n name: 'SetCustomReminderModal',\n el: mount,\n});\nexport const pickCustomDate = (node) => {\n CustomReminderModal.open(node);\n // Wait for the modal to close\n return new Promise((resolve) => {\n CustomReminderModal.$once('close', resolve);\n });\n};\n","/**\n * @copyright 2024 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport AlarmSvg from '@mdi/svg/svg/alarm.svg?raw';\nimport { pickCustomDate } from '../services/customPicker.ts';\nimport { getVerboseDateString } from '../shared/utils.ts';\nexport const action = new FileAction({\n id: 'reminder-status',\n inline: () => true,\n displayName: () => '',\n title: (nodes) => {\n const node = nodes.at(0);\n const dueDate = new Date(node.attributes['reminder-due-date']);\n return `${t('files_reminders', 'Reminder set')} – ${getVerboseDateString(dueDate)}`;\n },\n iconSvgInline: () => AlarmSvg,\n enabled: (nodes) => {\n // Only allow on a single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes.at(0);\n const dueDate = node.attributes['reminder-due-date'];\n return Boolean(dueDate);\n },\n async exec(node) {\n pickCustomDate(node);\n return null;\n },\n order: -15,\n});\n","/**\n * @copyright 2024 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue';\nimport { FileAction } from '@nextcloud/files';\nimport { emit } from '@nextcloud/event-bus';\nimport { translate as t } from '@nextcloud/l10n';\nimport AlarmOffSvg from '@mdi/svg/svg/alarm-off.svg?raw';\nimport { clearReminder } from '../services/reminderService.ts';\nimport { getVerboseDateString } from '../shared/utils.ts';\nexport const action = new FileAction({\n id: 'clear-reminder',\n displayName: () => t('files_reminders', 'Clear reminder'),\n title: (nodes) => {\n const node = nodes.at(0);\n const dueDate = new Date(node.attributes['reminder-due-date']);\n return `${t('files_reminders', 'Clear reminder')} – ${getVerboseDateString(dueDate)}`;\n },\n iconSvgInline: () => AlarmOffSvg,\n enabled: (nodes) => {\n // Only allow on a single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes.at(0);\n const dueDate = node.attributes['reminder-due-date'];\n return Boolean(dueDate);\n },\n async exec(node) {\n if (node.fileid) {\n try {\n await clearReminder(node.fileid);\n Vue.set(node.attributes, 'reminder-due-date', '');\n emit('files:node:updated', node);\n return true;\n }\n catch (error) {\n return false;\n }\n }\n return null;\n },\n order: 19,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport AlarmSvg from '@mdi/svg/svg/alarm.svg?raw';\nexport const SET_REMINDER_MENU_ID = 'set-reminder-menu';\nexport const action = new FileAction({\n id: SET_REMINDER_MENU_ID,\n displayName: () => t('files_reminders', 'Set reminder'),\n iconSvgInline: () => AlarmSvg,\n enabled: () => true,\n async exec() {\n return null;\n },\n order: 20,\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/sass-loader/dist/cjs.js!./setReminderSuggestionActions.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./setReminderSuggestionActions.scss\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue';\nimport { FileAction } from '@nextcloud/files';\nimport { emit } from '@nextcloud/event-bus';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport { DateTimePreset, getDateString, getDateTime, getVerboseDateString } from '../shared/utils';\nimport { logger } from '../shared/logger';\nimport { SET_REMINDER_MENU_ID } from './setReminderMenuAction';\nimport { setReminder } from '../services/reminderService';\nimport './setReminderSuggestionActions.scss';\nconst laterToday = {\n dateTimePreset: DateTimePreset.LaterToday,\n label: t('files_reminders', 'Later today'),\n ariaLabel: t('files_reminders', 'Set reminder for later today'),\n dateString: '',\n verboseDateString: ''\n};\nconst tomorrow = {\n dateTimePreset: DateTimePreset.Tomorrow,\n label: t('files_reminders', 'Tomorrow'),\n ariaLabel: t('files_reminders', 'Set reminder for tomorrow'),\n dateString: '',\n verboseDateString: ''\n};\nconst thisWeekend = {\n dateTimePreset: DateTimePreset.ThisWeekend,\n label: t('files_reminders', 'This weekend'),\n ariaLabel: t('files_reminders', 'Set reminder for this weekend'),\n dateString: '',\n verboseDateString: ''\n};\nconst nextWeek = {\n dateTimePreset: DateTimePreset.NextWeek,\n label: t('files_reminders', 'Next week'),\n ariaLabel: t('files_reminders', 'Set reminder for next week'),\n dateString: '',\n verboseDateString: ''\n};\n/**\n * Generate a file action for the given option\n *\n * @param option The option to generate the action for\n * @return The file action or null if the option should not be shown\n */\nconst generateFileAction = (option) => {\n return new FileAction({\n id: `set-reminder-${option.dateTimePreset}`,\n displayName: () => `${option.label} – ${option.dateString}`,\n title: () => `${option.ariaLabel} – ${option.verboseDateString}`,\n // Empty svg to hide the icon\n iconSvgInline: () => '<svg></svg>',\n enabled: () => Boolean(getDateTime(option.dateTimePreset)),\n parent: SET_REMINDER_MENU_ID,\n async exec(node) {\n // Can't really happen, but just in case™\n if (!node.fileid) {\n logger.error('Failed to set reminder, missing file id');\n showError(t('files_reminders', 'Failed to set reminder'));\n return null;\n }\n // Set the reminder\n try {\n const dateTime = getDateTime(option.dateTimePreset);\n await setReminder(node.fileid, dateTime);\n Vue.set(node.attributes, 'reminder-due-date', dateTime.toISOString());\n emit('files:node:updated', node);\n showSuccess(t('files_reminders', 'Reminder set for \"{fileName}\"', { fileName: node.basename }));\n }\n catch (error) {\n logger.error('Failed to set reminder', { error });\n showError(t('files_reminders', 'Failed to set reminder'));\n }\n // Silent success as we display our own notification\n return null;\n },\n order: 21,\n });\n};\n[laterToday, tomorrow, thisWeekend, nextWeek].forEach((option) => {\n // Generate the initial date string\n const dateTime = getDateTime(option.dateTimePreset);\n if (!dateTime) {\n return;\n }\n option.dateString = getDateString(dateTime);\n option.verboseDateString = getVerboseDateString(dateTime);\n // Update the date string every 30 minutes\n setInterval(() => {\n const dateTime = getDateTime(option.dateTimePreset);\n if (!dateTime) {\n return;\n }\n // update the submenu remind options strings\n option.dateString = getDateString(dateTime);\n option.verboseDateString = getVerboseDateString(dateTime);\n }, 1000 * 30 * 60);\n});\n// Generate the default preset actions\nexport const actions = [laterToday, tomorrow, thisWeekend, nextWeek]\n .map(generateFileAction);\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { FileAction, Node } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport CalendarClockSvg from '@mdi/svg/svg/calendar-clock.svg?raw';\nimport { SET_REMINDER_MENU_ID } from './setReminderMenuAction';\nimport { pickCustomDate } from '../services/customPicker';\nexport const action = new FileAction({\n id: 'set-reminder-custom',\n displayName: () => t('files_reminders', 'Set custom reminder'),\n title: () => t('files_reminders', 'Set reminder at custom date & time'),\n iconSvgInline: () => CalendarClockSvg,\n enabled: () => true,\n parent: SET_REMINDER_MENU_ID,\n async exec(file) {\n pickCustomDate(file);\n return null;\n },\n // After presets\n order: 22,\n});\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { registerDavProperty, registerFileAction } from '@nextcloud/files';\nimport { action as statusAction } from './actions/reminderStatusAction';\nimport { action as clearAction } from './actions/clearReminderAction';\nimport { action as menuAction } from './actions/setReminderMenuAction';\nimport { actions as suggestionActions } from './actions/setReminderSuggestionActions';\nimport { action as customAction } from './actions/setReminderCustomAction';\nregisterDavProperty('nc:reminder-due-date', { nc: 'http://nextcloud.org/ns' });\nregisterFileAction(statusAction);\nregisterFileAction(clearAction);\nregisterFileAction(menuAction);\nregisterFileAction(customAction);\nsuggestionActions.forEach((action) => registerFileAction(action));\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 + \"-\" + chunkId + \".js?v=\" + {\"2441\":\"bd6d3dc836e836cd4795\",\"5775\":\"bdb5a44b157eaff757ea\",\"5862\":\"18c97d281a8207f0ce8d\"}[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 = 9735;","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 && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__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\t9735: 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__(91410)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","___CSS_LOADER_EXPORT___","push","module","id","DateTimePreset","getFirstWorkdayOfWeek","now","Date","setHours","setDate","getDate","getDay","getWeek","date","firstDayOfYear","getFullYear","daysFromFirstDay","getTime","Math","ceil","getDateTime","dateTime","LaterToday","evening","cutoff","Tomorrow","day","ThisWeekend","today","includes","saturday","firstWorkdayOfWeek","NextWeek","workday","getDateString","dueDate","formatOptions","hour","minute","isSameDate","a","b","getMonth","weekday","isSameWeek","month","year","toLocaleString","getCanonicalLocale","getVerboseDateString","logger","getLoggerBuilder","setApp","detectUser","build","setReminder","async","fileId","url","generateOcsUrl","axios","put","toISOString","data","ocs","clearReminder","delete","Vue","extend","name","components","NcButton","NcDateTime","NcDateTimePickerNative","NcDialog","NcNoteCard","node","undefined","hasDueDate","opened","isValid","customDueDate","nowDate","computed","fileid","fileName","basename","t","label","clearAriaLabel","methods","open","attributes","Boolean","getInitialCustomDueDate","getHours","setTimeout","input","document","getElementById","focus","showPicker","setCustom","isNaN","emit","showSuccess","onClose","error","showError","clear","$emit","onInput","checkValidity","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","_setupProxy","attrs","on","scopedSlots","_u","key","fn","_v","_s","_e","proxy","staticClass","$event","preventDefault","apply","arguments","model","value","callback","$$v","expression","View","SetCustomReminderModal","mount","createElement","body","appendChild","CustomReminderModal","el","pickCustomDate","Promise","resolve","$once","action","FileAction","inline","displayName","title","nodes","at","iconSvgInline","AlarmSvg","enabled","length","exec","order","SET_REMINDER_MENU_ID","laterToday","dateTimePreset","ariaLabel","dateString","verboseDateString","tomorrow","thisWeekend","nextWeek","forEach","option","setInterval","actions","map","parent","file","registerDavProperty","nc","registerFileAction","statusAction","clearAction","menuAction","customAction","suggestionActions","__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","definition","o","defineProperty","enumerable","get","f","e","chunkId","all","reduce","promises","u","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","timeout","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","type","target","head","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","baseURI","self","href","installedChunks","installedChunkData","promise","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"files_reminders-init.js?v=8de22a1d71d4351e8fd7","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files_reminders/src/actions/setReminderSuggestionActions.scss","webpack:///nextcloud/apps/files_reminders/src/components/SetCustomReminderModal.vue?vue&type=style&index=0&id=5a1353a8&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_reminders/src/shared/utils.ts","webpack:///nextcloud/apps/files_reminders/src/shared/logger.ts","webpack:///nextcloud/apps/files_reminders/src/services/reminderService.ts","webpack:///nextcloud/apps/files_reminders/src/components/SetCustomReminderModal.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files_reminders/src/components/SetCustomReminderModal.vue","webpack://nextcloud/./apps/files_reminders/src/components/SetCustomReminderModal.vue?42df","webpack://nextcloud/./apps/files_reminders/src/components/SetCustomReminderModal.vue?011c","webpack:///nextcloud/apps/files_reminders/src/services/customPicker.ts","webpack:///nextcloud/apps/files_reminders/src/actions/reminderStatusAction.ts","webpack:///nextcloud/apps/files_reminders/src/actions/clearReminderAction.ts","webpack:///nextcloud/apps/files_reminders/src/actions/setReminderMenuAction.ts","webpack://nextcloud/./apps/files_reminders/src/actions/setReminderSuggestionActions.scss?3734","webpack:///nextcloud/apps/files_reminders/src/actions/setReminderSuggestionActions.ts","webpack:///nextcloud/apps/files_reminders/src/actions/setReminderCustomAction.ts","webpack:///nextcloud/apps/files_reminders/src/init.ts","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};","// 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, `.files-list__row-action-set-reminder-custom{margin-top:13px;position:relative}.files-list__row-action-set-reminder-custom::before{content:\"\";margin:3px 10px 3px 15px;border-bottom:1px solid var(--color-border-dark);cursor:default;display:flex;height:0;position:absolute;left:0;right:0;top:-10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_reminders/src/actions/setReminderSuggestionActions.scss\"],\"names\":[],\"mappings\":\"AAuBA,4CACC,eAAA,CACA,iBAAA,CAEA,oDACC,UAAA,CACA,wBAAA,CACA,gDAAA,CACA,cAAA,CACA,YAAA,CACA,QAAA,CACA,iBAAA,CACA,MAAA,CACA,OAAA,CACA,SAAA\",\"sourcesContent\":[\"/**\\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license AGPL-3.0-or-later\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n // TODO: remove when/if the actions API supports a separator\\n // This the last preset action, so we need to add a separator\\n.files-list__row-action-set-reminder-custom {\\n\\tmargin-top: 13px;\\n\\tposition: relative;\\n\\n\\t&::before {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\tmargin: 3px 10px 3px 15px;\\n\\t\\tborder-bottom: 1px solid var(--color-border-dark);\\n\\t\\tcursor: default;\\n\\t\\tdisplay: flex;\\n\\t\\theight: 0;\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t\\ttop: -10px;\\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-reminder-modal[data-v-5a1353a8]{margin:0 12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_reminders/src/components/SetCustomReminderModal.vue\"],\"names\":[],\"mappings\":\"AACA,wCACC,aAAA\",\"sourcesContent\":[\"\\n.custom-reminder-modal {\\n\\tmargin: 0 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getCanonicalLocale } from '@nextcloud/l10n';\nexport var DateTimePreset;\n(function (DateTimePreset) {\n DateTimePreset[\"LaterToday\"] = \"later-today\";\n DateTimePreset[\"Tomorrow\"] = \"tomorrow\";\n DateTimePreset[\"ThisWeekend\"] = \"this-weekend\";\n DateTimePreset[\"NextWeek\"] = \"next-week\";\n})(DateTimePreset || (DateTimePreset = {}));\nconst getFirstWorkdayOfWeek = () => {\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n now.setDate(now.getDate() - now.getDay() + 1);\n return new Date(now);\n};\nconst getWeek = (date) => {\n const dateClone = new Date(date);\n dateClone.setHours(0, 0, 0, 0);\n const firstDayOfYear = new Date(date.getFullYear(), 0, 1, 0, 0, 0, 0);\n const daysFromFirstDay = (date.getTime() - firstDayOfYear.getTime()) / 86400000;\n return Math.ceil((daysFromFirstDay + firstDayOfYear.getDay() + 1) / 7);\n};\nconst isSameWeek = (a, b) => {\n return getWeek(a) === getWeek(b)\n && a.getFullYear() === b.getFullYear();\n};\nconst isSameDate = (a, b) => {\n return a.getDate() === b.getDate()\n && a.getMonth() === b.getMonth()\n && a.getFullYear() === b.getFullYear();\n};\nexport const getDateTime = (dateTime) => {\n const matchPreset = {\n [DateTimePreset.LaterToday]: () => {\n const now = new Date();\n const evening = new Date();\n evening.setHours(18, 0, 0, 0);\n const cutoff = new Date();\n cutoff.setHours(17, 0, 0, 0);\n if (now >= cutoff) {\n return null;\n }\n return evening;\n },\n [DateTimePreset.Tomorrow]: () => {\n const now = new Date();\n const day = new Date();\n day.setDate(now.getDate() + 1);\n day.setHours(8, 0, 0, 0);\n return day;\n },\n [DateTimePreset.ThisWeekend]: () => {\n const today = new Date();\n if ([\n 5, // Friday\n 6, // Saturday\n 0, // Sunday\n ].includes(today.getDay())) {\n return null;\n }\n const saturday = new Date();\n const firstWorkdayOfWeek = getFirstWorkdayOfWeek();\n saturday.setDate(firstWorkdayOfWeek.getDate() + 5);\n saturday.setHours(8, 0, 0, 0);\n return saturday;\n },\n [DateTimePreset.NextWeek]: () => {\n const today = new Date();\n if (today.getDay() === 0) { // Sunday\n return null;\n }\n const workday = new Date();\n const firstWorkdayOfWeek = getFirstWorkdayOfWeek();\n workday.setDate(firstWorkdayOfWeek.getDate() + 7);\n workday.setHours(8, 0, 0, 0);\n return workday;\n },\n };\n return matchPreset[dateTime]();\n};\nexport const getInitialCustomDueDate = () => {\n const now = new Date();\n const dueDate = new Date();\n dueDate.setHours(now.getHours() + 2, 0, 0, 0);\n return dueDate;\n};\nexport const getDateString = (dueDate) => {\n let formatOptions = {\n hour: 'numeric',\n minute: '2-digit',\n };\n const today = new Date();\n if (!isSameDate(dueDate, today)) {\n formatOptions = {\n ...formatOptions,\n weekday: 'short',\n };\n }\n if (!isSameWeek(dueDate, today)) {\n formatOptions = {\n ...formatOptions,\n month: 'short',\n day: 'numeric',\n };\n }\n if (dueDate.getFullYear() !== today.getFullYear()) {\n formatOptions = {\n ...formatOptions,\n year: 'numeric',\n };\n }\n return dueDate.toLocaleString(getCanonicalLocale(), formatOptions);\n};\nexport const getVerboseDateString = (dueDate) => {\n let formatOptions = {\n month: 'long',\n day: 'numeric',\n weekday: 'long',\n hour: 'numeric',\n minute: '2-digit',\n };\n const today = new Date();\n if (dueDate.getFullYear() !== today.getFullYear()) {\n formatOptions = {\n ...formatOptions,\n year: 'numeric',\n };\n }\n return dueDate.toLocaleString(getCanonicalLocale(), formatOptions);\n};\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport const logger = getLoggerBuilder()\n .setApp('files_reminders')\n .detectUser()\n .build();\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nexport const getReminder = async (fileId) => {\n const url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId });\n const response = await axios.get(url);\n const dueDate = response.data.ocs.data.dueDate ? new Date(response.data.ocs.data.dueDate) : null;\n return {\n dueDate,\n };\n};\nexport const setReminder = async (fileId, dueDate) => {\n const url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId });\n const response = await axios.put(url, {\n dueDate: dueDate.toISOString(), // timezone of string is always UTC\n });\n return response.data.ocs.data;\n};\nexport const clearReminder = async (fileId) => {\n const url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId });\n const response = await axios.delete(url);\n return response.data.ocs.data;\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetCustomReminderModal.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetCustomReminderModal.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.opened)?_c('NcDialog',{attrs:{\"name\":_vm.name,\"out-transition\":true,\"size\":\"small\",\"close-on-click-outside\":\"\"},on:{\"closing\":_vm.onClose},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{attrs:{\"type\":\"tertiary\"},on:{\"click\":_vm.onClose}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_reminders', 'Cancel'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.hasDueDate)?_c('NcButton',{on:{\"click\":_vm.clear}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_reminders', 'Clear reminder'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcButton',{attrs:{\"disabled\":!_vm.isValid,\"type\":\"primary\",\"form\":\"set-custom-reminder-form\",\"native-type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_reminders', 'Set reminder'))+\"\\n\\t\\t\")])]},proxy:true}],null,false,2766788902)},[_c('form',{staticClass:\"custom-reminder-modal\",attrs:{\"id\":\"set-custom-reminder-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.setCustom.apply(null, arguments)}}},[_c('NcDateTimePickerNative',{attrs:{\"id\":\"set-custom-reminder\",\"label\":_vm.label,\"min\":_vm.nowDate,\"required\":true,\"type\":\"datetime-local\"},on:{\"input\":_vm.onInput},model:{value:(_vm.customDueDate),callback:function ($$v) {_vm.customDueDate=$$v},expression:\"customDueDate\"}}),_vm._v(\" \"),(_vm.isValid)?_c('NcNoteCard',{attrs:{\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_reminders', 'We will remind you of this file'))+\"\\n\\t\\t\\t\"),_c('NcDateTime',{attrs:{\"timestamp\":_vm.customDueDate}})],1):_c('NcNoteCard',{attrs:{\"type\":\"error\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_reminders', 'Please choose a valid date & time'))+\"\\n\\t\\t\")])],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./SetCustomReminderModal.vue?vue&type=style&index=0&id=5a1353a8&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetCustomReminderModal.vue?vue&type=style&index=0&id=5a1353a8&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SetCustomReminderModal.vue?vue&type=template&id=5a1353a8&scoped=true\"\nimport script from \"./SetCustomReminderModal.vue?vue&type=script&lang=ts\"\nexport * from \"./SetCustomReminderModal.vue?vue&type=script&lang=ts\"\nimport style0 from \"./SetCustomReminderModal.vue?vue&type=style&index=0&id=5a1353a8&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 \"5a1353a8\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue';\nimport SetCustomReminderModal from '../components/SetCustomReminderModal.vue';\nconst View = Vue.extend(SetCustomReminderModal);\nconst mount = document.createElement('div');\nmount.id = 'set-custom-reminder-modal';\ndocument.body.appendChild(mount);\n// Create a new Vue instance and mount it to our modal container\nconst CustomReminderModal = new View({\n name: 'SetCustomReminderModal',\n el: mount,\n});\nexport const pickCustomDate = (node) => {\n CustomReminderModal.open(node);\n // Wait for the modal to close\n return new Promise((resolve) => {\n CustomReminderModal.$once('close', resolve);\n });\n};\n","/**\n * @copyright 2024 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport AlarmSvg from '@mdi/svg/svg/alarm.svg?raw';\nimport { pickCustomDate } from '../services/customPicker.ts';\nimport { getVerboseDateString } from '../shared/utils.ts';\nexport const action = new FileAction({\n id: 'reminder-status',\n inline: () => true,\n displayName: () => '',\n title: (nodes) => {\n const node = nodes.at(0);\n const dueDate = new Date(node.attributes['reminder-due-date']);\n return `${t('files_reminders', 'Reminder set')} – ${getVerboseDateString(dueDate)}`;\n },\n iconSvgInline: () => AlarmSvg,\n enabled: (nodes) => {\n // Only allow on a single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes.at(0);\n const dueDate = node.attributes['reminder-due-date'];\n return Boolean(dueDate);\n },\n async exec(node) {\n pickCustomDate(node);\n return null;\n },\n order: -15,\n});\n","/**\n * @copyright 2024 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue';\nimport { FileAction } from '@nextcloud/files';\nimport { emit } from '@nextcloud/event-bus';\nimport { translate as t } from '@nextcloud/l10n';\nimport AlarmOffSvg from '@mdi/svg/svg/alarm-off.svg?raw';\nimport { clearReminder } from '../services/reminderService.ts';\nimport { getVerboseDateString } from '../shared/utils.ts';\nexport const action = new FileAction({\n id: 'clear-reminder',\n displayName: () => t('files_reminders', 'Clear reminder'),\n title: (nodes) => {\n const node = nodes.at(0);\n const dueDate = new Date(node.attributes['reminder-due-date']);\n return `${t('files_reminders', 'Clear reminder')} – ${getVerboseDateString(dueDate)}`;\n },\n iconSvgInline: () => AlarmOffSvg,\n enabled: (nodes) => {\n // Only allow on a single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes.at(0);\n const dueDate = node.attributes['reminder-due-date'];\n return Boolean(dueDate);\n },\n async exec(node) {\n if (node.fileid) {\n try {\n await clearReminder(node.fileid);\n Vue.set(node.attributes, 'reminder-due-date', '');\n emit('files:node:updated', node);\n return true;\n }\n catch (error) {\n return false;\n }\n }\n return null;\n },\n order: 19,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport AlarmSvg from '@mdi/svg/svg/alarm.svg?raw';\nexport const SET_REMINDER_MENU_ID = 'set-reminder-menu';\nexport const action = new FileAction({\n id: SET_REMINDER_MENU_ID,\n displayName: () => t('files_reminders', 'Set reminder'),\n iconSvgInline: () => AlarmSvg,\n enabled: (nodes, view) => {\n if (view.id === 'trashbin') {\n return false;\n }\n // Only allow on a single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes.at(0);\n const dueDate = node.attributes['reminder-due-date'];\n return dueDate !== undefined;\n },\n async exec() {\n return null;\n },\n order: 20,\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/sass-loader/dist/cjs.js!./setReminderSuggestionActions.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./setReminderSuggestionActions.scss\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue';\nimport { FileAction } from '@nextcloud/files';\nimport { emit } from '@nextcloud/event-bus';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport { DateTimePreset, getDateString, getDateTime, getVerboseDateString } from '../shared/utils';\nimport { logger } from '../shared/logger';\nimport { SET_REMINDER_MENU_ID } from './setReminderMenuAction';\nimport { setReminder } from '../services/reminderService';\nimport './setReminderSuggestionActions.scss';\nconst laterToday = {\n dateTimePreset: DateTimePreset.LaterToday,\n label: t('files_reminders', 'Later today'),\n ariaLabel: t('files_reminders', 'Set reminder for later today'),\n dateString: '',\n verboseDateString: ''\n};\nconst tomorrow = {\n dateTimePreset: DateTimePreset.Tomorrow,\n label: t('files_reminders', 'Tomorrow'),\n ariaLabel: t('files_reminders', 'Set reminder for tomorrow'),\n dateString: '',\n verboseDateString: ''\n};\nconst thisWeekend = {\n dateTimePreset: DateTimePreset.ThisWeekend,\n label: t('files_reminders', 'This weekend'),\n ariaLabel: t('files_reminders', 'Set reminder for this weekend'),\n dateString: '',\n verboseDateString: ''\n};\nconst nextWeek = {\n dateTimePreset: DateTimePreset.NextWeek,\n label: t('files_reminders', 'Next week'),\n ariaLabel: t('files_reminders', 'Set reminder for next week'),\n dateString: '',\n verboseDateString: ''\n};\n/**\n * Generate a file action for the given option\n *\n * @param option The option to generate the action for\n * @return The file action or null if the option should not be shown\n */\nconst generateFileAction = (option) => {\n return new FileAction({\n id: `set-reminder-${option.dateTimePreset}`,\n displayName: () => `${option.label} – ${option.dateString}`,\n title: () => `${option.ariaLabel} – ${option.verboseDateString}`,\n // Empty svg to hide the icon\n iconSvgInline: () => '<svg></svg>',\n enabled: (nodes, view) => {\n if (view.id === 'trashbin') {\n return false;\n }\n // Only allow on a single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes.at(0);\n const dueDate = node.attributes['reminder-due-date'];\n return dueDate !== undefined && Boolean(getDateTime(option.dateTimePreset));\n },\n parent: SET_REMINDER_MENU_ID,\n async exec(node) {\n // Can't really happen, but just in case™\n if (!node.fileid) {\n logger.error('Failed to set reminder, missing file id');\n showError(t('files_reminders', 'Failed to set reminder'));\n return null;\n }\n // Set the reminder\n try {\n const dateTime = getDateTime(option.dateTimePreset);\n await setReminder(node.fileid, dateTime);\n Vue.set(node.attributes, 'reminder-due-date', dateTime.toISOString());\n emit('files:node:updated', node);\n showSuccess(t('files_reminders', 'Reminder set for \"{fileName}\"', { fileName: node.basename }));\n }\n catch (error) {\n logger.error('Failed to set reminder', { error });\n showError(t('files_reminders', 'Failed to set reminder'));\n }\n // Silent success as we display our own notification\n return null;\n },\n order: 21,\n });\n};\n[laterToday, tomorrow, thisWeekend, nextWeek].forEach((option) => {\n // Generate the initial date string\n const dateTime = getDateTime(option.dateTimePreset);\n if (!dateTime) {\n return;\n }\n option.dateString = getDateString(dateTime);\n option.verboseDateString = getVerboseDateString(dateTime);\n // Update the date string every 30 minutes\n setInterval(() => {\n const dateTime = getDateTime(option.dateTimePreset);\n if (!dateTime) {\n return;\n }\n // update the submenu remind options strings\n option.dateString = getDateString(dateTime);\n option.verboseDateString = getVerboseDateString(dateTime);\n }, 1000 * 30 * 60);\n});\n// Generate the default preset actions\nexport const actions = [laterToday, tomorrow, thisWeekend, nextWeek]\n .map(generateFileAction);\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport CalendarClockSvg from '@mdi/svg/svg/calendar-clock.svg?raw';\nimport { SET_REMINDER_MENU_ID } from './setReminderMenuAction';\nimport { pickCustomDate } from '../services/customPicker';\nexport const action = new FileAction({\n id: 'set-reminder-custom',\n displayName: () => t('files_reminders', 'Set custom reminder'),\n title: () => t('files_reminders', 'Set reminder at custom date & time'),\n iconSvgInline: () => CalendarClockSvg,\n enabled: (nodes, view) => {\n if (view.id === 'trashbin') {\n return false;\n }\n // Only allow on a single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes.at(0);\n const dueDate = node.attributes['reminder-due-date'];\n return dueDate !== undefined;\n },\n parent: SET_REMINDER_MENU_ID,\n async exec(file) {\n pickCustomDate(file);\n return null;\n },\n // After presets\n order: 22,\n});\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { registerDavProperty, registerFileAction } from '@nextcloud/files';\nimport { action as statusAction } from './actions/reminderStatusAction';\nimport { action as clearAction } from './actions/clearReminderAction';\nimport { action as menuAction } from './actions/setReminderMenuAction';\nimport { actions as suggestionActions } from './actions/setReminderSuggestionActions';\nimport { action as customAction } from './actions/setReminderCustomAction';\nregisterDavProperty('nc:reminder-due-date', { nc: 'http://nextcloud.org/ns' });\nregisterFileAction(statusAction);\nregisterFileAction(clearAction);\nregisterFileAction(menuAction);\nregisterFileAction(customAction);\nsuggestionActions.forEach((action) => registerFileAction(action));\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 + \"-\" + chunkId + \".js?v=\" + {\"2441\":\"bd6d3dc836e836cd4795\",\"5775\":\"bdb5a44b157eaff757ea\",\"5862\":\"18c97d281a8207f0ce8d\"}[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 = 9735;","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 && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__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\t9735: 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__(91410)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","___CSS_LOADER_EXPORT___","push","module","id","DateTimePreset","getFirstWorkdayOfWeek","now","Date","setHours","setDate","getDate","getDay","getWeek","date","firstDayOfYear","getFullYear","daysFromFirstDay","getTime","Math","ceil","getDateTime","dateTime","LaterToday","evening","cutoff","Tomorrow","day","ThisWeekend","today","includes","saturday","firstWorkdayOfWeek","NextWeek","workday","getDateString","dueDate","formatOptions","hour","minute","isSameDate","a","b","getMonth","weekday","isSameWeek","month","year","toLocaleString","getCanonicalLocale","getVerboseDateString","logger","getLoggerBuilder","setApp","detectUser","build","setReminder","async","fileId","url","generateOcsUrl","axios","put","toISOString","data","ocs","clearReminder","delete","Vue","extend","name","components","NcButton","NcDateTime","NcDateTimePickerNative","NcDialog","NcNoteCard","node","undefined","hasDueDate","opened","isValid","customDueDate","nowDate","computed","fileid","fileName","basename","t","label","clearAriaLabel","methods","open","attributes","Boolean","getInitialCustomDueDate","getHours","setTimeout","input","document","getElementById","focus","showPicker","setCustom","isNaN","emit","showSuccess","onClose","error","showError","clear","$emit","onInput","checkValidity","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","_setupProxy","attrs","on","scopedSlots","_u","key","fn","_v","_s","_e","proxy","staticClass","$event","preventDefault","apply","arguments","model","value","callback","$$v","expression","View","SetCustomReminderModal","mount","createElement","body","appendChild","CustomReminderModal","el","pickCustomDate","Promise","resolve","$once","action","FileAction","inline","displayName","title","nodes","at","iconSvgInline","AlarmSvg","enabled","length","exec","order","SET_REMINDER_MENU_ID","view","laterToday","dateTimePreset","ariaLabel","dateString","verboseDateString","tomorrow","thisWeekend","nextWeek","forEach","option","setInterval","actions","map","parent","file","registerDavProperty","nc","registerFileAction","statusAction","clearAction","menuAction","customAction","suggestionActions","__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","definition","o","defineProperty","enumerable","get","f","e","chunkId","all","reduce","promises","u","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","timeout","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","type","target","head","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","baseURI","self","href","installedChunks","installedChunkData","promise","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file |