import{b as l}from"./index-CuwFxdv0.chunk.mjs";import{c as Q}from"./dav-SmFgKjZ4.chunk.mjs";import{e as D,g as X}from"./index-Bndk0DrU.chunk.mjs";import{a as B,t as i}from"./translation-DoG5ZELJ-Bni_xMHF.chunk.mjs";import{c as O}from"./index-BT4ljBnH.chunk.mjs";import{b as W}from"./createElementId-DhjFt1I9-C_WKCRq3.chunk.mjs";import"./PencilOutline-BR85Y6ME.chunk.mjs";import"./index-CYbvdXx_.chunk.mjs";import{N as J}from"./NcBreadcrumbs-5gl8Syfa-BsIGEccC.chunk.mjs";import{_ as ee}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BLfKZ80U.chunk.mjs";import{N as te,s as re}from"./index-BrC2bLMO.chunk.mjs";import"./NcAvatar-C9d7Wrc8-eVjVuCIX.chunk.mjs";import"./NcRichText-DJlaHs_Q-tqMkpCtc.chunk.mjs";import{N as k}from"./logger-D3RVzcfQ-CklyzrxW.chunk.mjs";import"./mdi-Bm11w6Fn.chunk.mjs";import"./NcCheckboxRadioSwitch-BMsPx74L-CrcuxmoM.chunk.mjs";import"./NcChip-B71t2Ny2-efwz32oA.chunk.mjs";import"./NcColorPicker-DDHxR-iN-BXwxdmCO.chunk.mjs";import"./TrayArrowDown-D8ycvjKQ.chunk.mjs";import"./NcSelect-DLheQ2yp-CP6uPo1K.chunk.mjs";import"./NcEmojiPicker-Djc9a0gw-BS_Juv3z.chunk.mjs";import"./Plus-QzdZMNfM.chunk.mjs";/* empty css */import"./NcInputField-o5OFv3z6-DJtp_yB7.chunk.mjs";import{N as M}from"./NcNoteCard-Cok_4Fld-C71YD40i.chunk.mjs";import"./NcPasswordField-uaMO2pdt-Bi58_jEx.chunk.mjs";import"./TrashCanOutline-B5FsJrKA.chunk.mjs";import"./index--bLvrHeb.chunk.mjs";import"./ContentCopy-Cq4ZC6ad.chunk.mjs";import"./NcUserBubble-vOAXLHB5-BXkrGyIr.chunk.mjs";import"./NcUserStatusIcon-XiwrgeCm-Bx6e8UaI.chunk.mjs";import"./colors-BHGKZFDI-BKHpzg2v.chunk.mjs";import{b as ie,N as ae,r as m,A as ne,c as v,l as A,o as y,w as d,k as se,H as oe,e as b,u as n,g as u,t as c}from"./runtime-dom.esm-bundler-CU8rrbZA.chunk.mjs";import{a as f,d as N}from"./index-JpgrUA2Z-BYgeawUc.chunk.mjs";import{a as de}from"./index-DCpg1aui.chunk.mjs";import"./public-Sa--me8z.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./index-JSJM6V6X.chunk.mjs";const le='';async function E(e,t){const r=W("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await O.put(r,{dueDate:t.toISOString()})).data.ocs.data}async function Z(e){const t=W("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await O.delete(t)).data.ocs.data}var p=(e=>(e.LaterToday="later-today",e.Tomorrow="tomorrow",e.ThisWeekend="this-weekend",e.NextWeek="next-week",e))(p||{});function F(){const e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-e.getDay()+1),new Date(e)}function I(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 me(e,t){return I(e)===I(t)&&e.getFullYear()===t.getFullYear()}function ue(e,t){return e.getDate()===t.getDate()&&e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()}function _(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=F();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=F();return t.setDate(r.getDate()+7),t.setHours(8,0,0,0),t}}[e]()}function ce(){const e=new Date,t=new Date;return t.setHours(e.getHours()+2,0,0,0),t}function V(e){let t={hour:"numeric",minute:"2-digit"};const r=new Date;return ue(e,r)||(t={...t,weekday:"short"}),me(e,r)||(t={...t,month:"short",day:"numeric"}),e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString(B(),t)}function L(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(B(),t)}const fe={id:"clear-reminder",displayName:()=>i("files_reminders","Clear reminder"),title:({nodes:e})=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${i("files_reminders","Clear reminder")} – ${L(r)}`},iconSvgInline:()=>le,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 Z(t.fileid),t.attributes["reminder-due-date"]="",D("files:node:updated",t),!0}catch{return!1}return null},order:19},U='',h=X().setApp("files_reminders").detectUser().build(),pe=ie({__name:"SetCustomReminderModal",props:{node:{}},emits:["close"],setup(e,{emit:t}){const r=e,s=t,S=m(!1),C=m(!1),g=m(!0),o=m(),H=m(new Date);ae(()=>{const a=r.node.attributes["reminder-due-date"]?new Date(r.node.attributes["reminder-due-date"]):void 0;S.value=!!a,g.value=!0,C.value=!0,o.value=a??ce(),H.value=new Date}),ne(()=>{const a=document.getElementById("set-custom-reminder");a.focus(),S.value||a.showPicker()});async function z(){if(!(o.value instanceof Date)||isNaN(o.value.getTime())){f(i("files_reminders","Please choose a valid date & time"));return}try{await E(r.node.fileid,o.value);const a=r.node.clone();a.attributes["reminder-due-date"]=o.value.toISOString(),D("files:node:updated",a),N(i("files_reminders",'Reminder set for "{fileName}"',{fileName:r.node.displayname})),w()}catch(a){h.error("Failed to set reminder",{error:a}),f(i("files_reminders","Failed to set reminder"))}}async function j(){try{await Z(r.node.fileid);const a=r.node.clone();a.attributes["reminder-due-date"]="",D("files:node:updated",a),N(i("files_reminders",'Reminder cleared for "{fileName}"',{fileName:r.node.displayname})),w()}catch(a){h.error("Failed to clear reminder",{error:a}),f(i("files_reminders","Failed to clear reminder"))}}function w(){C.value=!1,s("close")}function G(){const a=document.getElementById("set-custom-reminder");g.value=a.checkValidity()}return(a,x)=>C.value?(y(),v(n(te),{key:0,name:n(i)("files_reminders","Set reminder for '{fileName}'",{fileName:e.node.displayname}),outTransition:"",size:"small",closeOnClickOutside:"",onClosing:w},{actions:d(()=>[b(n(k),{variant:"tertiary",onClick:w},{default:d(()=>[u(c(n(i)("files_reminders","Cancel")),1)]),_:1}),S.value?(y(),v(n(k),{key:0,onClick:j},{default:d(()=>[u(c(n(i)("files_reminders","Clear reminder")),1)]),_:1})):A("",!0),b(n(k),{disabled:!g.value,variant:"primary",form:"set-custom-reminder-form",type:"submit"},{default:d(()=>[u(c(n(i)("files_reminders","Set reminder")),1)]),_:1},8,["disabled"])]),default:d(()=>[se("form",{id:"set-custom-reminder-form",class:"custom-reminder-modal",onSubmit:oe(z,["prevent"])},[b(n(J),{id:"set-custom-reminder",modelValue:o.value,"onUpdate:modelValue":x[0]||(x[0]=K=>o.value=K),label:n(i)("files_reminders","Reminder at custom date & time"),min:H.value,required:!0,type:"datetime-local",onInput:G},null,8,["modelValue","label","min"]),g.value&&o.value?(y(),v(n(M),{key:0,type:"info"},{default:d(()=>[u(c(n(i)("files_reminders","We will remind you of this file"))+" ",1),b(n(ee),{timestamp:o.value},null,8,["timestamp"])]),_:1})):(y(),v(n(M),{key:1,type:"error"},{default:d(()=>[u(c(n(i)("files_reminders","Please choose a valid date & time")),1)]),_:1}))],32)]),_:1},8,["name"])):A("",!0)}}),ge=de(pe,[["__scopeId","data-v-1cc1857f"]]);async function q(e){await re(ge,{node:e})}const we={id:"reminder-status",inline:()=>!0,displayName:()=>"",title:({nodes:e})=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${i("files_reminders","Reminder set")} – ${L(r)}`},iconSvgInline:()=>U,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 q(t),null},order:-15},ve='',T="set-reminder-menu",ye={id:T,displayName:()=>i("files_reminders","Set reminder"),iconSvgInline:()=>U,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},be={id:"set-reminder-custom",displayName:()=>i("files_reminders","Custom reminder"),title:()=>i("files_reminders","Reminder at custom date & time"),iconSvgInline:()=>ve,enabled:({nodes:e,view:t})=>t.id==="trashbin"||e.length!==1?!1:e.at(0).attributes["reminder-due-date"]!==void 0,parent:T,async exec({nodes:e}){const t=e.at(0);return q(t),null},order:22},P={dateTimePreset:p.LaterToday,label:i("files_reminders","Later today"),ariaLabel:i("files_reminders","Set reminder for later today"),dateString:"",verboseDateString:""},Y={dateTimePreset:p.Tomorrow,label:i("files_reminders","Tomorrow"),ariaLabel:i("files_reminders","Set reminder for tomorrow"),dateString:"",verboseDateString:""},$={dateTimePreset:p.ThisWeekend,label:i("files_reminders","This weekend"),ariaLabel:i("files_reminders","Set reminder for this weekend"),dateString:"",verboseDateString:""},R={dateTimePreset:p.NextWeek,label:i("files_reminders","Next week"),ariaLabel:i("files_reminders","Set reminder for next week"),dateString:"",verboseDateString:""};function De(){return[P,Y,$,R].forEach(e=>{const t=_(e.dateTimePreset);t&&(e.dateString=V(t),e.verboseDateString=L(t),setInterval(()=>{const r=_(e.dateTimePreset);r&&(e.dateString=V(r),e.verboseDateString=L(r))},1e3*30*60))}),[P,Y,$,R].map(_e)}function _e(e){return{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&&!!_(e.dateTimePreset),parent:T,async exec({nodes:t}){const r=t.at(0);if(!r.fileid)return h.error("Failed to set reminder, missing file id"),f(i("files_reminders","Failed to set reminder")),null;try{const s=_(e.dateTimePreset);await E(r.fileid,s),r.attributes["reminder-due-date"]=s.toISOString(),D("files:node:updated",r),N(i("files_reminders",'Reminder set for "{fileName}"',{fileName:r.basename}))}catch(s){h.error("Failed to set reminder",{error:s}),f(i("files_reminders","Failed to set reminder"))}return null},order:21}}Q("nc:reminder-due-date",{nc:"http://nextcloud.org/ns"}),l(we),l(fe),l(ye),l(be),De().forEach(l); //# sourceMappingURL=files_reminders-init.mjs.map