import{b as g,r as l}from"./index-wzXhnBCQ.chunk.mjs";import{r as Q}from"./dav-CRTiYd1u.chunk.mjs";import{g as Y,d as $,X as R,e as a,Y as _,h as J,i as m,Z as ee,$ as te,c as y,m as F,o as b,w as o,k as re,z as ae,a as D,u as i,b as u,t as c,_ as ne}from"./TrayArrowDown-sRwZP_WA.chunk.mjs";import{e as ie,N as se,s as f,d as x,a as de}from"./Plus-DDsJI2iW.chunk.mjs";import{g as oe,c as I,b as T}from"./TrashCanOutline-avc1vI9P.chunk.mjs";import"./ContentCopy-BEfKgtZW.chunk.mjs";import{_ as le}from"./index-BGFNwqHi.chunk.mjs";const me='';async function B(e,t){const r=Y("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await $.put(r,{dueDate:t.toISOString()})).data.ocs.data}async function W(e){const t=Y("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await $.delete(t)).data.ocs.data}var w=(e=>(e.LaterToday="later-today",e.Tomorrow="tomorrow",e.ThisWeekend="this-weekend",e.NextWeek="next-week",e))(w||{});function A(){const e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-e.getDay()+1),new Date(e)}function V(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)}function ue(e,t){return V(e)===V(t)&&e.getFullYear()===t.getFullYear()}function ce(e,t){return e.getDate()===t.getDate()&&e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()}function L(e){return{"later-today":()=>{const t=new Date,r=new Date;r.setHours(18,0,0,0);const s=new Date;return s.setHours(17,0,0,0),t>=s?null:r},tomorrow:()=>{const t=new Date,r=new Date;return r.setDate(t.getDate()+1),r.setHours(8,0,0,0),r},"this-weekend":()=>{const t=new Date;if([5,6,0].includes(t.getDay()))return null;const r=new Date,s=A();return r.setDate(s.getDate()+5),r.setHours(8,0,0,0),r},"next-week":()=>{if(new Date().getDay()===0)return null;const t=new Date,r=A();return t.setDate(r.getDate()+7),t.setHours(8,0,0,0),t}}[e]()}function fe(){const e=new Date,t=new Date;return t.setHours(e.getHours()+2,0,0,0),t}function P(e){let t={hour:"numeric",minute:"2-digit"};const r=new Date;return ce(e,r)||(t={...t,weekday:"short"}),ue(e,r)||(t={...t,month:"short",day:"numeric"}),e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString(R(),t)}function h(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(R(),t)}const ge=new g({id:"clear-reminder",displayName:()=>a("files_reminders","Clear reminder"),title:({nodes:e})=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${a("files_reminders","Clear reminder")} – ${h(r)}`},iconSvgInline:()=>me,enabled:({nodes:e})=>e.length!==1?!1:!!e.at(0).attributes["reminder-due-date"],async exec({nodes:e}){const t=e.at(0);if(t.fileid)try{return await W(t.fileid),t.attributes["reminder-due-date"]="",_("files:node:updated",t),!0}catch{return!1}return null},order:19}),E='',S=oe().setApp("files_reminders").detectUser().build(),we=J({__name:"SetCustomReminderModal",props:{node:{}},emits:["close"],setup(e,{emit:t}){const r=e,s=t,k=m(!1),C=m(!1),v=m(!0),d=m(),N=m(new Date);ee(()=>{const n=r.node.attributes["reminder-due-date"]?new Date(r.node.attributes["reminder-due-date"]):void 0;k.value=!!n,v.value=!0,C.value=!0,d.value=n??fe(),N.value=new Date}),te(()=>{const n=document.getElementById("set-custom-reminder");n.focus(),k.value||n.showPicker()});async function X(){if(!(d.value instanceof Date)||isNaN(d.value.getTime())){f(a("files_reminders","Please choose a valid date & time"));return}try{await B(r.node.fileid,d.value);const n=r.node.clone();n.attributes["reminder-due-date"]=d.value.toISOString(),_("files:node:updated",n),x(a("files_reminders",'Reminder set for "{fileName}"',{fileName:r.node.displayname})),p()}catch(n){S.error("Failed to set reminder",{error:n}),f(a("files_reminders","Failed to set reminder"))}}async function j(){try{await W(r.node.fileid);const n=r.node.clone();n.attributes["reminder-due-date"]="",_("files:node:updated",n),x(a("files_reminders",'Reminder cleared for "{fileName}"',{fileName:r.node.displayname})),p()}catch(n){S.error("Failed to clear reminder",{error:n}),f(a("files_reminders","Failed to clear reminder"))}}function p(){C.value=!1,s("close")}function G(){const n=document.getElementById("set-custom-reminder");v.value=n.checkValidity()}return(n,M)=>C.value?(b(),y(i(se),{key:0,name:i(a)("files_reminders","Set reminder for '{fileName}'",{fileName:e.node.displayname}),"out-transition":"",size:"small","close-on-click-outside":"",onClosing:p},{actions:o(()=>[D(i(T),{variant:"tertiary",onClick:p},{default:o(()=>[u(c(i(a)("files_reminders","Cancel")),1)]),_:1}),k.value?(b(),y(i(T),{key:0,onClick:j},{default:o(()=>[u(c(i(a)("files_reminders","Clear reminder")),1)]),_:1})):F("",!0),D(i(T),{disabled:!v.value,variant:"primary",form:"set-custom-reminder-form",type:"submit"},{default:o(()=>[u(c(i(a)("files_reminders","Set reminder")),1)]),_:1},8,["disabled"])]),default:o(()=>[re("form",{id:"set-custom-reminder-form",class:"custom-reminder-modal",onSubmit:ae(X,["prevent"])},[D(i(ie),{id:"set-custom-reminder",modelValue:d.value,"onUpdate:modelValue":M[0]||(M[0]=K=>d.value=K),label:i(a)("files_reminders","Reminder at custom date & time"),min:N.value,required:!0,type:"datetime-local",onInput:G},null,8,["modelValue","label","min"]),v.value&&d.value?(b(),y(i(I),{key:0,type:"info"},{default:o(()=>[u(c(i(a)("files_reminders","We will remind you of this file"))+" ",1),D(i(le),{timestamp:d.value},null,8,["timestamp"])]),_:1})):(b(),y(i(I),{key:1,type:"error"},{default:o(()=>[u(c(i(a)("files_reminders","Please choose a valid date & time")),1)]),_:1}))],32)]),_:1},8,["name"])):F("",!0)}}),ve=ne(we,[["__scopeId","data-v-a860b574"]]);async function Z(e){await de(ve,{node:e})}const pe=new g({id:"reminder-status",inline:()=>!0,displayName:()=>"",title:({nodes:e})=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${a("files_reminders","Reminder set")} – ${h(r)}`},iconSvgInline:()=>E,enabled:({nodes:e})=>e.length!==1?!1:!!e.at(0).attributes["reminder-due-date"],async exec({nodes:e}){const t=e.at(0);return await Z(t),null},order:-15}),ye='',H="set-reminder-menu",be=new g({id:H,displayName:()=>a("files_reminders","Set reminder"),iconSvgInline:()=>E,enabled:({nodes:e,view:t})=>t.id==="trashbin"||e.length!==1?!1:e.at(0).attributes["reminder-due-date"]!==void 0,async exec(){return null},order:20}),De=new g({id:"set-reminder-custom",displayName:()=>a("files_reminders","Custom reminder"),title:()=>a("files_reminders","Reminder at custom date & time"),iconSvgInline:()=>ye,enabled:({nodes:e,view:t})=>t.id==="trashbin"||e.length!==1?!1:e.at(0).attributes["reminder-due-date"]!==void 0,parent:H,async exec({nodes:e}){const t=e.at(0);return Z(t),null},order:22}),O={dateTimePreset:w.LaterToday,label:a("files_reminders","Later today"),ariaLabel:a("files_reminders","Set reminder for later today"),dateString:"",verboseDateString:""},z={dateTimePreset:w.Tomorrow,label:a("files_reminders","Tomorrow"),ariaLabel:a("files_reminders","Set reminder for tomorrow"),dateString:"",verboseDateString:""},U={dateTimePreset:w.ThisWeekend,label:a("files_reminders","This weekend"),ariaLabel:a("files_reminders","Set reminder for this weekend"),dateString:"",verboseDateString:""},q={dateTimePreset:w.NextWeek,label:a("files_reminders","Next week"),ariaLabel:a("files_reminders","Set reminder for next week"),dateString:"",verboseDateString:""};function _e(e){return new g({id:`set-reminder-${e.dateTimePreset}`,displayName:()=>`${e.label} – ${e.dateString}`,title:()=>`${e.ariaLabel} – ${e.verboseDateString}`,iconSvgInline:()=>"",enabled:({nodes:t,view:r})=>r.id==="trashbin"||t.length!==1?!1:t.at(0).attributes["reminder-due-date"]!==void 0&&!!L(e.dateTimePreset),parent:H,async exec({nodes:t}){const r=t.at(0);if(!r.fileid)return S.error("Failed to set reminder, missing file id"),f(a("files_reminders","Failed to set reminder")),null;try{const s=L(e.dateTimePreset);await B(r.fileid,s),r.attributes["reminder-due-date"]=s.toISOString(),_("files:node:updated",r),x(a("files_reminders",'Reminder set for "{fileName}"',{fileName:r.basename}))}catch(s){S.error("Failed to set reminder",{error:s}),f(a("files_reminders","Failed to set reminder"))}return null},order:21})}[O,z,U,q].forEach(e=>{const t=L(e.dateTimePreset);t&&(e.dateString=P(t),e.verboseDateString=h(t),setInterval(()=>{const r=L(e.dateTimePreset);r&&(e.dateString=P(r),e.verboseDateString=h(r))},1e3*30*60))});const Le=[O,z,U,q].map(_e);Q("nc:reminder-due-date",{nc:"http://nextcloud.org/ns"}),l(pe),l(ge),l(be),l(De),Le.forEach(e=>l(e));
//# sourceMappingURL=files_reminders-init.mjs.map