1import{a7 as ce,d as ie,r as Q,c as i,e as u,f as e,t as o,F as $,Q as V,I as ge,R as pe,y as X,U as ve,w as T,g as S,i as M,k as R,j as b,G as re,a8 as fe,l as me,O as _e,n as he,a9 as K,aa as h,ab as I,ac as te,ad as ye,ae as G,af as Se,ag as ke,p as be,v as we,C as g,a6 as se,ah as J,x as m,ai as w,aj as E,h as D,ak as De,al as $e,am as Te,an as Oe,ao as Ee,ap as le,aq as Ve}from"./index-u-ppHw0H.js";import{_ as ne}from"./ProjectSearch.vue_vue_type_script_setup_true_lang-CHRFVHN_.js";import{M as Re}from"./Multiselect-DCLd0nCA.js";var W,oe;function Ue(){return oe||(oe=1,W=function C(d,a){if(d===a)return!0;if(d&&a&&typeof d=="object"&&typeof a=="object"){if(d.constructor!==a.constructor)return!1;var _,v,k;if(Array.isArray(d)){if(_=d.length,_!=a.length)return!1;for(v=_;v--!==0;)if(!C(d[v],a[v]))return!1;return!0}if(d.constructor===RegExp)return d.source===a.source&&d.flags===a.flags;if(d.valueOf!==Object.prototype.valueOf)return d.valueOf()===a.valueOf();if(d.toString!==Object.prototype.toString)return d.toString()===a.toString();if(k=Object.keys(d),_=k.length,_!==Object.keys(a).length)return!1;for(v=_;v--!==0;)if(!Object.prototype.hasOwnProperty.call(a,k[v]))return!1;for(v=_;v--!==0;){var p=k[v];if(!C(d[p],a[p]))return!1}return!0}return d!==d&&a!==a}),W}var Ae=Ue();const ae=ce(Ae),Me={class:"shortcut-recorder"},Ce={key:0,class:"recording-hint"},Ye={key:2,class:"placeholder"},Be=ie({__name:"ShortcutRecorder",props:{modelValue:{}},emits:["update:modelValue"],setup(C,{emit:d}){const a=C,_=d,v=R(!1),k=navigator.platform.toUpperCase().includes("MAC");function p(r){if(["Control","Alt","Shift","Meta"].includes(r.key))return null;const c=[];if((r.ctrlKey||r.metaKey)&&c.push("CmdOrCtrl"),r.altKey&&c.push("Alt"),r.shiftKey&&c.push("Shift"),c.length===0)return null;const Y=l(r);if(Y)c.push(Y);else return null;return c.join("+")}function l(r){return/^Key[A-Z]$/.test(r.code)?r.code.slice(3):/^Digit[0-9]$/.test(r.code)?r.code.slice(5):/^F\d{1,2}$/.test(r.code)?r.code:{Space:"Space",Enter:"Enter",Backspace:"Backspace",Delete:"Delete",Tab:"Tab",Escape:"Escape",ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right",Home:"Home",End:"End",PageUp:"PageUp",PageDown:"PageDown",Minus:"-",Equal:"=",BracketLeft:"[",BracketRight:"]",Semicolon:";",Quote:"'",Backquote:"`",Backslash:"\\",Comma:",",Period:".",Slash:"/"}[r.code]??null}function U(r){return r?r.split("+").map(c=>c==="CmdOrCtrl"?k?"â":"Ctrl":c==="Shift"?k?"â§":"Shift":c==="Alt"?k?"â¥":"Alt":c==="Space"?"â£":c):[]}const O=b(()=>U(a.modelValue));function P(){v.value=!0}function L(){v.value=!1}function H(r){v.value||P();const c=p(r);c&&(_("update:modelValue",c),v.value=!1)}function q(){_("update:modelValue","")}return(r,c)=>{const Y=Q("Icon");return i(),u("div",Me,[e("button",{class:pe(["input recorder-button",{"is-recording":v.value}]),onClick:P,onKeydown:ge(H,["prevent"]),onBlur:L},[v.value?(i(),u("span",Ce,o(r.$t("user.settings.desktop.shortcutRecorderRecording")),1)):O.value.length>0?(i(!0),u($,{key:1},V(O.value,(j,N)=>(i(),u("kbd",{key:N},o(j),1))),128)):(i(),u("span",Ye,o(r.$t("user.settings.desktop.shortcutRecorderPlaceholder")),1))],34),C.modelValue?(i(),X(ve,{key:0,class:"clear-button",onClick:q},{default:T(()=>[S(Y,{icon:"times"})]),_:1})):M("",!0)])}}}),Ie=re(Be,[["__scopeId","data-v-87780fcf"]]),Ne={class:"field-group"},Pe={class:"field"},je=["for"],Fe=["id","disabled","placeholder"],Le={key:0,class:"help"},He={class:"field"},qe={class:"two-col"},ze={class:"field-group"},Ke={class:"field"},Ge={class:"two-col"},Je={class:"select"},We=["value"],Qe={class:"field"},Xe={class:"two-col"},Ze={class:"select"},xe=["value"],et=["value"],tt=["value"],st=["value"],lt=["value"],nt={key:0,class:"field"},ot={class:"two-col"},at={class:"field"},it={class:"checkbox"},rt={class:"field"},ut={class:"checkbox"},dt={class:"field"},ct={class:"checkbox"},gt={key:1,class:"field"},pt={for:"overdueTasksReminderTime",class:"two-col"},vt={class:"field-group"},ft={class:"field"},mt={class:"two-col"},_t={class:"select"},ht=["value"],yt={class:"field"},St={class:"two-col"},kt={class:"field"},bt={class:"two-col"},wt={class:"select"}
1,Dt={value:"0"},$t={value:"1"},Tt={class:"field"},Ot={class:"two-col"},Et={class:"select"},Vt=["value"],Rt={key:0,class:"field"},Ut={class:"two-col"},At={class:"select"},Mt=["value"],Ct={class:"field-group"},Yt={class:"field"},Bt={class:"two-col"},It={class:"select"},Nt=["value"],Pt={class:"field"},jt={class:"two-col"},Ft={class:"select"},Lt=["value"],Ht={class:"field"},qt={class:"two-col"},zt={class:"select"},Kt=["value"],Gt={class:"field"},Jt={class:"checkbox"},Wt={class:"field"},Qt={class:"checkbox"},Xt={class:"field"},Zt={class:"checkbox"},xt={class:"field"},es={class:"two-col"},ts={class:"field-group"},ss={class:"field"},ls=["for"],ns={class:"field-group"},os={class:"field"},as={class:"checkbox"},is={class:"field"},rs={class:"checkbox"},us={class:"sticky-save"},ds=0,cs=ie({name:"UserSettingsGeneral",__name:"General",setup(C){const d=fe(),{t:a}=me({useScope:"global"});_e(()=>`${a("user.settings.general.title")} - ${a("user.settings.title")}`);const _=b(()=>({light:a("user.settings.appearance.colorScheme.light"),auto:a("user.settings.appearance.colorScheme.system"),dark:a("user.settings.appearance.colorScheme.dark")})),v=b(()=>({[h.RELATIVE]:a("user.settings.general.dateDisplayOptions.relative"),[h.MM_DD_YYYY]:a("user.settings.general.dateDisplayOptions.mm-dd-yyyy"),[h.DD_MM_YYYY]:a("user.settings.general.dateDisplayOptions.dd-mm-yyyy"),[h.YYYY_MM_DD]:a("user.settings.general.dateDisplayOptions.yyyy-mm-dd"),[h.MM_SLASH_DD_YYYY]:a("user.settings.general.dateDisplayOptions.mm/dd/yyyy"),[h.DD_SLASH_MM_YYYY]:a("user.settings.general.dateDisplayOptions.dd/mm/yyyy"),[h.YYYY_SLASH_MM_DD]:a("user.settings.general.dateDisplayOptions.yyyy/mm/dd"),[h.DAY_MONTH_YEAR]:le(new Date,h.DAY_MONTH_YEAR,l.value?.frontendSettings?.timeFormat),[h.WEEKDAY_DAY_MONTH_YEAR]:le(new Date,h.WEEKDAY_DAY_MONTH_YEAR,l.value?.frontendSettings?.timeFormat)})),k=b(()=>({[K.HOURS_12]:a("user.settings.general.timeFormatOptions.12h"),[K.HOURS_24]:a("user.settings.general.timeFormatOptions.24h")})),p=he(),l=R({...p.settings,frontendSettings:{...p.settings.frontendSettings,defaultView:p.settings.frontendSettings.defaultView??te.FIRST,minimumPriority:p.settings.frontendSettings.minimumPriority??I.MEDIUM,allowIconChanges:p.settings.frontendSettings.allowIconChanges??!0,dateDisplay:p.settings.frontendSettings.dateDisplay??h.RELATIVE,timeFormat:p.settings.frontendSettings.timeFormat??K.HOURS_12,defaultTaskRelationType:p.settings.frontendSettings.defaultTaskRelationType??"related"}}),U=R(),O=R(!1);ye(()=>{U.value=JSON.parse(JSON.stringify(l.value)),O.value=!1}),G(()=>l.value,()=>{O.value=!ae(l.value,U.value)},{deep:!0}),G(()=>p.settings,s=>{Object.keys(l.value).length===0&&(U.value=JSON.parse(JSON.stringify({...s,frontendSettings:{...s.frontendSettings}})),O.value=!ae(l.value,U.value))},{deep:!0});function P(){const s=Number(l.value.frontendSettings.backgroundBrightness);!s||isNaN(s)?l.value.frontendSettings.backgroundBrightness=null:s<0?l.value.frontendSettings.backgroundBrightness=0:s>100&&(l.value.frontendSettings.backgroundBrightness=100)}function L(s){const n=R([]),y=R([]);Ee().get("user/timezones").then(f=>{if(f.data){n.value=f.data.sort((B,de)=>B.localeCompare(de)).map(B=>({value:B,label:B.replace(/_/g," ")})),y.value=[...n.value];return}n.value=[]});function z(f){if(f===""){y.value=[...n.value];return}y.value=n.value.filter(B=>B.label.toLowerCase().includes(f.toLowerCase()))}const t=b({get:()=>({value:s.value.timezone,label:s.value.timezone?.replace(/_/g," ")}),set:f=>{if(f===null){s.value.timezone="";return}typeof f=="object"&&"value"in f&&(s.value.timezone=f.value)}});return{availableTimezones:n,searchResults:y,search:z,timezoneObject:t}}const{searchResults:H,search:q,timezoneObject:r}=L(l),c=R(Se()),Y=R(Object.entries(ke).map(s=>({code:s[0],title:s[1]})).sort((s,n)=>s.title.localeCompare(n.title))),j=b(()=>!p.info.isLocalUser);G(()=>p.settings,()=>{Object.keys(l.value).length===0&&(l.value={...p.settings})},{immediate:!0});const N=be(),Z=b({get:()=>N.projects[l.value.defaultProjectId],set(s){l.value.defaultProjectId=s?s.id:ds}}),x=b({get:()=>N.projects[l.value.frontendSettings.filterIdUsedOnOverview],set(s){l.value.frontendSettings.filterIdUsedOnOverview=s?s.id:null}}),ue=b(()=>typeof N.projectsArray.find(s=>Ve(s))<"u"),A=b(()=>p.isLoadingGeneralSettings);async function F(){await p.saveUserSettings({settings:{...l.value}}),U.value=JSON.parse(JSON.stringify(l.value)),O.value=!1}return(s,n)=>{const y=Q("Card"),ee=Q("XButton"),z=we("cy");return i(),u($,null,[S(y,{title:s.$t("user.settings.sections.personalInformation"),class:"general-sett
1ings",loading:A.value},{default:T(()=>[e("div",Ne,[e("div",Pe,[e("label",{for:`newName${c.value}`,class:"two-col"},[e("span",null,o(s.$t("user.settings.general.name")),1),g(e("input",{id:`newName${c.value}`,"onUpdate:modelValue":n[0]||(n[0]=t=>l.value.name=t),disabled:j.value,class:"input",placeholder:s.$t("user.settings.general.newName"),type:"text",onKeyup:se(F,["enter"])},null,40,Fe),[[J,l.value.name]])],8,je),j.value?(i(),u("p",Le,o(s.$t("user.settings.general.externalUserNameChange",{provider:m(p).info.authProvider})),1)):M("",!0)]),e("div",He,[e("label",qe,[e("span",null,o(s.$t("user.settings.general.defaultProject")),1),S(ne,{modelValue:Z.value,"onUpdate:modelValue":n[1]||(n[1]=t=>Z.value=t)},null,8,["modelValue"])])])])]),_:1},8,["title","loading"]),S(y,{title:s.$t("user.settings.sections.taskAndNotifications"),class:"general-settings section-block",loading:A.value},{default:T(()=>[e("div",ze,[e("div",Ke,[e("label",Ge,[e("span",null,o(s.$t("user.settings.general.defaultView")),1),e("div",Je,[g(e("select",{"onUpdate:modelValue":n[2]||(n[2]=t=>l.value.frontendSettings.defaultView=t)},[(i(!0),u($,null,V(m(te),t=>(i(),u("option",{key:t,value:t},o(s.$t(`project.${t}.title`)),9,We))),128))],512),[[w,l.value.frontendSettings.defaultView]])])])]),e("div",Qe,[e("label",Xe,[e("span",null,o(s.$t("user.settings.general.minimumPriority")),1),e("div",Ze,[g(e("select",{"onUpdate:modelValue":n[3]||(n[3]=t=>l.value.frontendSettings.minimumPriority=t)},[e("option",{value:m(I).LOW},o(s.$t("task.priority.low")),9,xe),e("option",{value:m(I).MEDIUM},o(s.$t("task.priority.medium")),9,et),e("option",{value:m(I).HIGH},o(s.$t("task.priority.high")),9,tt),e("option",{value:m(I).URGENT},o(s.$t("task.priority.urgent")),9,st),e("option",{value:m(I).DO_NOW},o(s.$t("task.priority.doNow")),9,lt)],512),[[w,l.value.frontendSettings.minimumPriority]])])])]),ue.value?(i(),u("div",nt,[e("label",ot,[e("span",null,o(s.$t("user.settings.general.filterUsedOnOverview")),1),S(ne,{modelValue:x.value,"onUpdate:modelValue":n[4]||(n[4]=t=>x.value=t),"saved-filters-only":!0},null,8,["modelValue"])])])):M("",!0),e("div",at,[e("label",it,[g(e("input",{"onUpdate:modelValue":n[5]||(n[5]=t=>l.value.frontendSettings.showLastViewed=t),type:"checkbox"},null,512),[[E,l.value.frontendSettings.showLastViewed]]),D(" "+o(s.$t("user.settings.general.showLastViewed")),1)])]),e("div",rt,[e("label",ut,[g(e("input",{"onUpdate:modelValue":n[6]||(n[6]=t=>l.value.emailRemindersEnabled=t),type:"checkbox"},null,512),[[E,l.value.emailRemindersEnabled]]),D(" "+o(s.$t("user.settings.general.emailReminders")),1)])]),e("div",dt,[e("label",ct,[g(e("input",{"onUpdate:modelValue":n[7]||(n[7]=t=>l.value.overdueTasksRemindersEnabled=t),type:"checkbox"},null,512),[[E,l.value.overdueTasksRemindersEnabled]]),D(" "+o(s.$t("user.settings.general.overdueReminders")),1)])]),l.value.overdueTasksRemindersEnabled?(i(),u("div",gt,[e("label",pt,[e("span",null,o(s.$t("user.settings.general.overdueTasksRemindersTime")),1),g(e("input",{id:"overdueTasksReminderTime","onUpdate:modelValue":n[8]||(n[8]=t=>l.value.overdueTasksRemindersTime=t),class:"input",type:"time",onKeyup:se(F,["enter"])},null,544),[[J,l.value.overdueTasksRemindersTime]])])])):M("",!0)])]),_:1},8,["title","loading"]),S(y,{title:s.$t("user.settings.sections.localization"),class:"general-settings section-block",loading:A.value},{default:T(()=>[e("div",vt,[e("div",ft,[e("label",mt,[e("span",null,o(s.$t("user.settings.general.language")),1),e("div",_t,[g(e("select",{"onUpdate:modelValue":n[9]||(n[9]=t=>l.value.language=t)},[(i(!0),u($,null,V(Y.value,t=>(i(),u("option",{key:t.code,value:t.code},o(t.title),9,ht))),128))],512),[[w,l.value.language]])])])]),e("div",yt,[e("label",St,[e("span",null,o(s.$t("user.settings.general.timezone")),1),S(Re,{modelValue:m(r),"onUpdate:modelValue":n[10]||(n[10]=t=>De(r)?r.value=t:null),placeholder:s.$t("user.settings.general.timezone"),"search-results":m(H),"show-empty":!0,class:"timezone-select",label:"label","select-placeholder":"",onSearch:m(q)},null,8,["modelValue","placeholder","search-results","onSearch"])])]),e("div",kt,[e("label",bt,[e("span",null,o(s.$t("user.settings.general.weekStart")),1),e("div",wt,[g(e("select",{"onUpdate:modelValue":n[11]||(n[11]=t=>l.value.weekStart=t)},[e("option",Dt,o(s.$t("user.settings.general.weekStartSunday")),1),e("option",$t,o(s.$t("user.settings.general.weekStartMonday")),1)],512),[[w,l.value.weekStart,void 0,{number:!0}
1]])])])]),e("div",Tt,[e("label",Ot,[e("span",null,o(s.$t("user.settings.general.dateDisplay")),1),e("div",Et,[g(e("select",{"onUpdate:modelValue":n[12]||(n[12]=t=>l.value.frontendSettings.dateDisplay=t)},[(i(!0),u($,null,V(v.value,(t,f)=>(i(),u("option",{key:f,value:f},o(t),9,Vt))),128))],512),[[w,l.value.frontendSettings.dateDisplay]])])])]),l.value.frontendSettings.dateDisplay!=="relative"?(i(),u("div",Rt,[e("label",Ut,[e("span",null,o(s.$t("user.settings.general.timeFormat")),1),e("div",At,[g(e("select",{"onUpdate:modelValue":n[13]||(n[13]=t=>l.value.frontendSettings.timeFormat=t)},[(i(!0),u($,null,V(k.value,(t,f)=>(i(),u("option",{key:f,value:f},o(t),9,Mt))),128))],512),[[w,l.value.frontendSettings.timeFormat]])])])])):M("",!0)])]),_:1},8,["title","loading"]),S(y,{title:s.$t("user.settings.sections.appearance"),class:"general-settings section-block",loading:A.value},{default:T(()=>[e("div",Ct,[e("div",Yt,[e("label",Bt,[e("span",null,o(s.$t("user.settings.appearance.title")),1),e("div",It,[g(e("select",{"onUpdate:modelValue":n[14]||(n[14]=t=>l.value.frontendSettings.colorSchema=t)},[(i(!0),u($,null,V(_.value,(t,f)=>(i(),u("option",{key:f,value:f},o(t),9,Nt))),128))],512),[[w,l.value.frontendSettings.colorSchema]])])])]),e("div",Pt,[e("label",jt,[e("span",null,o(s.$t("user.settings.quickAddMagic.title")),1),e("div",Ft,[g(e("select",{"onUpdate:modelValue":n[15]||(n[15]=t=>l.value.frontendSettings.quickAddMagicMode=t)},[(i(!0),u($,null,V(m($e),t=>(i(),u("option",{key:t,value:t},o(s.$t(`user.settings.quickAddMagic.${t}`)),9,Lt))),128))],512),[[w,l.value.frontendSettings.quickAddMagicMode]])])])]),e("div",Ht,[e("label",qt,[e("span",null,o(s.$t("user.settings.general.defaultTaskRelationType")),1),e("div",zt,[g(e("select",{"onUpdate:modelValue":n[16]||(n[16]=t=>l.value.frontendSettings.defaultTaskRelationType=t)},[(i(!0),u($,null,V(m(Te),t=>(i(),u("option",{key:t,value:t},o(s.$t(`task.relation.kinds.${t}`,1)),9,Kt))),128))],512),[[w,l.value.frontendSettings.defaultTaskRelationType]])])])]),e("div",Gt,[e("label",Jt,[g(e("input",{"onUpdate:modelValue":n[17]||(n[17]=t=>l.value.frontendSettings.playSoundWhenDone=t),type:"checkbox"},null,512),[[E,l.value.frontendSettings.playSoundWhenDone]]),D(" "+o(s.$t("user.settings.general.playSoundWhenDone")),1)])]),e("div",Wt,[e("label",Qt,[g(e("input",{"onUpdate:modelValue":n[18]||(n[18]=t=>l.value.frontendSettings.allowIconChanges=t),type:"checkbox"},null,512),[[E,l.value.frontendSettings.allowIconChanges]]),D(" "+o(s.$t("user.settings.general.allowIconChanges")),1)])]),e("div",Xt,[e("label",Zt,[g(e("input",{"onUpdate:modelValue":n[19]||(n[19]=t=>l.value.frontendSettings.alwaysShowBucketTaskCount=t),type:"checkbox"},null,512),[[E,l.value.frontendSettings.alwaysShowBucketTaskCount]]),D(" "+o(s.$t("user.settings.general.alwaysShowBucketTaskCount")),1)])]),e("div",xt,[e("label",es,[e("span",null,o(s.$t("user.settings.backgroundBrightness.title")),1),g(e("input",{"onUpdate:modelValue":n[20]||(n[20]=t=>l.value.frontendSettings.backgroundBrightness=t),class:"input",type:"number",min:"0",max:"100",onBlur:P},null,544),[[J,l.value.frontendSettings.backgroundBrightness,void 0,{number:!0}]])])])])]),_:1},8,["title","loading"]),m(d)?(i(),X(y,{key:0,title:s.$t("user.settings.sections.desktop"),class:"general-settings section-block",loading:A.value},{default:T(()=>[e("div",ts,[e("div",ss,[e("label",{for:`quickEntryShortcut${c.value}`,class:"two-col"},[e("span",null,o(s.$t("user.settings.desktop.quickEntryShortcut")),1),S(Ie,{modelValue:l.value.frontendSettings.desktopQuickEntryShortcut,"onUpdate:modelValue":[n[21]||(n[21]=t=>l.value.frontendSettings.desktopQuickEntryShortcut=t),F]},null,8,["modelValue"])],8,ls)])])]),_:1},8,["title","loading"])):M("",!0),S(y,{title:s.$t("user.settings.sections.privacy"),class:"general-settings section-block",loading:A.value},{default:T(()=>[e("div",ns,[e("div",os,[e("label",as,[g(e("input",{"onUpdate:modelValue":n[22]||(n[22]=t=>l.value.discoverableByName=t),type:"checkbox"},null,512),[[E,l.value.discoverableByName]]),D(" "+o(s.$t("user.settings.general.discoverableByName")),1)])]),e("div",is,[e("label",rs,[g(e("input",{"onUpdate:modelValue":n[23]||(n[23]=t=>l.value.discoverableByEmail=t),type:"checkbox"},null,512),[[E,l.value.discoverableByEmail]]),D(" "+o(s.$t("user.settings.general.discoverableByEmail")),1)])])])]),_:1},8,["title","loading"]),e("div",us,[S(Oe,{name:"fade"},{default:T(()=>[O.value?g((i(),X(ee,{key:0,loading:A.value,class:"is-fullwidth",onClick:n[24]||(n[24]=t=>F())},{default:T(()=>[D(o(s.$t("misc.save")),1)]),_:1},8,["loading"])),[[z,"saveGeneralSettings"]]):M("",!0)]),_:1})])],64)}}}),fs=re(cs,[["__scopeId","data-v-0ceedef9"]]);export{fs as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.