nextcloud-server/dist/files_reminders-init.mjs

3 lines
10 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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='<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>';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='<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>',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='<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>',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:()=>"<svg></svg>",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